Датчик уровня воды в баке на ESP32: сборка и интеграция с Алисой
В загородных домах, на дачах и в коттеджных поселках организация автономного водоснабжения нередко строится на базе промежуточных накопительных емкостей (еврокубов, пластиковых баков объемом от 500 до 3000 литров). Накопители сглаживают пиковые нагрузки водоразбора, дают воде отстояться и нагреться, а также спасают при низкой производительности скважины.
Однако регулярный контроль фактического запаса воды превращается в постоянную головную боль: приходится спускаться в подвал или кессон, заглядывать под тяжелую крышку емкости или полагаться на ненадежные поплавковые герконы, склонные к залипанию от известкового налета.
В этом подробном руководстве мы соберем надежный цифровой датчик уровня воды на базе микроконтроллера ESP32 и влагозащищенного ультразвукового сонара JSN-SR04T. Мы прошьем устройство через платформу ESPHome, настроим автоматический пересчет расстояния до зеркала воды в проценты и литры, передадим показатели в Яндекс Алису и организуем автоматическое управление насосом скважины.
1. Выбор компонентов и аппаратная архитектура
Для стабильной работы в условиях постоянной 100% влажности и испарений внутри пластикового бака обычные открытые ультразвуковые модули (вроде HC-SR04) не подходят — их мембраны окисляются и выходят из строя за пару недель.
Необходимые компоненты:
- Микроконтроллер ESP32 (NodeMCU ESP-WROOM-32 или ESP32-C3 Mini):
Обеспечивает подключение по Wi-Fi, быструю обработку сигналов времени отклика и локальную интеграцию без облачных задержек. - Водонепроницаемый ультразвуковой датчик JSN-SR04T (версия 2.0 или 3.0):
Комплектуется герметичным излучателем со степенью защиты IP67 на длинном экранированном кабеле (2.5 м) и отдельной платой обработки сигнала. Рабочий диапазон измерения составляет от21 смдо450 см. - Блок питания на 5 Вольт (2 Ампера):
Импульсный стабилизированный источник питания для предотвращения помех в измерительной цепи сонара. - Монтажная распределительная коробка IP65 и гермовводы (сальники PG7):
Для надежного размещения электроники снаружи бака на стене котельной.
2. Схема подключения JSN-SR04T к микроконтроллеру ESP32
Плата модуля JSN-SR04T имеет 4 контакта для подключения:
5V (VCC)-> соединяется с пином5V(илиVIN) платы ESP32.GND-> соединяется с общим минусомGND.TRIG(сигнал запуска импульса) -> подключается к цифровому пинуGPIO5контроллера ESP32.ECHO(сигнал эхо-отклика) -> подключается к цифровому пинуGPIO18контроллера ESP32.
IMPORTANT
Минимальная мертвая зона датчика JSN-SR04T составляет 20–22 см. Если уровень воды поднимется ближе 20 см к излучателю, сонар начнет выдавать некорректные скачкообразные значения. Поэтому датчик монтируется на выносном патрубке или в самой верхней точке горловины бака с запасом высоты до перелива.
3. Конфигурация прошивки в ESPHome
Создайте новый узел в панели управления ESPHome и добавьте следующий конфигурационный YAML-код:
esphome:
name: water-tank-monitor
friendly_name: "Датчик уровня воды"
esp32:
board: esp32dev
framework:
type: esp-idf
wifi:
ssid: "Your_Home_WiFi"
password: "Your_WiFi_Password"
sensor:
- platform: ultrasonic
trigger_pin: GPIO5
echo_pin: GPIO18
name: "Расстояние до зеркала воды"
update_interval: 10s
unit_of_measurement: "m"
id: water_distance
filters:
- median:
window_size: 5
send_every: 1
send_first_at: 1
- filter_out: nan
# Расчет заполненности бака в процентах (0-100%)
- platform: template
name: "Уровень воды в баке"
id: tank_level_percent
unit_of_measurement: "%"
accuracy_decimals: 0
lambda: |-
float empty_dist = 1.80; // Расстояние до дна пустого бака в метрах
float full_dist = 0.25; // Расстояние до верхнего уровня полного бака
float current = id(water_distance).state;
if (current >= empty_dist) return 0.0;
if (current <= full_dist) return 100.0;
return ((empty_dist - current) / (empty_dist - full_dist)) * 100.0;
# Расчет оставшегося объема в литрах (для бака 1500 л)
- platform: template
name: "Объем воды в баке"
id: tank_volume_liters
unit_of_measurement: "л"
accuracy_decimals: 0
lambda: |-
return id(tank_level_percent).state * 15.0; // 100% = 1500 литров
4. Интеграция с Яндекс Алисой и голосовой опрос
После компиляции и прошивки ESP32 сущности датчика автоматически появляются в Home Assistant, откуда через официальный навык Яндекса передаются в приложение «Дом с Алисой».
Голосовые сценарии и ответы Алисы:
- Голосовой опрос статуса:
На вопрос: «Алиса, сколько воды в баке?» ассистент отвечает текущим процентом заполненности или запускает сценарий озвучивания: «В накопительном баке 1200 литров, уровень 80%». - Сценарий предупреждения об аварийном остатке:
- Условие (Если):
«Уровень воды в баке»опускается ниже20%. - Действие (Тогда): Яндекс Станция в гостиной и кухне произносит: «Внимание, уровень воды в баке упал ниже двадцати процентов! Включаю скважинный насос».
- Условие (Если):
5. Автоматическая подкачка и защита насоса
Датчик уровня на ESP32 связывается в общий сценарий автоматизации с умным реле скважинного насоса (протоколы Zigbee или Wi-Fi):
- При падении уровня ниже
25%умное реле автоматически включает насос подачи воды из скважины. - По достижении отметки
92%реле отключает подачу, предотвращая перелив емкости. - В случае, если насос работает дольше
40 минут, а уровень воды не поднялся даже на5%, система распознает пересыхание скважины или завоздушивание магистрали, мгновенно обесточивает насос для защиты от сухого хода и отправляет пуш-уведомление владельцу дома на смартфон.
6. Смежные сценарии загородного умного дома
Цифровой мониторинг накопительных резервуаров отлично сочетается с другими решениями для автономного дома. Рекомендуем также изучить наши статьи по умному управлению скважинным насосом с Алисой, алгоритмам комплексной защиты коттеджа от замерзания и руководству по автоматизации греющего кабеля водопровода.
7. Заключение
Самодельный ультразвуковой датчик на микроконтроллере ESP32 с модулем JSN-SR04T обходится в 4–5 раз дешевле промышленных гидростатических уровнемеров, обеспечивая при этом бесконтактное измерение, устойчивость к коррозии и бесшовную интеграцию с умным домом Яндекса. Точные данные об объеме воды защищают дорогостоящее насосное оборудование и избавляют от неприятных сюрпризов с перебоями водоснабжения.
Инструкция по настройке
Сборка схемы и монтаж датчика в крышку накопительного бака
Подключите контакты Trig и Echo сенсора JSN-SR04T к GPIO микроконтроллера **ESP32**, врежьте излучатель в верхнюю крышку резервуара и загрузите конфигурацию ESPHome.
Обсуждение статьи