Управление котлом с помощью 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.
Автоматизация насоса
«Лень — двигатель прогресса»
Стоял насос на даче, управляемый с обычного пульта. Потоки воды распределялись шаровыми кранами (на полив и на емкость бытовых нужд). Просьбы родителей, что надоело подкачивать в ручную емкость привели к рождению системы управления насосом.
Система построена на контроллере Arduino Nano 3.0 (ATmega328), дисплее 20х4, 4-х канальном радио блоке. Исполнительными органами являются два шаровых крана на 1 и ¾ дюйма с электроприводами, ЧРП и электродвигатель насоса. Насос позволяет выдавать 6м.куб в час. Система позволяет регулировать скорость подачи воды (напор). Управляется с самого блока
- Управление насосом в режиме полива с пульта или по месту, с возможностью регулировки подачи.
- Управление насосом в режиме подачи воды в емкость по месту или в автоматическом режиме.
- Отображение уровня в бочке и температуры воды в бочке.
- Защита от перелива бочки, с автоматическим сбросом.
- Управление насосом на прямом пуске.
- Ручное управление механизмами установки.
Структурная схема установки.
Питается вся установка 380 Вольт 50 Гц
Центральный блок на ардуино.
Схема принципиальная затворов и их подключение.
Подключение уровня и аварийного сенсорного датчика.
Фото всей установки
Описание работы устройства
При включении тумблера питания происходит инициализация устройства (если были открыты затворы, то они закрываются). Дисплей отображает текущее состояние системы (состояние затворов, температуру в верхнем баке). На дополнительном дисплее (матрица 8х8) отображается уровень воды в верхнем баке.
Уровень выполнен в виде натянутых проволок в пластиковой трубе (на разных уровнях), программно фильтруется от ложных срабатываний и от появляющейся влажности между электродами.
При включении с ДУ пульта или с панели устройства режима полив включается главный контактор (запитывает преобразователь частоты ПЧ), одновременно с ним открывается затвор на магистраль полива. После открытия затвора запускается ПЧ на оборотах установленных в момент последнего включения. С пульта ДУ или панели устройства предусмотрена регулировка оборотов (объем подачи воды). При остановке полива останавливается ПЧ и начинается отсчет времени до закрытия затвора в течении 3х минут (этакая пауза для перехода на другую зону полива). По истечении 3х минут (если не было повторного пуска) закрывается затвор полива, а по истечении 5 минут отключается главный контактор и система переходит в ждущий режим.
При использовании наполнения верхней бочки предусмотренно отключение по максимальному уровню. Наполнение работает как в ручном режиме, так и в автоматическом (при включении кнопкой режима «автомат»). Автоматический режим работает минимум — середина бочки, максимум — верхняя точка. При включении наполнения бочки, как и в режиме полива, включается контактор, открывается затвор наполнения бочки и пускается ПЧ на полные обороты. При достижении максимального уровня отключается ПЧ и одновременно закрывается затвор. По истечении 5 минут отключается контактор.
Наполнение бочки имеет защиту от перелива в виде сенсорного датчика уровня. При его срабатывании происходит остановка привода отключением контактора с одновременным открытием обоих затворов до снижения уровня. Одновременно дисплей сигнализирует о срабатывании защиты от перелива.
Приоритетность использования режимов заключается в реализации любого пуска только из обоих закрытых затворов. Принудительное закрытие возможно при зажатии кнопки «стоп» на 2 секунды.
Дисплей отображает состояние всех узлов системы (контактор, ПЧ, задание ПЧ, затворы,режим работы и . )
Arduino.ru
Погодозависимое управление котлом
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Небольшая предыстория (можно пропустить):
У меня в подвале стоить отопительный газовый котел. Управление по заданной температуре теплоносителя (механическое). При большой разнице дневной и ночной уличных температур приходилось бегать и крутить установки. Тогда и возникло желание автоматизировать этот процесс.
Первый регулятор был собран на PIC16F628A на тактовой частоте 32кГц. Микрочиповский си (возможно ввиду моей криворукости) работал криво. Писал на ассемблере. Соответственно — визуализации и управления минимум, но работал. Температурными датчиками выступали DS12b28.
Познав ардуино я реализовал управление на ней:
1. Контроллер — ARDUINO UNO
2. Датчики температуры теплоносителя и наружней — DS12b28.
3. Управление и отображение — 16х2 ЖК дисплей с кнопками
4. Исполнительные устройства — блок 2 реле 5В. Одно реле перевод на автоматический режим, второе — управление горелкой.
Программно реализовано меню с выбором гетерезиса и наклона графика зависомости температур (пока прямая), запись адресов датчиков в ППЗУ.
Что хочется добавить — wifi модуль с индикацией и управлением по сети. Нет модуля и наю как реализовать это без статического IP, прямую зависимость сделать кривой 2 порядка (пока руки не дошли подогнать), ну и в корпус это все загнать :).
Ну и сам текст программы (кое что нарезал из чужих программ, оставив авторские комментарии):
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Привет. У меня похожая ситуация. Пока работает на 3 реле sonoff. А мне хочется реализовать погодазависимый. Итого у меня есть котел газовый который может быть только включен или выключен.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
хочу построить погодазависимый модуль управления котлом на базе ардуино уно с 3мя датчиками температуры. 1 датчик на улице, второй в помещении, а третий в котле. У котла есть только два положения «вкл» и «выкл» необходимо собирая данные с датчиков пользуясь кривыми гестерезиса (необходимо иметь первоначальную установку коэфицента «утепленности дома») поддерживать температуру теплоносителя, для того что бы в доме была заданная температура. что бы температура в » трубе» менялась относительно температуры на улице для поддержания заданой температуры в помещении.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здравствуйте, Я пока отказался от датчика на улице — при постоянной работе отопления он оказался не нужен. Регулирование температуры теплоносителя осуществляется по заданной температуре в помещении по PID алгоритму, хотя я использую из него только пропорциональную составляющую. Очень уж неторопливы процессы нагрева и охлаждения дома. Последняя версия программы пока обкатана только на протеусе. Посмотрите — может даст что-то к идеям. Я не использую прерываний, вместо них есть переменные, отвечающие за отсчет секунд — неторопливые процессы.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Объясните логику работы? Не совсем понял. У вас система работает как простой термостат? То есть подогрев включен до наступления заданной температуры, а потом отключается?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
По поводу погодозависимости.
Датчик внутри не нужен.
Регулировка температуры подачи идёт по уличной температуре.
У меня самого Cerapur со встроенным погодником,
график настроил лет 10 назад и забыл
Подхожу к котлу раз в два года для чистки конденсационного блока от серы.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
От 258 по 276 строку идет чтение внутренней температуры и в зависимости от ее разницы с заданной температурой вычисляется температура теплоносителя по пропорциональной формуле с Kp. В остальном работает как термостат по температуре теплоносителя. Циркуляционный насос работает всегда, так что температура батарей достаточно ровная. От наружней температуры отказался в связи с тем, что на график сильно влияет ветер на улице. Вводить лишние замеры счел ненужным. Тем более, что мне интереснее комфортная температура в доме. Формула расчета теплоносителя: Ттеплоносителя=Ттеплоносителя+Кр*(Тв_доме_замерянная — Тв_доме_заданная)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Наверное, перепутали местами (Тв_доме_замерянная — Тв_доме_заданная)?
В целом — очень интересно! Уже сделал управление трехходовым клапаном смесительного узла через Arduino. Сейчас только подбираюсь к созданию алгоритма по расчету Ттеплоносителя, уже сутки собираю показания датчиков температуры (четыре в доме, один на улице, один на подаче в тёплый пол).
Какая у вас система отопления? Радиаторы? Тёплый пол? Комбинированная?
Система уже реально работает? Есть ли графики температур улица-дом?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Наверное, перепутали местами (Тв_доме_замерянная — Тв_доме_заданная)?
Спасибо, и правда перепутал.
В целом — очень интересно! Уже сделал управление трехходовым клапаном смесительного узла через Arduino. Сейчас только подбираюсь к созданию алгоритма по расчету Ттеплоносителя, уже сутки собираю показания датчиков температуры (четыре в доме, один на улице, один на подаче в тёплый пол).
Смотрел, у Вас задача, как я понял значительно глобальнее. У меня речь идет о доме с постоянным проживанием. Соответственно изменения температуры в доме не требуется. Один раз установив комфортную температуру надо только ее поддерживать. Резких бросков температуры быть не может, соответственно и наружняя температура мне без надобности — отрегулирую ситуационно по внутренней температуре. Другое дело, если Вы хотите выровнять температуру по дому, но и тогда можно найти наиболее холодное помещение, по нему считать температуру теплоносителя, а остальные помещения регулировать клапанами, опять же вычисляя для них температуру теплоносителя.
Какая у вас система отопления? Радиаторы? Тёплый пол? Комбинированная?
Радиаторы плюс теплый пол на входе. Теплый пол установлен на стабильную температуру механическим датчиком.
Система уже реально работает? Есть ли графики температур улица-дом?
Система пока не работает — ловлю блох в протеусе. График строить не буду по указанным выше причинам. Интересно будет посмотреть Вашу реализацию проекта. Кстати — а зачем Вы датчики раскидали на разные порты?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня тоже ПМЖ. Но у меня основное отопление — тёплый пол. Есть только один радиатор под окнами «второго света», там тёплый пол не справляется (потолок в этой комнате около 4-5 метров).
Я пока наблюдаю за графиками температур. Хочу понять как дом реагирует на изменение погоды.
Но предварительно думаю, что при похолодании (особенно резком) дом будет очень медленно реагировать (у меня каменные стены, крыша, много бетона на полу). Допустим, упала температура на десятую долю градуса — контроллер чуть прибавит подачу отопительной воды. А дом уже реально остывает, ему нужно было заранее прибавлять t° подачи (при похолодании или даже раньше, например, по прогнозу погоды).
Разве у вас не ожидается такого явления? Будет всё как в статьях по ПИД-регулированию — температура дома начнёт «качаться» по синусоиде. К этому времени уже придёт день с солнышком и потеплением, потом еще как-нибудь сменится погода. Пока не уверен, что П-алгоритмом можно управлять отоплением тёплого пола без резких перепадов температуры поверхности пола.
Такой задачи пока не стоит. Несколько датчиков чисто для наблюдения пока. В процессе решу, как усреднить показания этих датчиков для получения итоговой t°дома.
По вашему примеру создам свою тему, как только будет чем поделиться. Обязательно скину ссылку.
Кабель (использую хорошую 4-х парную UTP) уже приходит с разных сторон и сходится в одно место, у щита. Можно было бы с перерасходом кабеля соединить линии, но зачем?