Автопортал || Авто - статьи

Сельскохозяйственная техника
Чтение RSS

Бюджетна система автоматизації котельної установки заміського будинку. Частина 1

  1. посилання

Журнал РАДІОЛОЦМАН, вересень 2016

Михайло Російських

Розглядаються переваги та недоліки рідиннопаливних котельних установок, описується структура простої системи автоматизації жидкотопливной котельні установки, детально роз'яснюється призначення кожного елемента цієї системи

Розглядаються переваги та недоліки рідиннопаливних котельних установок, описується структура простої системи автоматизації жидкотопливной котельні установки, детально роз'яснюється призначення кожного елемента цієї системи

Для опалення сучасних котеджів або заміських приватних будинків в холодну погоду нерідко використовуються котельні установки. Ці установки в залежності від виду споживаного ресурсу діляться на електричні, газові, твердопаливні та рідкопаливні. Втім, є також досить екзотичні типи котелень, наприклад, установки, що працюють з передачею геотермальної енергії природних джерел або на сонячній енергії, але в Росії вони представлені в дуже малій кількості.

Рідкопаливні апарати, про які піде мова в даному матеріалі, мають ряд переваг в порівнянні з іншими видами цих пристроїв. На відміну від електричних і газових установок, вони більшою мірою є автономними, оскільки не вимагають прокладання до ділянки газопроводу або ліній електропередач, а для харчування нескладної автоматики котла досить встановити невеликий електрогенератор. Рідкопаливні установки характеризуються більшою ефективністю спалювання палива, оскільки їх ККД в деяких випадках може досягати 94%. Крім цього, їх конструкція досить проста і надійна. Поломки в них трапляються вкрай рідко, як правило, дане обладнання потребує тільки періодичного чищення форсунок і димових каналів. А завдяки простоті конструкції для обслуговування таких котелень не потрібні спеціальні технічні навички.

Але у рідиннопаливних установок є один істотний недолік. Вартість їх придбання і використання досить висока. Сам котел і пальник для нього коштують дорожче пристроїв, що працюють на інших видах палива. Крім цього ціни на паливо досить високі, що небагатих господарів може змусити розглядати інші варіанти опалювальних систем. У зв'язку з цим постає питання про підвищення економічної ефективності установки за рахунок раціонального і своєчасного спалювання палива і обліку витрати цього палива для аналізу економії і прогнозування бюджету.

Цього можна домогтися шляхом автоматизації установки. Сьогодні доступні вже готові опалювальні системи з обладнанням для автоматизації роботи. Як правило, вони коштують значно дорожче мінімального набору, що складається з котла, пальника і простий автоматики управління. Але можна зробити свою бюджетну систему автоматизації, здатну зберігати оптимальну температуру в опалювальному приміщенні, не витрачаючи занадто багато палива, завдяки своєчасному включенню і відключення, а також вести облік витрати палива.

У запропонованій статті буде розглянуто створення досить простої системи автоматизації жидкотопливной котельні установки заміського будинку. Основу системи складають плата Arduino Uno, призначена в даному випадку для моніторингу температури в житловому приміщенні і її регулювання за рахунок керування автоматикою котла, і недорогий китайський планшет на базі ОС Android, службовець для візуалізації отриманих від плати Arduino даних про витрату палива і розрахунку вартості спаленого пального. У матеріалі буде представлена ​​корисна інформація про організацію взаємодії плати Arduino і обчислювального пристрою на основі Android, а також про створення простої, але інформативною візуалізації в Android за допомогою спеціальної бібліотеки. Дана інформація може бути застосована не тільки для побудови систем автоматизації опалювальних котелень, подібних описаної в цьому матеріалі, але і для створення будь-яких інших пристроїв і устаткування, де необхідна взаємозв'язок микроконтроллерной плати, зокрема Arduino, з будь-яким планшетом або смартфоном на базі Android, а також зручне відображення даних на екрані з подальшим їх аналізом.

Схематично бюджетна система автоматизації жидкотопливной котельні установки представлена ​​на рисунку 1.

Для моніторингу температури в житловому приміщенні до плати Arduino підключається датчик температури. В даному випадку використовувався аналоговий датчик LM335 компанії Texas Instruments . По суті LM335 являє собою двохвивідною стабілітрон з лінійною залежністю напруги стабілізації від температури, тому він підключений як стабілітрон з струмообмежувальним резистором. При цьому зміна температури на 1 ° K викличе зміна напруги на 10 мВ. Опір резистора розраховується по Формулі 1.

тут

Uпит - напруга живлення, В;
T - температура датчика, ° K;
I - струм датчика, мА.

Для досягнення оптимальної точності вимірювання опір R1 необхідно розрахувати так, щоб струм датчика дорівнював 1 мА. Також слід враховувати, що при зміні температури струм повинен бути в діапазоні від 0.4 до 5 мА. Беручи до уваги температурний діапазон датчика від -40 ° C (233.15 ° K) до +100 ° C (373.15 ° K), опір може варіюватися від 2670 Ом до 1270 Ом. Оптимальним варіантом, що забезпечує необхідну точність і працездатність датчика, в даному випадку буде значення опору 2 кОм.

Весь код програми для Arduino викладений в репозиторії SourceForge [ 1 ]. Тут же наведемо ключові моменти, які можуть бути не зовсім зрозумілі на перший погляд при аналізі коду.

Для отримання значення температури в градусах Цельсія на підставі показань датчика використовується наступний фрагмент коду:

int rawvoltage = analogRead (outputpin);
float kelvin = (rawvoltage / 1 024) * 500;
float celsius = kelvin - 273.15;

За допомогою функції analogRead () виконується зчитування значення з АЦП, яке потім ділиться на 1024 (так як АЦП 10-розрядний) і множиться на 500. Число 500 є твір максимального значення напруги 5 В на величину 100 ° K, яка пропорційна 1 В , виходячи з температурного коефіцієнта напруги, рівного 10 мВ / K. Значення температури в градусах Цельсія отримуємо, віднявши 273.15 з розрахованої величини в Кельвіна.

Далі виконується передача підсумкового значення температури в планшет за допомогою модуля адаптера UART-USB FTDI FT232RL. Перед цим воно округляється за допомогою функції floor (), так як в планшет передаються тільки цілочисельні значення. Оскільки дані по послідовному порту передаються у вигляді символів ASCII, необхідно зробити так, щоб всі значення температури були позитивними. Для цього до отриманого округленому значення додається константа зміщення 90. Таким чином, це гарантує, що навіть при найнижчому показання датчика температури буде передано позитивне значення, що в свою чергу, виключає появу помилки при виконанні функції Serial.write ().

З огляду на те, що значення температури не змінюється занадто швидко, немає необхідності передавати цей параметр кожен цикл. Тому за допомогою бібліотеки SimpleTimer.h був введений таймер, по спрацьовуванню якого відбувається відправка виміряного значення. Налаштування таймера з інтервалом рахунку 100 секунд виконується наступним чином:

wd_timer_id = timer.setInterval (100000, TimerFull);

Алгоритм роботи частини програми, що відповідає за прийом, обробку та передачу показань температури, можна представити у вигляді блок-схеми на рисунку 2.

Оскільки житлове приміщення знаходилося недалеко від котельні, підключення датчика до плати Arduino здійснювалося за допомогою екранованого проводу довжиною 16.5 м і перетином 0.5 мм2. При цьому погіршення точності вимірювання не спостерігалося. При значно більшій відстані датчика від керуючого пристрою необхідно або збільшувати діаметр перетину проводів згідно з таблицею, наведеною в описі мікросоми LM335 на сторінці 17, або використовувати інші методи передачі даних, наприклад, радіозв'язок.

Для обліку витрати палива до Arduino підключається спеціальний витратомір-лічильник, призначений для протікання через нього паливної рідини, оскільки звичайні лічильники не в змозі точно враховувати кількість протікає через них горючого матеріалу і досить швидко виходять з ладу через підвищену в'язкість нафтопродуктів. В даному випадку використовувався лічильник LS-04 [ 2 ] Вітчизняної компанії ТОВ «Дарконт», призначений для монтажу всередині паливних систем. LS-04 являє собою високоточний Волюметричний (об'ємний) витратомір, заснований на принципі вимірювання потоку рідини за допомогою обертового ротора. У ньому протягом рідини обертає ротор в точної циліндричної вимірювальній камері, і на кожному обороті фіксується обсяг рідини, що витісняється її рухом. Вставлений в ротор магніт генерує імпульси з високою роздільною здатністю при замиканні контактів геркона, встановленого на кришці витратоміра.

Герконовий вихід датчика є двухпроводной нормально-розімкнутий однополюсний вільний контакт, ідеальний для установки без харчування або для використання в небезпечних областях, коли необхідно забезпечення іскробезпеки. Таким чином, вихідними сигналами витратоміра LS-04 є імпульси, які надходять на цифровий порт плати Arduino. Для підключення лічильника до реєструючого пристрою слід використовувати екранований кабель з кручений парою і перетином проведення 0.5 мм2, оскільки імпульсний вихід дуже чутливий до перешкод. Цей кабель бажано не прокладати на кабельних каналах, в яких можуть бути лінії живлення і кабелі з високою індуктивністю, оскільки скачки напруги можуть викликати появу перешкод, або навіть призвести до руйнування електронних схем. Також екран цього кабелю повинен бути заземлений з боку реєструючого пристрою.

Єдиним параметром лічильника, який необхідно враховувати в нашій системі, є кількість літрів на один імпульс. Для витратоміра LS-04 він дорівнює 0.005 л / імп. Ця величина буде фігурувати в розрахунках, які виконуються в додатку для Android, а плата Arduino, в даному випадку, є посередником, який за допомогою цифрової лінії введення / виведення D3 приймає кожен імпульс і відправляє його через послідовний порт в планшет. Щоб зареєструвати кожен вступник імпульс, слід реалізувати опитування по перериванню, оскільки програмний опитування в циклі не дасть точного результату через можливе пропуску зчитування імпульсів внаслідок зайнятості ядра мікроконтролера іншими завданнями. Для настройки переривання в Arduino використовується наведена нижче функція.

attachInterrupt (pbIn, stateCh, RISING);

Тут параметр pbIn визначає лінію введення / виведення, зі зміни стану якої відбудеться переривання; stateCh є назва обробника переривання, тобто функції, в якій відбувається обробка переривання, - в даному випадку в ній виконується відправка через послідовний порт символу, що свідчить про надходження імпульсу; параметр RISING означає, що переривання відбудеться по фронту сигналу.

Для управління пальником, а саме для її включення і відключення на підставі інформації про температуру в опалювальному приміщенні, використовується реле SLA-05VDC-SL-C. Керуюча напруга цього реле складає 5 В, що дозволяє підключати його до цифрових портів плати Arduino Uno. Нормально розімкнутий контакт реле здатний витримувати струми до 20 А, що є цілком достатньою умовою для підключення контактів до стандартного котельного устаткування. В даному випадку потрібно тільки 13 А. Підключення реле до цифрового порту плати Arduino слід виконувати з використанням спеціального ланцюга захисту, як показано на рисунку 1.

Оскільки в даній системі передбачалося зробити плату Arduino керуючим пристроєм з можливостями прийому даних з датчиків і регулювання температури, а на планшет покласти тільки реєстраційно-діагностичні функції, щоб система залишалася працездатною і при відсутності планшета або іншого пристрою з ОС Android, було прийнято рішення про оснащення Arduino засобами відображення поточної температури і введення значення бажаної температури. Як засіб відображення температури були задіяні два семисегментних індикатора (LED1 і LED2) із загальним анодом. З метою економії ліній введення / виведення плати Arduino управління індикаторами тут здійснюється через два зсувних регістра 74HC595 (IC1 і IC2), кожен з яких обслуговує один індикатор. Таким чином, для управління індикаторами досить виділити лише три лінії введення / виводу: лінію даних DATA, лінію синхронізації CLK і лінію дозволу записи в регістр LATCH. Так як в даному випадку використовуються тільки два однорозрядних індикатора, то відображаються лише позитивні значення температури (від 0 до 99), що не є критичним, оскільки кімнатна температура в житловому приміщенні не повинна бути менше +15 ° C, тобто, будь-яка температура нижче цього значення є ненормальною і підлягає обов'язковому регулюванню. При надходженні з датчика від'ємного значення температури на індикаторі відображаються цифри «00». Зсувні регістри підключаються до індикаторів через струмообмежуючі резистори R3-R16 номіналом 660 Ом.

Для зміни значення температури, яку повинна підтримувати система опалення, використовується потенціометр R17 номіналом 10 кОм. Таке рішення, на відміну від клавіатури, дозволяє задіяти всього лише один аналоговий вхід плати Arduino. Бажану температуру можна задавати потенціометром в діапазоні від +15 ° C (відповідає максимальному опору потенціометра) до +30 ° C (відповідає нульовому опору потенціометра). Оскільки порти Arduino працюють з максимальною напругою 5 В, розрядність АЦП дорівнює 10 біт, і ширина температурного діапазону становить 15 ° C, на 1 ° C припадатиме 0.33 В, або число 68 в десятковому поданні при отриманні даних з АЦП. Для візуального контролю величини температури при зміні опору використовуються ті ж два семисегментних індикатора. Більшу частину часу, коли регулювання бажаного значення за допомогою потенціометра не здійснюється, ці індикатори відображають поточну температуру опалювального приміщення. При повороті ручки потенціометра, а, отже, зміні його опору і напруги на АЦП, на індикаторах відображається бажане значення температури, яке зникає після приблизно двох секунд після зупинки обертання ручки, і на індикаторах знову відображається поточна температура.

На рисунку 3 у вигляді блок-схеми представлений алгоритм частини програми, що реалізує людино-машинний інтерфейс і відповідає за регулювання температури за допомогою включення і відключення реле.

Таким чином, підсистема управління, заснована на платі Arduino Uno, являє собою конструктивно і програмно досить простий пристрій, що дозволяє реєструвати і регулювати температуру, а також зчитувати імпульси, необхідні в подальшому для обліку витрати палива. В наступній частині буде розглянута робота додатки для Android, призначеного для візуалізації отриманих з плати Arduino даних і розрахунку вартості витраченого палива.

посилання

Матеріали по темі

закінчення