• Изменено

Некоторые котлы, такие как мой 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.

Image description

Не буду описывать подключение датчика давления к АЦП и АЦП к ESP, всё есть в интернете. Переходим к настройке устройств и контроллеров в ESPEasy, необходимых для реализации задуманного.

  • На вкладке Devices добавим Task для АЦП:

Image description

Image description

Image description

Image description

Формула (%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:

Image description

Image description

  • Далее, включаем инструмент для процессинга и управления данными под названием Rules. Для этого переходим на вкладку, Tools -> Advanced :
    Image description

  • Затем переходим на появившуюся вкладку Rules и прописываем свои правила для публикации данных в топики:

Image description

В примере реализована проверка на отрицательное значение давления, так как датчик аналоговый и немного шумит. Под рукой не оказалось нужного конденсатора для сглаживания. Позже добавлю. Данные публикуются в два топика. Один топик для примера создания custom-устройства, а второй для передачи данных в opentherm-термостат OTGateway.

  • В HOMEd-custom создаём устройство:

Image description

Image description

  • Файл для импорта

    heating-system-monitor.json
    255B
  • Датчик в систему отопления установил через капиллярную трубку на обратке перед насосом, чтобы из-за нагрева не съезжали показания. Да и целее будет)

Image description