"Киберскважина" - серия статей о разработке DIY контроллера управления скважинным насосом и мониторинга состояния оборудования кессона с доступом по WiFi на базе микроконтроллера ESP32 под управлением умного дома Home Assistant. Файлы проекта доступны на GitHub.
Минимальная система автоматики скважины на даче у меня уже собрана и работает на промышленном решении - Unipump Акваробот Турбипресс (сейчас она уже не под открытым небом, а расположена в кессоне):
Но мне этого мало. Хочется больше информации, больше контроля, больше автоматизации. Готовые решения с продвинутым функционалом я даже не искал. Уверен, что они существуют, но в данном случае помимо утилитарной составляющей задачи присутствует ещё и развлекательная. Автоматика и микроэлектроника - это ещё одно моё хобби (кроме строительства), и в очередной раз я совмещаю приятное с полезным.
Полностью доверять работу скважинного насоса своему будущему самодельному контроллеру я, конечно же, не рискну. После изготовления контроллера "в железе" я планирую внедрять его неспеша, создавая и тестируя алгоритмы управления непосредственно в рабочих условиях скважины. Поэтому существующее промышленное решение в виде реле давления Unipump Акваробот Турбипресс будет гармонично включено в проект моего контроллера в качестве запасного варианта, "горячей" резервной системы автоматики скважины. И в процессе отладки я смогу легко переключаться между системами автоматики, сохраняя бесперебойное водоснабжение дачного участка.
Что должен будет уметь контроллер
- Измерять давление воды с точностью 0.1 бар в трёх точках в обвязке скважины: до фильтра, после фильтра и после редуктора давления на выходе на потребители.
- Измерять расход воды с точностью 1 литр в двух точках в обвязке скважины: до гидроаккумулятора и после него.
- Измерять температуру воздуха с точностью 0.1°C в кессоне на четырёх разных уровнях по высоте.
- Управлять работой насоса по установленным порогам давления. Пороги настраиваются в интерфейсе управления контроллером в интерфейсе умного дома Home Assistant.
- Переключать управление насосом на резервную систему автоматики (реле давления Unipump).
- Переключать управление насосом в ручной режим для прокачки скважины, промывки системы или для аварийного получения воды из скважины, когда сломалось вообще всё, кроме насоса.
- По данным измерений температуры включать отопление в кессоне, если температура воздуха приближается к нулевой отметке, а это по результатам моего теста оказалось вполне реальным: Замёрзнет ли зимой вода в кессоне для скважины?
- По данным датчиков давления сигнализировать о необходимости смены фильтрующего элемента в фильтре.
- По данным датчиков расхода информировать о текущем запасе воды в гидроаккумуляторе и изменении его полезного объёма (не забился ли песком, так как гидроаккумулятор у меня с верхним подключением).
- По комбинации данных со всех датчиков следить за аварийными ситуациями, уведомлять и отключать насос в следующих случаях:
- затопление кессона;
- сухой ход насоса;
- медленная утечка в системе;
- большой длительный расход воды;
- выход из строя насоса. - Следить за частотой и продолжительностью включения насоса, сигнализируя о выходе этих параметров за установленные допуски и побуждая обратить внимание на возможные проблемы в работе системы водоснабжения.
- Выполнять свои функции автономно (без интернета, WiFi и облачных сервисов). По WiFi локально или через интернет посредством умного дома Home Assistant предоставлять удобный интерфейс для настроек, контроля параметров и отображения статистики, в приложении на телефоне или в браузере на ПК.
Из чего будет состоять контроллер и его обвязка
Контроллер я буду строить на базе отладочной платы ESP32_Devkitc_V4 с WiFi на борту:
Несмотря на позиционирование этой платы как макетной (или отладочной), она абсолютно пригодна для использования в готовых устройствах на постоянной основе. Плата имеет встроенный USB-интерфейс, что сильно упрощает её первоначальную прошивку. Последующие обновления прошивки в рамках использования в составе умного дома на платформе Home Assistant и фреймворка ESPHome производятся уже по воздуху.
Прошивка микроконтроллера - это предмет разработки. Вся логика работы программного обеспечения контроллера будет создаваться мной с нуля в соответствии с моим видением результата. Никаких ограничений, полная свобода действий и полёта мысли! А возможность обновления прошивки по воздуху позволит отлаживать контроллер в том числе и удалённо, не выходя из дома.
В обвязке платы ESP32_Devkitc_V4 буду использовать твёрдотельные реле G3MB-202P, выпускавшиеся ранее компанией OMRON, но с 2009 года снятые с производства:
На замену им пришли китайские аналоги неплохого качества. Однако эти реле я не буду использовать напрямую для управления силовыми потребителями, так как они обеспечивают коммутацию нагрузки не более 2А. А китайским аналогам тем более доверять нельзя.
В качестве исполнительных реле будут применены контакторы для монтажа на DIN-рейку:
Наряду с оставшимися у меня контакторами ABB я впервые решил протестировать и продукцию IEK. Используемые узлы не критичные - это всего лишь реле, а не защитные автоматические выключатели, поэтому есть хороший и безопасный повод проверить модульные устройства более доступного и дешёвого производителя, хотя это и не позволит судить о надёжности автоматов IEK.
Таким образом, ESP32 будет напрямую управлять твёрдотельными реле G3MB-202P, которые в свою очередь будут управлять контакторами на DIN-рейке. Такая последовательная схема коммутации электропитания силовых устройств является наиболее надёжной и широко применяется как в промышленной электрике и микроэлектронике, так и в среде DIY, в том числе и в моей практике этот метод использовался не раз, например в самодельном контроллере для бытовки:
Этот самодельный контроллер вот уже 5 лет исправно работает в электрощитке бытовки (только первичные реле там использовались не твёрдотельные, а обычные электромеханические):
Датчики давления воды XDB305 с AliExpress:
Никогда не имел дела с датчиками давления, выбрал конкретно эти просто по популярности. Датчики с токовым выходом, диапазон тока выходного сигнала 4-20 мА. Для считывания показаний требуют включения в цепь своей токовой петли резистора определённого номинала, с которого можно снимать сигнал на АЦП микроконтроллера, эквивалентный значению падения напряжения. Присоединительная резьба датчиков 1/4", места для их подключения заранее предусмотрел в трубопроводе обвязки скважины.
Эти датчики давления требуют напряжения питания 12 В, а отладочная плата на ESP32 питается от 3.3 В. По этой причине пришлось использовать два вторичных источника питания. Первый - это AC-DC преобразователь на 12 В отлично зарекомендовавшего себя тайваньского производителя MEAN WELL, а именно HDR-30-12, выполнен в форм-факторе DIN-реечного модуля (фото аналогичной версии на 24 В для примера):
Второй - тоже MEAN WELL, но уже DC-DC преобразователь из 12 в 3.3 В, называется SCWN06A-03, предназначен для монтажа на плату (фото аналогичного варианта на 12 В для примера):
В качестве датчиков расхода воды я решил использовать самые обычные счётчики воды с импульсным выходом - ZENNER ETKD-I:
Да, конечно же существует множество специализированных и высокоточных датчиков расхода. Однако у всех них есть ряд существенных недостатков, критичных для данной задачи - нестандартизированные установочные размеры, несовместимость характеристик и излишне высокая частота импульсов.
Если датчики давления имеют вполне понятные стандартные параметры, и при необходимости можно легко заменить неисправный датчик, не выискивая в точности такой же, то датчики расхода все разные. Самое главное - у них разная длина, а так как устанавливаются они в трубопровод последовательной врезкой, то заменить такой датчик можно будет только на точно такой же по длине.
Слишком высокая точность датчиков расхода, выдающих по несколько сотен импульсов на литр, требует высокой вычислительной мощности контроллера, которую ESP32 под управлением ESPHome обеспечить, конечно, может, но у него и другие задачи будут кроме этой. Да и попросту не нужна мне такая точность, достаточно 1 импульса на литр.
Врезку счётчиков воды также заранее предусмотрел при проектировании обвязки скважины.
Температурные датчики - классические DS18B20:
Управляются по 1-Wire, и поэтому их можно повесить целую гроздь на один единственный пин микроконтроллера в параллель. Прекрасно работают при напряжении питания 3.3 В.
Для контроля затопления кессона использую поплавковый выключатель (лягушку):
Лягушка будет напрямую управлять контактором аварийного отключения насоса, без участия контроллера. Состояние контактора и, соответственно, факт аварии, будет передаваться в контроллер для уведомления о текущей ситуации.
Конструктивно всю систему планирую собрать в электрощитке IEK TITAN 5 со степенью защиты IP 65 на 24 модуля, который установлю непосредственно в кессоне:
Продолжение: