Управление системой отопления ардуино

Управление котлом с помощью Arduino

Управление газовым котлом: оглавление

Логика управления котлом Vaillant

В прошлый раз мы разобрались, что можно управлять котлом с помощью сопротивления от 10 кОм до 30 кОм. Ну а сопротивлением мы будем управлять с помощью платформы Arduino.

Самым сложным вопросом для меня было решить, как с помощью Ардуины менять сопротивление в заданном диапазоне. Тут я еще раз передаю спасибо Петру Санычу за подробные и терпеливые консультации. Итогом этих консультаций стала такая схема управления котлом:

Контакты In и Out цепляются к 7-9 контакту котла Vaillant. Схема позволяет дискретно, линейно менять сопротивление в заданном диапазоне с шагом 680 Ом, что примерно соответствует 2 градусам контура отопления:

В живую схема управления котлом состоит из двух частей: платы управления с напаянными резисторами и Arduino relay shield – платы с 8 реле, управляемых ардуиной. Релейная плата подключается к пинам 4-9 на ардуино, а сами реле к резисторам. Готовая плата управления выглядит так:

Еще я закупил Arduino Uno – мозги системы. Питаю ардуину через USB от телефонной зарядки.

LCD 1602 i2c – простенький двухстрочный экран для вывода текущей информации. Взял экран совмещенный с платой I2C, чтобы не занимать лишние пины.

IR Wireless Remote Control Module Kit – это ИК пультик с приемником, чтобы управлять ардуиной, паять кнопки мне было лень, а тут такое богатство кнопок и всего один занятый пин ) В моем случае ИК висит на 2 пине.

Waterproof Digital Temperature Sensor DS18b20 – 2 влагозащищенных датчика температуры, вешаются на один пин. Первый датчик выносится на улицу, второй меряет температуру в помещении. У меня датчики висят на 3 пине.

Все это щастье с сопутствующей мелочевкой обошлось мне примерно в 1 000 рублей, закупался на AliExpess.

Проект 2. Отопление на Arduino

Если допустим вам нужно автоматически отапливать гараж, или дачу, или домик в деревне у бабушки, вам совершенно ни к чему покупать супер-пупер дорогостоящие контроллеры со своими мегафункционалами. Управление отоплением Ардуино справляется на все сто. Только нужно грамотно и правильно написать скетч, да и к тому же вы имеете возможность настраивать систему под себя. А если обращаетесь к программированию на вы, то можно попросить опытного и профессионального программиста написать софт.

Из этой статьи вы узнаете:

Приветствую друзья, с вами автор блога, Гридин Семён. В просторах интернета я наткнулся на замечательный проект по отоплению на Arduino. Сразу хочу поставить все точки над i. Статья не моя, и проект не мой, даже картинки не мои. Это произведение автора под ником Vanalaizer, первоисточник размещён на Geektimes .

К сожалению, связаться мне с ним не удалось. Этот пост я пишу в основном, чтобы зафиксировать на сайте и закрепить для себя и для вас основные аспекты проекта.

Ну а вам решать, какой текст вам удобнее всего читать — мой или уважаемого Vanalaizer’a. А ему кстати говоря отдельное спасибо за проект. Так что не бросайтесь на меня тухлыми помидорами=)). Я не специально.

Схема отопления

Основной принцип данного проекта — это процесс регулирования электрокотла с помощью самой простой и приземлённой платой Arduino UNO.

Вот непосредственно сам шкаф управления, «мозги» на основе Arduino.

Это как раз делалось для дома в деревне. Регулирование температуры ведётся в одной комнате.

Какое же само оборудование? Я не буду расписывать большие тексты. Напишу конкретно. Для системы требуется следующее.

  • Электрокотёл на 4-6 кВт
  • рециркуляционный насос
Читайте также:  Что такое максимальный напор для насоса отопления

Сама конструкция котла состоит и металлического цилиндра с тремя нагревательными ТЭНами по 2 кВт. Отсюда следует вывод, что система должна быть трёхфазная на каждой фазе по ТЭНу. Дополнительно в корпус электрокотла врезаны 2 датчика, резистивный датчик температуры и датчик, замыкающийся при перегреве.

Система управления на Arduino не совсем простая, включать и выключать реле по PID-закону. Лучше всего два ТЭНа включать сразу, а одним поддерживать температуру, это самый надёжный и наиболее точный способ.

Ток потребления нагревателя составляет примерно 8 А. Лучше всего управлять твердотельными реле с запасом по мощности, примерно ампер 15-20 и с охлаждающим радиатором.

Есть готовые модули Solid State Relay, проще говоря — электросхема, собранная на мощном тиристоре, в корпусе, похожем на обычное реле. Из его плюсов — нет механики, ничего не залипнет. Не создаёт мощных ЭМ-помех, что важно для ethernet’a, о котором ниже.

Они уже содержат схему, которая включает и отключает реле при проходе нуля. На реле есть индикатор включения. Ну и ещё они беззвучные, хотя для нашего случае это не так и актуально. Были установлены SSR-25DA, что по-русски означает — твердотельное реле с постоянным управляющим током 3-5В и током нагрузки до 25А.

К ним есть штатные радиаторы, они должны быть установлены — ОБЯЗАТЕЛЬНО!! Не забываем смазать термопастой, для улучшения теплообмена.

Для измерения температуры были использованы цифровые датчики температуры на базе DS18B20.

Список оборудования и ПО

Что же применялось в конечном итоге:

  • Плата arduino. Использовалась UNO r3
  • Ethernet Shield
  • Витая пара
  • Датчики температуры
  • Блок питания на 110-240 — 12В 2А
  • Стабилизатор LM7805
  • Реле SSR-40DA 3 шт
  • Радиаторы для реле

Но всё это, конечно, хорошо, но не стоять же постоянно с компьютером рядом с котлом, всё же хотелось бы знать о том, что происходит дома, удалённо через инет. Уже был самый простенький VPS сервер от majordomo для чего попало. На нём создана база данных на MySQL для хранения данных о температуре. (на этом мои познания пока ограничены).

Теперь нам надо как-то положить данные из arduino в эту базу. Для этого, естественно, понадобится как минимум связать arduino с интернетом.

Блог Евгения Николаенко

Контроль отопления и вентиляции на базе Arduino

Представляю мой новый проект — автоматическое управление отоплением и вентиляцией на базе Arduino Nano 3.0.

Довольно долго я бился над решением задачи создания оптимального микроклимата в ванной комнате, и наконец-то, благодаря знаниям, полученным в процессе изучения Arduino и различных датчиков температуры и влажности, мне это удалось! 🙂

Началось все с того, что в весенний и осенний периоды, когда погода на улице еще не стабилизировалась, в ванной комнате наблюдались постоянные перепады температуры и влажности. Обогреватель то и дело перегревал воздух в дневное время, а если его отключить, то воздух становился неприемлемо холодным для ванной комнаты. То же самое и с влажностью. Постоянно включенная вытяжка приводила к переохлаждению комнаты в ночное время, а днем, если вытяжку не включить, происходило чрезмерное оседание конденсата, о борьбе с которым я уже писал ранее. В итоге, устав от необходимости бегать включать/выключать батарею и вытяжку по нескольку раз в день, а также имея практический опыт создания автоматизированной заслонки на базе Arduino, решил сконструировать прибор для автоматического управления отоплением и вентиляцией в ванной комнате. О результатах проделанной работы рассказано в этом видео.

А теперь предлагаю подробнее рассмотреть как все работает, включая программу (скетч) для Arduino!

Устройство системы

На передней панели системы управления отоплением и вентиляции находится двухстрочный дисплей LCD 1602 I2C, который отображает текущие значения температуры и влажности, а также позволяет просматривать меню установок прибора. Красная и зеленая кнопки — кнопки управления (оказалось вполне достаточно двух кнопок для изменения настроек и управления устройством). Красный светодиод загорается при включении отопления, а зеленый — при включении вентиляции. На левой стороне расположен датчик температуры и влажности DHT22 а также USB-порт модуля Arduino, который пришлось заклеить для лучшей сохранности.

Читайте также:  Схем укладки водяного теплого пола

Система для управления отоплением и вентиляцией на базе Arduino. Вид сбоку

На правой стороне устройства находится выключатель и система охлаждения, представляющая собой компьютерный вентилятор, работающий на вытяжку. Без него корпус системы нагревался (от встроенного блока питания и реле), что приводило к неверным показаниям датчика температуры, т.к. он расположен близко к корпусу.

Система для управления отоплением и вентиляцией на базе Arduino. Вид сбоку

Система контроля микроклимата работает от сети 220 вольт и подключена к ближайшей розетке.

Система для управления отоплением и вентиляцией на базе Arduino.

Заглянем внутрь корпуса. Сам корпус является обычной распределительной коробкой. На его передней панели имеются 4 болта, открутив которые можно легко и быстро получить доступ к мозгам системы, а также к коммутационным реле, которые управляют нагрузкой.

Система для управления отоплением и вентиляцией на базе Arduino со снятой лицевой панелью

Внутри находится сборка из модуля ардуино нано 3.0, силовых реле с максимальным током до 10 ампер, и блоком питания на 9 вольт.

Система для управления отоплением и вентиляцией на базе Arduino. Вид изнутри

Панель управления подключена к основному модулю при помощи шлейфов.

Система для управления отоплением и вентиляцией на базе Arduino. Вид изнутри

Панель управления можно легко отсоединить от устройства для проведения профилактических работ или модернизации. Как уже упоминалось выше, в состав панели входит LCD модуль, 2 светодиода и 2 управляющие кнопки.

Панель управления системы контроля микроклимата на базе Arduino

Управляющий модуль сконструирован на монтажной плате и имеет разъемы для подключения датчика влажности и температуры DHT22, панели управления, нагрузки (4 разъема), а также источника питания. Первый, второй и четвертый разъемы работают в режиме ключа (замыкают и размыкают цепь). Третий разъем обеспечивает выход с напряжением 5 вольт для управления дистанционной розеткой.

Главный модуль системы контроля микроклимата на базе Arduino

Силовые элементы надежно припаяны при помощи медных проводов на обратной стороне монтажной платы. Логические элементы аккуратно спаяны меду собой, все реле управляются через транзисторы. Ссылку на схему более совершенной модели этого прибора см. в конце статьи!

Главный модуль системы контроля микроклимата на базе Arduino. Монтажная плата

Корпус системы — обычная электрическая разветвительная коробка стандартного размера.

Корпус системы контроля микроклимата

Настенный конвектор, отлично подсушивающий влажный воздух, находится на противоположной стене от модуля управления микроклиматом.

Настенный конвектор, управляемый системой на базе Arduino

Розетка с дистанционным управлением системы контроля микроклимата на базе Arduino

Управляющая программа (скетч для ардуино)

Теперь, пожалуй, самое интересное 🙂 Предлагаю вашему вниманию полный скетч для управления отоплением и вентиляцией на базе Arduino. Скажу сразу, что скетч модернизировался после первого запуска системы целых 3 раза. И на то были определенные причины.

Изначально температура измерялась каждые 2 секунды, и в зависимости от этого срабатывали правила включения и выключения электроприборов. Бывало так, что вытяжка включалась и выключалась каждые 2 секунды, в моменты колебания влажности или температуры на пограничных значениях.

Решением данной ситуации стало изменение алгоритма программы таким образом, чтобы измерения проводились 5 раз подряд (в течение 10 секунд), а затем для всех показателей вычислялось среднее значение, на основании которого применялись правила включения/отключения нагрузки. Это позволило избавиться от таких «скачков» с выключением вытяжки или батареи!

Итак, скетч под этим спойлером:

Скетч занимает около 50% памяти ардуино и требует дополнительных библиотек для работы с датчиком DHT22 и экраном LCD через интерфейс I2C, найти которые можно на просторах интернета.

На момент написания статьи уже месяц система работает в штатном режиме, микроклимат в ванной стал практически идеальным, конечно пришлось несколько раз менять настройки включения и выключения вытяжки и батареи, но подобрав нужные параметры все стало просто идеально — и днем и ночью комфортные ощущения при нахождении в этом помещении! 🙂

Читайте также:  Не греет котел отопления висман

Обновлено 05.11.2018

Зависание контроллера Arduino

Прошло пол года с момента начала активной эксплуатации устройства, и обнаружились некоторые проблемы, а именно, периодические зависания модуля ардуино. Начав разбираться, первым делом наткнулся на некий WatchDog, который способен автоматически перезагрузить систему при зависании микроконтроллера. Подумал — вот оно подходящее решение. Но как выяснилось, на моей китайской копии Arduino Nano 3.0 WatchDog работает неправильно из-за некорректной прошивки загрузчика. Для того чтобы это исправить, нужна «правильная» прошивка загрузчика, найти которую можно в интернете, и программатор, которым все это дело будет «зашиваться» внутрь чипа. Пока ждал программатор с Китая, решил поискать реальные причины зависания контроллера.

Просадка напряжения

Пытаясь найти объективную причину зависания, я стал грешить на некачественный блок питания и просадку напряжения при включении реле, особенно когда несколько реле включаются одновременно, ведь зависания происходили не так часто, а всего лишь 1-2 раза в месяц.

Первым делом решил добавить 2 конденсатора по 1000 мкф в надежде, что они уменьшат просадку напряжения при срабатывании реле. Первый поставил параллельно выходу с блока питания (там кстати уже был свой конденсатор, но второй лишним не будет, подумал я), а второй — установил параллельно выходу +5V на плате ардуино, откуда как раз берется питание для реле. С этого же выхода питается и сам микроконтроллер. Складывается логичная ситуация — когда все реле включаются одновременно, микроконтроллеру не хватает напряжения и он зависает.

После добавление конденсаторов зависания практически прекратились, но все же, 1 раз в месяц могло и зависнуть.

Доработка скетча Ардуино

Поигравшись с конденсаторами, решил проверить программное обеспечение устройства на наличие неоптимального кода, который мог бы приводить к зависаниям микроконтроллера. Первым делом начал с проверки процедуры DoAll(), которая управляет включением и отключением реле. И тут меня как осенило, откуда берутся просадки напряжения.

Дело в том, что после обработки данных, полученных с датчиков, и включении/выключении какого-либо реле, происходил мгновенный переход к следующей обработке данных с датчиков, и включение/выключение следующего реле, и так далее. Фактически, все реле действительно могли включаться или отключаться одновременно, с задержкой менее 1 мсек, поскольку между обработкой данных для каждого реле отсутствовала пауза.

Исправив код этой процедуры, а именно, добавив искусственную задержку в 200 миллисекунд после включения/отключения какого-либо реле, я был крайне удивлен стабильной работой прибора. Зависания вовсе прекратились, и вот уже 2 месяца прибор работает стабильно. Теперь и WatchDog не нужен, хотя конечно он не помешает, на всякий случай.

В итоге можно сказать, что причиной зависания являлась несбалансированность нагрузки на источник питания при выполнении программного кода, а также низкое качество источника питания. Исправив программу, исчез и дисбаланс. Ниже представлен исправленный фрагмент кода процедуры DoAll(). Жирным текстом выделены те самые задержки по 200 мсек, которые были добавлены в программу и кардинально повысили стабильность работы микроконтроллера.

Обновлено 02.02.2019

Раздельное включение вентиляторов вытяжки

Зимой обнаружилось, что из одной из вытяжет стал капать конденсат, поэтому было решено отключать на зиму этот вентилятор. И чтобы не лазить каждый сезон с отверткой в развет коробку и уж тем более в само устройство, решил сделать все программно, поскольку каждый вентилятор управляется отдельным реле. Немного переработал скетч, добавив дополнительный экран настроек, на котором можно задействовать или отключить каждый вентилятор по отдельности Также уменьшил время одновременного нажатия кнопок для переключения между экранами настроек с 3 до 2 секунд. Свежий скетч можно скачать по ссылке ниже

Оцените статью