- Изменено
Некоторые котлы, такие как мой BAXI EcoLife 1.24F, не предоставляют данные через OpenTherm о давлении теплоносителя в системе отопления. Либо не реализовано в софте, либо датчик давления отсутствует в системе безопасности, а на его месте трудится прессостат, который по сути есть простой переключатель ON/OFF и срабатывает при снижении давления до отметки 0.1-0.2 bar. Тоже полезная информация, конечно. Но она, что называется, ставит перед фактом, хотя во многих случаях, остановки котла по этой причине можно было бы избежать анализируя график давления в системе отопления.
Короче, нужная опция, что и говорить. Пришлось поработать доморощенным инженером.
И вот что получилось:
Хотя имеется опыт реализации различных проектов на микроконтроллерах с написанием полного кода программы, решено было воспользоваться готовым вариантом. Недавно и совершенно случайно на глаза попался проект ESPEasy. Его и решил поселить в Wemos D1 mini вместе с АЦП ADS1115 и датчиком давления. Прошивать микроконтроллеры в наши дни стало проще пареной репы. Достаточно воспользоваться хромоподобным браузером и сайтом. Всё что нужно для реализации есть в наборе плагинов NORMAL. После прошивки и перезагрузки подключаемся к точке доступа нашей платы ESP-Easy(пароль сети configesp) и настраиваем подключение к своей сети. Кстати, для ESP32 есть вариант прошивки с использованием Ethernet вместо Wi-Fi.
Не буду описывать подключение датчика давления к АЦП и АЦП к ESP, всё есть в интернете. Переходим к настройке устройств и контроллеров в ESPEasy, необходимых для реализации задуманного.
- На вкладке Devices добавим Task для АЦП:
Формула (%value%-0.393)*3
переводит значение напряжения с датчика в бары.
Порядок вычислений:
Переменная %value%
содержит в себе измеренное значение напряжения. Константа 0.393
это напряжение на выходе данного датчика при атмосферном давлении. Датчик имеет характеристики 3.3V OUT 0.4-2.4V
, диапазон 0-0.6 МПа
. То бишь, питание датчика 3.3 вольта
и измеряемый диапазон 0-0.6 МПа
укладывается в 2 вольта
. Соответственно, 1 вольт равен 3 бар
или 1 бар равен напряжению 0,(3) вольта
. Это означает, что для получения значения в барах нужно выражение (%value%-0.393)
умножить на 3
.
- На вкладке Controllers добавим протокол для MQTT:
Далее, включаем инструмент для процессинга и управления данными под названием Rules. Для этого переходим на вкладку, Tools -> Advanced :
Затем переходим на появившуюся вкладку Rules и прописываем свои правила для публикации данных в топики:
В примере реализована проверка на отрицательное значение давления, так как датчик аналоговый и немного шумит. Под рукой не оказалось нужного конденсатора для сглаживания. Позже добавлю. Данные публикуются в два топика. Один топик для примера создания custom-устройства, а второй для передачи данных в opentherm-термостат OTGateway.
- В HOMEd-custom создаём устройство:
Файл для импорта
heating-system-monitor.json255BДатчик в систему отопления установил через капиллярную трубку на обратке перед насосом, чтобы из-за нагрева не съезжали показания. Да и целее будет)