Декомпьютеризация насосной, часть 2

Финальная часть замены Raspberry Pi в насосной на модуль на микроконтроллере.

Вступление весьма подробно рассказано в первой части, так что можно сразу к сути.

Что требуется:

  • Переключение между реле давления с защитой от сухого хода и полным диапазоном (2-4,5 кг), и реле без защиты и с узким диапазоном (3,5-4,5 кг).
  • Возможность блокировки запуска насоса – отключение пускателя от реле.
  • Измерение потребления насоса.
  • Управление режимами с передней панели.
  • Отображение режимов.
  • Контроль состояния реле давления.
  • Так как весьма просто добавить измерение температуры, но температура воздуха в помещении уже меряется первым блоком, то решил датчик температуры использовать для замера температуры трансформатора 400-230. Пусть будет статистика.
  • В последний момент дали идею – добавлю в дальнейшем датчик давления. Заказал с Али, пока едет.
  • Весьма неплохо бы сделать те автоматизации, что у меня были реализованы скриптами на малинке – одноразовую подкачку воды до максимума и “софт-реле” для защиты от сухого хода.

Реализация “в железе” по тому же принципу, что и в прошлый раз. Однако: в этот раз только обычные реле – скважина более критичный элемент, чем фильтр бассейна, поэтому “в дефолте” имеем нормально замкнутые контакты разрешения работы и выбранное реле с защитой. Т.е., даже если с модулем что-то случится, то насос будет работать “просто как обычно”. Так как реле всего два, то места на “нижнем этаже” побольше – в этот раз не пришлось лепить БП где-то сбоку – в этот раз решил не экспериментировать и сразу размещать его подальше от микроконтроллера. Клеммник у обычных модулей реле стоит немного дальше от края, чем в модулях с SSR, в итоге пришлось часть текстолита срезать. Монтажное основание в корпусе сделано из двух макетных плат. На одной размещен урезанный модуль реле и БП, на второй – PZEM и схема контроля состояния реле давления.

На PZEM-004t сходу перенес интерфейсный разъем на обратную сторону платы, а дополнительный конденсатор для организации питания от 400В взял с другого нерабочего измерителя. Крепление модуля – пайкой за монтажную плату. Все получилось очень впритирку – конденсаторы упирались в стенку корпуса, пришлось дорабатывать по ходу дела.

Микроконтроллерная часть – по отработанной схеме. Макетка, гнезда для установки ESP32 C3, стабилизатор на AMS1117 и паяемый в последнюю очередь индикатор на SSD1306 – в этот раз взял с разрешением 128х64, так как на 32 становилось совсем уж тесно.

В этот раз разъем на модуле реле в том числе обеспечивал подачу питания на “процессорную” часть, а питание на сам модуль сделал через пины-стойки, на которых он держится.

2 (или даже 3) промаха:

  • контроллер в сборке получился впритирку к PZEM’у – благо, напротив там интерфейсная часть, но все же. Изначально не хотел размещать контроллер над реле и чуть все не испортил.
  • Провода сделал сильно короткие, пришлось дорабатывать по ходу дела. А вообще – когда много отдельных разъемов, то это начинает напрягать. Надо стараться делать общий шлейф – на макетке проще перемычку кинуть, когда все разобрано, чем потом стараться подключить несколько отдельных косичек в разные точки в полусобранном состоянии.
  • PZEM в этот раз упирался в контакты одной из кнопок – в натянутую на них термоусадку. Термоусадку снял, контакты загнул под 90 градусов, чтобы обеспечить зазор.

Итог:

Середина нижнего клеммника – задел под датчик давления: вывод +5/0 и вход на АЦП контроллера. Когда поднялась тема с датчиками давления, то хотел поставить 2 – до фильтра и после – да и пин один свободный остался. Но – незадача: на esp32 использовать 2 АЦП можно только если не используется wifi. Пришлось ограничиться одним.

Схемы:

Конфиг для ESP Home

Конфиг будет обновлен, так как на сейчас получилось инверсное отображение состояния реле – после сборки начал редактировать прошивку “не в ту сторону”.

Общий дизайн блока вышел примерно такой же, как и в первый раз: дисплей и 2 кнопки.

  • Одна при коротких нажатиях переключает тип реле: нормальное / подкачка
  • При длительном нажатии блокируется работа насоса.
  • Вторая при коротком нажатии включает одноразовую подкачку.
  • При длительном нажатии переключается режим soft relay.

После добавления датчика давления дизайн дисплея, похоже, будет немного переделан – после чего и выложу финальный вариант конфига.

Update: да, забыл: некоторые функции у меня все же дергаются удаленно из cron’а – подкачка воды по расписанию. Пример:

wget -qO- --post-data=1 http://192.168.1.132/switch/relay_normpump/turn_on

Значение в “post-data” вроде не принципиально, просто ключ не работает без параметра.

Добавить комментарий