Найти тему
Дача DIY

"Киберскважина". Часть 8: Запуск автоматики в работу

"Киберскважина" - серия статей о разработке DIY контроллера управления скважинным насосом и мониторинга состояния оборудования кессона с доступом по WiFi на базе микроконтроллера ESP32 под управлением умного дома Home Assistant. Файлы проекта доступны на GitHub.

Завершив изготовление контроллера и сборку электрощита для него:

а также смонтировав этот электрощит и обвязку скважины со всеми датчиками в кессоне:

приступил к финальной, самой интересной стадии проекта - пусконаладке.

Первое включение показало, что прошивка, написанная "на столе", то есть не в реальных условиях подключенного оборудования, совершенно неработоспособна. Это естественно, так как настраиваемые параметры алгоритма были забиты практически "с потолка" и не соответствовали действительности. Их нужно подбирать по факту. А для этого нужно перепрошивать контроллер. И с этим возникли проблемы.

Разработку контроллера я вёл зимой, живя дома в городе, где у меня тоже умный дом на платформе Home Assistant. И там я давно переехал со слабенькой Raspberry Pi3 на полноценный комп форм-фактора неттоп. На даче же до сих пор умный дом крутился на RPi3, которая напрочь отказалась компилировать прошивку под ESP32, вываливаясь в фатальную ошибку. Здесь тоже нужен апгрейд сервера умного дома - новый комп, помощнее.

В подборе компьютера мне очень помог гуру Хом Ассистанта - Alex Kvazis, именно его подборку я изучал перед покупкой. В итоге заказал на Алиэкспрессе вот такой безвентиляторный мини-ПК:

Мини-ПК XCY без вентилятора, Intel Celeron J4125 DDR4 M.2 SSD RS232/485 2x LAN GPIO mPCIE 4G LTE 8x USB LVDS HDMI TPM 2,0 Windows 11 на AliExpress

Он пришёл с предустановленной виндой, которую я тут же снёс и накатил операционную систему Home Assistant:

GitHub - home-assistant/operating-system: :beginner: Home Assistant Operating System

Просто и удобно, без всякой ненужной возни с контейнерами и докером - всё это уже сделано в Home Assistant OS и настроено оптимальным образом. На голую систему восстановил конфиг умного дома из бэкапа со старого компа - и всё сразу заработало. Весь переезд занял не более часа.

На даче я пока не построил жилой дом, мы живём в бытовке, где места не так уж много, и всё телеком-оборудование у меня висит на стене над дверью:

Новый мини-ПК занял последнее свободное место, едва уместившись между щитком и дверью (Wi-Fi антенны пришлось не устанавливать - с ними не влезало, да они и не нужны, так как подключение к роутеру по кабелю):

-2

Комплектный блок питания разметил в герметичном электрощитке, где расположены и все другие блоки питания сетевого оборудования (роутера, видеорегистратора, RPi3). Сверху в комп воткнут USB-стик Sonoff Zigbee 3.0 - координатор сети zigbee.

Home Assistant на новом компе ожидаемо стал летать, ESP32 теперь компилируется без проблем. Однако, поковырявшись с настройками алгоритма своего самодельного контроллера, мне так и не удалось заставить его работать - он постоянно вываливался в аварию засорения фильтра, выключая насос через пару секунд после его включения и ожидая ручного сброса аварии. Всё в соответствии с задумкой, только почему-ж на новом чистом фильтре такая большая дельта давления воды?

Обратил внимание на показания цифровых датчиков давления, и обнаружил, что датчик, установленный в систему после фильтра, показывает какие-то неправильные, слишком низкие значения. Почти такие-же, как и датчик давления на выходе из редуктора. Даже не почти, а точно такие же, лишь иногда отличающиеся на 0.1 бара. Ещё одна проблема?

В общем, в результате многочисленных тестов и глубоких раздумий, получив массу положительных эмоций (отладка - это самое интересное в работе инженера-электронщика) выяснил, что я, не будучи специалистом-сантехником, по своей безграмотности в этом вопросе почему-то решил, что два выхода под манометры в редукторе давления - это для измерения давления на его входе и на выходе. Мне казалось это абсолютно логичным и не было даже никаких сомнений и причин для проверки этого предположения. И я построил гидравлическую схему исходя из этого.

Но, всё оказалось тупее и проще - оба выхода на редукторе предназначены для измерения только лишь выходного давления воды. А два их просто для удобства монтажа аксиального манометра - в зависимости от того, какой стороной к стене будет смонтирован редуктор. Неиспользованный выход просто глушится пробкой. Весело. А ведь я искал редуктор именно с двумя выходами, специально.

Что ж, придётся переделать - один цифровой датчик давления нужно переставить в другое место уже полностью сделанного трубопровода обвязки скважины. А пока пришлось закомментировать кусок алгоритма, отвечающий за контроль засорения фильтра.

После этого всё, наконец, заработало. Дальше я увлечённо подбирал тонкие настройки, добиваясь максимально оптимальной работы системы водоснабжения. Особенно приятно, что делал я это лёжа на диванчике с ноутбуком, удалённо включая и выключая насос, открывая и закрывая zigbee-кран слива воды из системы, который скоро станет краном автополива. Заливка новых прошивок ESP32 производится по воздуху, так же, не отрываясь от дивана. Жаль, настроилось всё быстро, покайфовал один вечерок, и делать больше нечего.

Чуть позже переделал гидравлическую схему, переставив один из датчиков давления до редуктора на маленький тройничок вместе с манометром. Было так:

-3

Стало так:

-4

Интерфейс управления контроллером в Home Assistant у меня получился вот такой красивый:

-5

Здесь отображаются все возможные параметры работы системы водоснабжения и можно управлять режимами работы, например - вручную включить или выключить насос. Допустим, мне нужно произвести какую-то работу с электрикой на участке и отключить общее электропитание. Перед этим сначала с телефона включаю насос, он накачивает полный бак и отключается сам. После этого спокойно могу отключить электричество и не спеша работать - 50 литров воды на хозяйственные нужды в запасе есть.

Картинка в левом верхнем углу интерфейса живая, наглядно отображает основные статусы системы:

-6

Картинку рисовал сам, в LibreOffice Draw, она состоит из кучи фрагментов, окрашенных в разные статусные цвета. А в Home Assistant настроил алгоритм для скрытия или показа этих отдельных фрагментов по разным условиям.

Вот тут, например, видно, что включено реле насоса и есть расход воды в трубопроводе - идёт наполнение гидробака:

-7

А здесь кто-то включил кран и расходует воду, в данном случае это работает автополив:

-8

По достижении нижнего порога давления включается насос, и загрузка и расход гидробака происходят одновременно:

-9

В случае каких-то аварийных ситуаций соответствующий фрагмент на картинке окрашивается в красный.

Как видно по скринам, на данный момент система прокачала через себя уже около 97 кубов воды. К сожалению, счетчики воды на закачке и на расходе оказались с разной погрешностью, и их показания со временем разбегаются (сейчас один показывает 97 кубов, другой - 94). На работу алгоритма это никак не влияет, просто неаккуратненько. Нужно будет ввести в код коэффициент поправки показаний. Но 3% - это допустимая паспортная погрешность счётчиков, точнее уже не будет.

В процессе настройки и эксплуатации узнал много нового и интересного.

1. Давление воздуха в гидроаккумуляторе в 1.5 бара, которое рекомендуется по умолчанию - это не самый оптимальный вариант. Его нужно делать процентов на 5-10 ниже давления включения насоса. В моём случае нижний порог давления для насоса - 2.5 бара, и в ГА нужно накачать 2.2-2.3 бара воздуха. Таким образом можно будет повысить его рабочий объём (объём между выключением и включением насоса). Сейчас этот объём всего-то около 10-13 литров, и насос включается чаще, чем мог бы:

-10

2. Давление в системе при непользовании водой скачет обратно пропорционально суточным колебаниям температуры:

-11

Сначала я не понял, а потом как понял! Логично было предположить, что с ростом температуры воздуха повышается и давление воды в летнем водопроводе, который проложен по поверхности и хорошо прогревается на солнце. Но вместе с водой расширяется и ПНД труба, увеличивая свои диаметр и длину, а значит и внутренний объём. Поэтому в жару давление воды не повышается, а наоборот, падает. И это существенные колебания - примерно в 2 бара. Таким образом, настроив верхнюю отсечку для насоса в 4 бара, ночью в системе можно получить до 6-ти бар! А я уже хотел снимать редуктор давления с поливочных шлангов, так как в кессоне теперь есть общий редуктор на весь водопровод, но вот оказалось нельзя - давление растёт в трубопроводе после кесонного редуктора, и он уже не может его ограничивать. А поливочные шланги шести бар могут и не выдержать.

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

-12

От этого на трубопроводе собирается избыточное количество конденсата:

-13

А с фильтра течёт ручьями:

-14

И пришлось пока подставить ёмкость, чтобы не образовывалось луж на дне кессона:

-15

Реализация контроллера на базе ESP32 и ESPHome имеет, среди прочего, ещё один не очень очевидный плюс. Так как контроллер - это самостоятельное устройство умного дома, полностью работоспособное без сервера Home Assistant, да и вообще без интернета и даже без локальной сети, то верно и обратное - он может работать с любым количеством серверов одновременно.

И я, конечно же, воспользовался этм преимуществом - подключил этот дачный скважинный контроллер параллельно к своему второму серверу Home Assistant - в городской квартире. Если что случится с одним из серверов, то другой продолжит обеспечивать полнофункциональный контроль за работой системы водоснабжения. Связь между городским и дачным серверами я построил на основе VPN-туннеля между двумя роутерами Keenetic, один из которых имеет белый IP.

Ну и, разумеется, если упадут оба сервера разом, то контроль через приложение или веб-сайт будет невозможен, но система автоматики продолжит исправно работать, было бы только электропитание в кессоне.

_______________________________

На этом проект "Киберскважина" успешно завершён. В работе он уже более месяца, серьёзных сбоев не замечено. Тонкие настройки ещё можно не спеша производить, доводя работу системы до идеальной, но и на данном этапе всё уже более чем хорошо. Парился не зря, удовольствие получил с избытком. Зарелизил на гитхабе первую версию проекта.