Датчик уровня воды в баке на ESP32: сборка и интеграция с Алисой

Датчик уровня воды в баке на ESP32: сборка и интеграция с Алисой

В загородных домах, на дачах и в коттеджных поселках организация автономного водоснабжения нередко строится на базе промежуточных накопительных емкостей (еврокубов, пластиковых баков объемом от 500 до 3000 литров). Накопители сглаживают пиковые нагрузки водоразбора, дают воде отстояться и нагреться, а также спасают при низкой производительности скважины.

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

В этом подробном руководстве мы соберем надежный цифровой датчик уровня воды на базе микроконтроллера ESP32 и влагозащищенного ультразвукового сонара JSN-SR04T. Мы прошьем устройство через платформу ESPHome, настроим автоматический пересчет расстояния до зеркала воды в проценты и литры, передадим показатели в Яндекс Алису и организуем автоматическое управление насосом скважины.


1. Выбор компонентов и аппаратная архитектура

Для стабильной работы в условиях постоянной 100% влажности и испарений внутри пластикового бака обычные открытые ультразвуковые модули (вроде HC-SR04) не подходят — их мембраны окисляются и выходят из строя за пару недель.

Необходимые компоненты:

  1. Микроконтроллер ESP32 (NodeMCU ESP-WROOM-32 или ESP32-C3 Mini):
    Обеспечивает подключение по Wi-Fi, быструю обработку сигналов времени отклика и локальную интеграцию без облачных задержек.
  2. Водонепроницаемый ультразвуковой датчик JSN-SR04T (версия 2.0 или 3.0):
    Комплектуется герметичным излучателем со степенью защиты IP67 на длинном экранированном кабеле (2.5 м) и отдельной платой обработки сигнала. Рабочий диапазон измерения составляет от 21 см до 450 см.
  3. Блок питания на 5 Вольт (2 Ампера):
    Импульсный стабилизированный источник питания для предотвращения помех в измерительной цепи сонара.
  4. Монтажная распределительная коробка 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, откуда через официальный навык Яндекса передаются в приложение «Дом с Алисой».

Голосовые сценарии и ответы Алисы:

  1. Голосовой опрос статуса:
    На вопрос: «Алиса, сколько воды в баке?» ассистент отвечает текущим процентом заполненности или запускает сценарий озвучивания: «В накопительном баке 1200 литров, уровень 80%».
  2. Сценарий предупреждения об аварийном остатке:
    • Условие (Если): «Уровень воды в баке» опускается ниже 20%.
    • Действие (Тогда): Яндекс Станция в гостиной и кухне произносит: «Внимание, уровень воды в баке упал ниже двадцати процентов! Включаю скважинный насос».

5. Автоматическая подкачка и защита насоса

Датчик уровня на ESP32 связывается в общий сценарий автоматизации с умным реле скважинного насоса (протоколы Zigbee или Wi-Fi):

  • При падении уровня ниже 25% умное реле автоматически включает насос подачи воды из скважины.
  • По достижении отметки 92% реле отключает подачу, предотвращая перелив емкости.
  • В случае, если насос работает дольше 40 минут, а уровень воды не поднялся даже на 5%, система распознает пересыхание скважины или завоздушивание магистрали, мгновенно обесточивает насос для защиты от сухого хода и отправляет пуш-уведомление владельцу дома на смартфон.

6. Смежные сценарии загородного умного дома

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


7. Заключение

Самодельный ультразвуковой датчик на микроконтроллере ESP32 с модулем JSN-SR04T обходится в 4–5 раз дешевле промышленных гидростатических уровнемеров, обеспечивая при этом бесконтактное измерение, устойчивость к коррозии и бесшовную интеграцию с умным домом Яндекса. Точные данные об объеме воды защищают дорогостоящее насосное оборудование и избавляют от неприятных сюрпризов с перебоями водоснабжения.

Инструкция по настройке

1

Сборка схемы и монтаж датчика в крышку накопительного бака

Подключите контакты Trig и Echo сенсора JSN-SR04T к GPIO микроконтроллера **ESP32**, врежьте излучатель в верхнюю крышку резервуара и загрузите конфигурацию ESPHome.

Дмитрий Соколов
Автор статьи

Дмитрий Соколов

Инженер по безопасности & загородным системам
8+ лет в инженерных сетях

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

Обсуждение статьи