Waterfloor PID heating system with wifi and remote sensors (part 1)
Занимаясь ремонтом вышедших из строя комнатных термостатов TECE возник план по полной переделке всей этой системы что называется "с нуля".
Дело в том, что спустя 3 года эксплуатации некоторые термостаты стали перманентно включать клапан сутками. У других бесконечно
стала "плавать" температура в помещении. Когда жарко он не выключает клапан никак, а когда холодно он никак не включит клапан.
помимо поломок у оригинального решения немцев TECE есть неудобства:
- Температуру можно задавать только, находясь рядом с регулятором
- Нет возможности наглядной оценки текущей температуры в помещении
- Высокое напряжение тянется от шкафа коллекторного до термостатов (220\24 Вольта)
- Нет возможности задания "сдвига" температуры помещения в зависимости от места установки термостата (Toffset)
- Возможности запрограммировать систему гибко - нету. Только самое примитивное по времени в сутках при докупке
- дополнительных аксессуаров и увеличении количества жил проводов, подводимых к термостатам
- Нет никакой обратной связи все ли в порядке с термостатами комнатными. По факту выяснилось, что неудачные зажимы проводов в распределительной коробке TECE и провода выпадали, не включая контура отопления
- Если раскрыть распределительную коробку в коллекторном шкафу то невозможно понять все ли работает в ней
- После команды включения термоголовки нету никакой возможности узнать открылась-ли она по факту или что-то пошло не так
- Интегрировать систему покомнатной автоматики (читай подружить) с оборудованием в котельной невозможно штатным способом (телеметрия)
Часть вопросов может быть решена если перейти на более свежую версию системы TECE. Но её стоимость в деньгах выше пределов и не решает всех перечисленных проблем.
No problems - проектируем и собираем новую систему. Не будем заниматься расчетом нового узла управления термоголовками фирменными TECE и воспользуемся уже посчитанной и проверенной немцами схемой (спасибо им за это). Достаточно оригинально в ней исполнена снабберная схема для симистора силового - MOV+C+R. Помимо этого в этом проекте мы изготовим печатную плату на 4 независимых управляющих клапанами канала. Нет проблем сделать плату и на большее\меньшее число клапанов (от 1го до 7ми). При этом стоит учесть что как и в оригинале на каждый отдельный канал можно "цеплять" до 2х термоголовок одновременно.
В остальном:
- Комнатные термостаты требуют только 3х проводов вне зависимости от функций
- Безопасное 5 Вольтовое питание всего кроме термоголовок
- Cпециальных требований к сечению проводов нету. Пойдет практически любой. Укладывать можно прямо между петлями труб контуров отопления
- Комнатные термостаты "обзавелись" маленьким дисплеем, наглядно показывающим текущую температуру и влажность в помещении. Позволяют переключить режимы работы, настроить коррекцию температуры и влажности (+-5 с ценой деления 0.01)
- Наглядная индикация состояния связи с "центром" на термостатах-панелях (моргание светодиода)
- Распределительный блок в коллекторном шкафу имеет умную индикацию режимов работы клапанов
- Часы реального времени которые хранят в отсутствии питания все настройки и текущее время
- Возможность задания температуры и профилей работы удаленная (WiFi)
- Авто калибровка коэф-ов PID алгоритма каждого канала в отдельности (под помещение)
- (Пере)назначение термостатов физическим каналам управления клапанов без физической перекоммутации
- Крепление проводов с помощью винтовых, подпружиненых, клеммников (надежнее чем штатный зажимной)
- Обратная связь посредством термосенсоров информирующая о том что клапан контура отопления открылся
- Антизамерзание и прикипание клапанов (защитная функция, присутствует только в цифровых сериях TECE)
- Комплекс необходимых защит
- 3 временных диапазона задания ежедневной температуры или единая на сутки
- Опционально можно научить систему общаться с беспроводными термостатами по Bluetooth (BLE).
Вся система состоит из 3 частей:
1. Центральной платы (стоит взамен старой в коллекторном шкафу)
1.1 МК Espressif ESP32 к которой зацеплен свитч 1Wire сети Maxim Integrated DS2482-800
на каждом отдельном канале которого торчит комнатный термостат с панелью управления (топология сети "звезда").
1.2 На отдельном канале висит "гроздь" DS18B20 термодатчиков выдающих факт подъёма температуры (открытие клапана)
1.3 TRIACи реализующие включение\отключение термоголовок без щелчков и дребезга присущих реле
1.4 Часы реального времени. нужны для хронометрирования множества операций
2. Выносных органов управления и измерения температуры+влажности (комнатные термостаты)
2.1 Arduino pro mini (atmega328) выполняющая сьем показаний с датчика, работу с дисплеем,
задание настроек температуры и программный слейв для сети 1Wire (MicroLan).
2.2 BME280 метеостанция (влажность+температура)
2.3 Дисплей OLED I2C одноцветный (белый) размерами 128x64 (0,96")
2.4 Энкодер с кнопкой как органа управления позволяющего управлять настройками
3. Актуаторов (термоголовок). Подают теплоноситель в контура отопления
Отдельно стоит отметить "трепетное" отношение фирмы Maxim Integrated (бывш. Dallas Semiconductor) к реализациям slave-устройств для шины 1-Wire. Запрещается любое вторичное устройство на шине не произведенное фирмой держателем патента. Причины официально озвучиваемые - из-за адресации на шине. Она должна быть строго подконтрольна держателем патента. НО кстати говоря часть из патентов в Апреле 2019 года закончилась.
ПРОТОТИПИРОВАНИЕ:
Первый образец центральной платы который пошел "в печать" ЛУТом был ревизии номер 5. Первый образец платы термосенсоров был ревизии номер 3. С панелями было несколько проще из-за меньшего числа узлов необходимых для работы.
Отдельно отмечу что прошивки написаны для среды Arduino IDE по простой причине - экономит существенно время, затрачиваемое на разработку и отладку прошивок. Часть библиотек, имеющихся пришлось правда все-равно "модифицировать" либо исправляя проблемы, либо "уменьшая" размер, либо добавляя необходимый функционал. Но все-равно объём произведенных работ существенно меньше чем при разработке с "чистого листа" в Atmel Studio и ESP32 IDF чистой.
В ходе изготовления еще одного комплекта системы (от 01.12.2020) были проведены дальнейшие улучшения:
- на центральной плате (ревизия 6) принято решение отказаться от внешнего модуля часов. Батарейный отсек CR2032 и МС DS3231 разведены на самой плате.
- система получила возможность работы в 2х независимых режимах: 3 временных "окна" на сутки с отдельными температурами или единая температура суточная (как раньше). Дело в том что отопление теплыми полами это высокоинертная система с большой теплоемкостью. "нагреть" за несколько часов "хода" помещение на ощущаемую величину у неё не выйдет. Поэтому 24 часа суток были поделены на "естественное" кол-во периодов = 3. День - Вечер - Ночь.
- Выносные комнатные термостаты получили возможность задания их адреса OneWire БЕЗ перепрошивки (через меню).
- Выносные комнатные термостаты "научились" погружаться в сон.
СБОРКА:
Основа схемотехнического решения управления самими клапанами отопления заимствована у оригинального TECE 77410010. Цепочка TRIAC, снаббер, защита. Единственное отличие - используется не random phase TRIAC а ZeroCross TRIAC.
Центральная плата односторонняя, с толщиной меди 35мкм. В плате выполнены технологические пропилы в местах где слаботочная дорожка расположена близко к силовой. Разводка платы выполнена в "ширину" чтобы помещаться в стандартный коллекторный шкаф где обычно установлены головки контуров теплых полов. Помимо этого размеры платы подходят под старый тип распределительных коробок TECE (2012года).
На основной плате, обязательно, наращиваем толщину дорожек силовых переменного тока (240В) многожильным проводом сечением 0.5мм2.
Термопредохранители F7,F8,F9,F13 стоит запаивать по-хитрому: под углом т.к. их корпус должен находиться максимально близко к 3 Ваттным цементным резисторам номиналом 4.7 Ом (Wirewound серия ACS3 от Vishay). Такое решение позволяет в случае перегрева резисторов автоматически обесточивать цепь. Перед запайкой резисторов один из выводов одевается в термоусадку дабы оградить от случайного касания.
Кронштейны-кроватки предохранителей 5х20 номиналом 630мА (защищают узел включения термоголовок) с той-же целью. Если нет кроваток - одеваем их аккуратно в плотную черную термоусадку диаметром 15мм.
Кронштейн-кроватка предохранителя 5х20 номиналом 200мА (защищают общее для всех термостатов-панелей питание +5Вольт) одевается в термоусадку с той-же целью.
Силовые тиристорные ключи MAC4DSN не требуют радиаторов т.к. термоголовки TECE 77490010 (на 230В) применяемые потребляют всего 2Ватта (~11-8мА). Даже если соединять несколько и вешать на один контур мы получим 4Ватта. Замеры тепловизором показывают что через полный час работы (ВКЛ) нагрев тиристора не превышает 29 Градусов Цельсия.
Резисторы номиналами на 12 и 470 Ом применяются SMD-монтажа в корпусах 1210 или 2512.
Крайне желательно применять "фирмачевые" гарантированного, производителя на рабочее напряжение 400Вольт. Например я применял TE Connectivity CRGP2010F12R и CRGP2010F470R (серия CRGP2010).
Варисторы RV2,RV3,RV4,RV5 фирмы Epcos S14K275.
Конденсаторы C4,C5,C6,C7 фирмы Epcos на 630Вольт, например P/N B32529C8102J000.
Блок питания AC/DC фирмы MeanWell 5ти вольтовая модель ряда IRM с мощностью 3Ватта.
На плате разведено место для моностабильного реле в случаях когда в шкафу коллекторном установлен узел подмеса воды (регулировка температуры подачи\обратки). В текущих реализация прошивки управление им не предусмотрено (по причине отсутствия необходимости мне).
Изначальный вариант платы проектировался под работу в связке ESP32+LAN8720 но потом было решено отказаться от этого в силу требования построения нормальной гальванической развязки Ethernet интерфейса, существенного повышения энергоаппетитов конструкции, требования протяжки дополнительного CAT5 провода до коллекторного шкафа и дополнительных занимаемых портов
в коммутаторе (а значит опять возросшее энергопотребление!).
Параллельно оптопарам MOC3063 запаяны светодиоды зеленого цвета для наглядной индикации команд открытия клапанов (нагрев включен). И индикации подключения выносных термостатов в момент включения системы. Это очень удобно в ходе диагностики "в поле".
"сердцем" всей системы применена плата фирмы Ai-Thinker ESP32-S с установленным Espressif ESP32 МК. Она содержит IPEX коннектор внешней антенны. Он может понадобится в случаях когда сигнал WiFi точки неуверенный из-за экранирования стенками коллекторного шкафа. Правда стоит учитывать что для его "активации" необходимо вооружившись прецизионным пинцетом, паяльником и микроскопом перекинуть перемычку расположенную рядышком с разьемом.
Плата содержит аппаратный контроллер мастера шины 1 Wire (One Wire) и рекомендуемый Maxim диод защиты DS9503 от электромагнитных наводок. Информационный вывод самой шины каждого канала имеет дополнительно PPTC предохранитель на 80мА фирмы Raychen. Помимо этого, в схему введен общий предохранитель на 200мА для защиты всех линий подачи +5 Вольт на выносные панели.
В максимальный "энергопакет" 80мА для DS9503 мы вмещаемся т.к. выносная панель потребляет до 28мА (при включеном дисплее).
В сумме центральная плата потребляет около 35мА в режиме "сна" (все TRIACи выключены, все панели не подсвечивают дисплеями но в сети, WIFI выключен).
В сети существует множество документации касательно того как правильно организуются сети MicroLAN (One Wire). Повторять тут их смысла нет. В этом проекте применен принцип: 1 термостат = 1 отдельный канал коммутатора. Этой мерой мы повышаем надежность работы всей системы т.к. проблемы какой-то одной панели термостата (или проводки до нее), не повлияют на работоспособность остальных.
Термостаты-панели разведены на односторонней плате с толщиной медного слоя 18мкм. Сами детали применяются в типоразмерах SMD 0603, 0805, 1216. Триггеры Шмидта применены в корпусе SOT-23-5 SOT-23-6 для экономии занимаемого пространства.
Применяются готовые модули из одного известного интернет магазина. Они для нас имеют преимущества:
+ термосенсор достаточно маленький и паять его нужно КРАЙНЕ аккуратно. Поэтому GY-BME280
+ OLED дисплеи не так долговечны и могут повредиться случайно. Заменять проще, когда они отдельно
+ ATMEGA328 в корпусе QFP проще технологически "выселить" на отдельную плату
Все три модуля припаиваются к основной только удобными большими разъёмами.
В качестве центрального МК используется Arduino Pro Mini 16Mhz 5V без bootloader'а. Прошивка производится через внешний программатор и от Arduino IDE нам нужен файл remote-unit.ino.eightanaloginputs.hex Значения фьюзов:
low byte = 0xFF
high byte = 0xDF
extended = 0xFD
Плату Arduino Pro Mini необходимо доработать: выпаиваем светодиод, резистор индикации PowerOn, LDO-стабилизатор питания. Заменяем резистор подсвечивающий выход BUILDIN_LED на большего номинала (пойдет 3.6кОм) т.к. со штатным слишком ярко горит светодиод. После этих изменений плату можно жестко припаивать к выводам основной. оставляя между ней и основной платой зазор в ширину листа бумаги.
На плате используется готовый модуль OLED дисплея 128х64 размером 0.96" на контроллере SSD1306 с интерфейсом I2C. Впаивается он на "ножках" которые печатаем на 3Д-принтере. Модуль OLED лучше использовать чуть более дорогой SH1106 т.к. у него есть возможность "обратного" чтения содержимого видеопамяти. Это позволит сэкономить память в atmega328 у библиотеки работы с дисплеем. На плате дисплея важно не забыть выпаять резисторы подтяжки шины I2C т.к. они нам не понадобятся (уже есть на модуле GY-BME280).
Мы используем готовый модуль термосенсора BME280 под артикулом GY-BME280. Он имеет встроенный конвертор 3.3V<->5V и его можно подключать напрямую. Сам модуль припаивается хитро - на ножках pinheader'а. Это нужно для минимизации площади термоконтакта с основной платой. Ничего не должно мешать свободному обдуванию сенсора воздухом! У Bosch sensortec есть отличный документ который помогает найти оптимальные параметры монтажа: Handling, soldering & mounting instructions BST-BME280-HS006.
В качестве органа управления применен датчик угла (энкодер) фирмы Bourns модели PEG12. К нему смонтирована схема аппаратного подавления дребезга механических контактов на основе триггеров Шмидта 74LVC2G14.
Входные цепи питания платы и интерфейсного вывода шины 1 Wire (One Wire) содержат цепи защиты от повышенного напряжения и помех в проводах т.к. выносные панели подключаются к штатным проводам ПВ3 3х0.75мм2 оставшимся от установленных ранее TECE 77410010.
Потребление тока одной панелью составляет 3мА (дисплей выключен, спит), если панель "разбужена" для сеанса связи то 13мА. Со включенным дисплеем в момент съёма показаний около 28мА. Совсем увести в "сон" atmega не получится: она должна "слушать" эфир 1-Wire не пропустив команды поэтому используется интервал сна в 18секунд после чего она просыпается и ждет вечно до прихода команды на "замер" показаний. После этой команды панель снова погружается в сон. Вывести ее из режима сна можно долгим (>2сек) удержанием нажатой центральной кнопки. Это сделано для защиты от случайных нажатий.
В сети 1 Wire используется штатный протокол. Но данные передаваемые в 8ми байтах кадра протокола имеют свою структуру (пакуются):
- 4 байта температуры (float-тип) преобразуются к 2х байтовому виду. Разрешающая способность - сотые доли. этого хватает.
- Влажность воздуха переводится из 4 байтового формата (float-Тип) в 1 байт. величины от 0 до 100% вполне хватает.
Адреса контроллеров на шине 1Wire содержат в трех первых байтах закодированную нами информацию:
- первый байт — 0x60 это наш идентификатор (признак типа устройства -контрольных панелей)
- второй байт — это адрес внутренний устройства на шине (он выводится на дисплей термостата-панели при включении)
- третий байт — это версия прошивки устройства. (текущая 2я).
Процесс запуска происходит следующим образом:
вначале без термостатов-панелей подключаем питание к основной плате и проверяем работоспособность ключей, оперирующих клапанами. С WiFi даем команды на открытие и закрытие клапанов. Если индикация светодиодами на плате говорит, что всё работает, подключаем термоголовки и проверяем с ними.
Когда всё ок - подключаем внешние термостаты-панели. Подключив каждую панель-термостат к системе в первый раз НЕ забудьте назначить ей уникальный адрес! Теперь проверяем работу задавая с них режимы работы каналов.
При подаче напряжения на плату она сразу же мигающим огнем пробегает по всем 4 каналам, открывающим клапана индицируя таким образом, что соответствующий канал действует.
Делает паузу несколько секунд пытаясь найти термостаты-панели подключенные.
Найдя каждую панель она индицирует её нахождение зажигая соответствующий светодиод.
Закончив сканирование делается пауза 5 секунд после чего переходит к обычному циклу работы.
Вся конструкция имеет отличную степень воспроизводимости. Нужно только внимательно спаять, прошить и включить в розетку!
Осцилограмма номер 1 иллюстрирует время на которое МК mega328 погружен в сон используя 2х секундные интервалы Watchdog'а. в сумме это около ~18секунд.
Осцилограмма номер 2 иллюстрирует интервал между запросами с центрального модуля. Около ~20секунд.
График 1 и табличка 1 отображают потребление тока центральным модулем + одной панелью в режимах: забор показаний + их отправка на сервер + сон.
График 2 и табличка 2 отображают потребление тока отдельно панелю в режимах: забор показаний + сон.
График 3 и табличка 3 отображают потребление тока отдельно только центральным модулем в режимах: отправка показаний на сервер + сон.
Платы после отладки покрывают лаком для защиты. Можно применить из баллончика в виде аэрозоли, а можно старый-добрый Цапонлак.
Все платы устанавливаются в свои корпуса - центральная в корпус из под оригинальной распределительной коробки TECE, а термостаты-панели в разработанные специально под них корпуса. Корпуса можно распечатать на домашнем 3D-принтере из модели, или заказать отливку на производстве. Габариты корпуса сделать меньше оригинальных TECE-корпусов нельзя т.к. не будет закрывать места имеющиеся и штатные подрозетники монтажные (64х45мм).
Вообще корпус термостатов-панелей сейчас все-еще доводится до идеала и близится 4я версия его. Основные места доводки это узлы скрепления двух частей корпуса между собой, крепления платы внутри.
There are no published comments.
New comment