Умный счетчик воды на ESP32 с импульсным выходом для Алисы

Умный счетчик воды на ESP32 с импульсным выходом для Алисы
Достоинства
  • Автоматический сбор и передача показаний холодной и горячей воды без ручного списывания цифр
  • Раннее обнаружение скрытых микропротечек и незакрытых кранов по непрерывному расходу
  • Голосовое информирование Алисы о расходе за сутки, неделю или месяц в литрах и рублях
  • Бюджетная себестоимость модернизации существующих квартирных счетчиков (в 5–7 раз дешевле заводских LoRaWAN/NB-IoT модемов)
Недостатки
  • Необходимы базовые навыки пайки и сборки простой схемы согласования импульсного выхода
  • Требуется наличие розетки или подведение питания 5V/12V в сантехнический шкаф
  • Плата микроконтроллера должна находиться в сухом месте либо в герметичном корпусе IP65 из-за влажности
Главное из статьи:
  • Импульсный выход водосчетчика замыкает геркон каждые 10 литров (или 1 литр), формируя дискретные импульсы для **ESP32**.
  • Аппаратная цепочка RC (резистор `10 кОм` и конденсатор `100 нФ`) в сочетании с программным фильтром debounce в ESPHome исключает ложные подсчеты от механического дребезга.
  • Через интеграцию Home Assistant текущий расход и суммарные кубометры пробрасываются в «Дом с Алисой», позволяя запускать аварийные сценарии и голосовые отчеты.

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

Сборка DIY умного счетчика воды на ESP32 с импульсным выходом для Алисы решает обе задачи: контроллер точно считает каждый литр расхода, передает кубометры в приложение и позволяет ассистенту перекрыть вводные краны при непрерывном потоке воды. По такому же принципу мы ранее настраивали умный счетчик электроэнергии на ESP32 и PZEM-004T для Алисы.


Принцип работы импульсного водосчетчика

Бытовые расходомеры брендов ITELMA, Бетар, Valtec, Декаст и Метер оснащаются импульсным выходом на базе сухого контакта (геркона). Внутри механической счетной головки закреплен небольшой постоянный магнит. При прохождении через камеру заданного объема воды магнит замыкает геркон, формируя дискретный электрический сигнал.

Цена деления (вес импульса)

Перед подключением необходимо уточнить цену импульса по паспорту прибора:

  • 10 литров / импульс (0.01 м³/имп): Стандарт для 90% квартирных счетчиков диаметром DN15. Одно замыкание соответствует десяти литрам воды.
  • 1 литр / импульс (0.001 м³/имп): Встречается в высокоточных версиях приборов Valtec.
  • 100 литров / импульс (0.1 м³/имп): Общедомовые узлы диаметром DN25 и более.
Модель расходомераТип контактаВес импульсаПредельный ток
ITELMA WFK24Геркон (сухой контакт)10 л/имп50 мА
Бетар СХВ-15ДГеркон с резистором10 л/имп20 мА
Valtec VLF-RГеркон (сухой контакт)10 л/имп100 мА
Декаст ВСКМГеркон защищенный10 л/имп40 мА

NOTE

Геркон гальванически полностью изолирован от воды и металлических труб, что гарантирует электробезопасность сантехнического шкафа.


Схема согласования и защита от дребезга контактов

Механические лепестки геркона при замыкании вибрируют в течение нескольких миллисекунд. Быстрый микроконтроллер ESP32 с частотой 240 МГц воспринимает эту вибрацию как пачку из десятков ложных импульсов. Для устранения ошибки применяется RC-фильтр и программный debounce.

Необходимые детали для сборки:

  • Плата ESP32 NodeMCU Type-C;
  • Два подтягивающих резистора 10 кОм (Pull-Up к шине 3.3 В);
  • Два защитных резистора 1 кОм последовательно с сигнальной линией;
  • Два керамических конденсатора 100 нФ для фильтрации высокочастотных всплесков;
  • Блок питания на DIN-рейку 5 В 1 А (Mean Well HDR-15-5).
                  +3.3V (ESP32)
                    |
                   [R1: 10 кОм]
                    |
                    +-------------[R2: 1 кОм]--------> GPIO18 (ESP32)
                    |                                    |
Вход ХВС            |                                   === C1: 100 нФ
(Провод 1) --------+                                    |
                                                        |
Вход ХВС                                               GND (ESP32)
(Провод 2) --------------------------------------------+

WARNING

Никогда не подключайте подтяжку к контакту 5 В! Предельное напряжение на входах ESP32 составляет строго 3.3 В.


Настройка прошивки ESPHome

Для интеграции используем платформу pulse_counter в открытой операционной системе ESPHome. Накопленные кубометры сохраняются в энергонезависимой памяти flash.

substitutions:
  node_name: "water-meter-node"

esphome:
  name: ${node_name}

esp32:
  board: esp32dev
  framework:
    type: esp-idf

wifi:
  ssid: "SmartHome_IoT"
  password: "SecretWiFiPassword"

globals:
  - id: cold_water_base
    type: float
    restore_value: yes
    initial_value: "142.58"

  - id: hot_water_base
    type: float
    restore_value: yes
    initial_value: "86.21"

sensor:
  - platform: pulse_counter
    pin:
      number: GPIO18
      mode:
        input: true
        pullup: true
    name: "Расход холодной воды"
    id: cold_flow
    unit_of_measurement: "л/мин"
    update_interval: 5s
    filters:
      - debounce: 0.04s
      - multiply: 10.0
    total:
      unit_of_measurement: "м³"
      name: "Счетчик ХВС"
      accuracy_decimals: 3
      filters:
        - debounce: 0.04s
        - multiply: 0.01
        - lambda: |-
            return x + id(cold_water_base);

  - platform: pulse_counter
    pin:
      number: GPIO19
      mode:
        input: true
        pullup: true
    name: "Расход горячей воды"
    id: hot_flow
    unit_of_measurement: "л/мин"
    update_interval: 5s
    filters:
      - debounce: 0.04s
      - multiply: 10.0
    total:
      unit_of_measurement: "м³"
      name: "Счетчик ГВС"
      accuracy_decimals: 3
      filters:
        - debounce: 0.04s
        - multiply: 0.01
        - lambda: |-
            return x + id(hot_water_base);

TIP

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


Проброс сенсоров в Дом с Алисой

Трансляция параметров в экосистему Яндекса выполняется через нативную интеграцию Home Assistant с облаком Яндекса.

В файле configuration.yaml Home Assistant зарегистрируйте водосчетчики:

yandex_smart_home:
  entity_config:
    sensor.schetchik_khvs:
      name: "Холодная вода"
      room: "Санузел"
      type: sensor.water_meter
    sensor.schetchik_gvs:
      name: "Горячая вода"
      room: "Санузел"
      type: sensor.water_meter

После обновления списка устройств в мобильном приложении Алиса сможет озвучивать текущие показания в кубометрах.


Алгоритм защиты от непрерывного расхода

В отличие от стандартного перекрытия кранов при протечке воды с Алисой, импульсный учет выявляет скрытые свищи и забытые краны. Если непрерывный поток > 0.3 л/мин длится дольше 35 минут в режиме отсутствия владельцев, система автоматически подает сигнал на электропривод шаровых кранов и оповещает голосом:

  1. Сенсор фиксирует непрерывное вращение крыльчатки более 35 минут.
  2. Home Assistant активирует реле сервопривода кранов Neptun или Gidrolock.
  3. Колонка Яндекс Станция объявляет тревогу, а на смартфон поступает срочный пуш.

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


Сравнение: DIY на ESP32 или готовые счетчики

ПараметрDIY на ESP32Контроллер Saures / WateriusСчетчики NB-IoT
Стоимость1 200 руб.7 500 руб.11 000 руб.
АвтономностьЛокальная сеть Wi-FiОблачный серверСеть оператора
Опрос данныхКаждые 5 секунд1 раз в сутки1 раз в сутки
Реакция на утечкуМгновенноЗадержка до 24 чЗадержка до 24 ч
Сценарии АлисыПолная интеграцияОграниченноНет поддержки

Вопросы и ответы

Законно ли подключать провода к водосчетчикам?

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

Можно ли перевести узел на батарейное питание?

Постоянно включенный модуль Wi-Fi разрядит батарейки за пару суток. Для автономной работы требуется режим глубокого сна Deep Sleep с прерыванием по пину, либо постоянное питание 5 В от щита.

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

1

Шаг 1: Подключение импульсных линий счетчиков к микроконтроллеру ESP32

Сборка схемы с внешней подтяжкой pull-up к шине 3.3V, конденсатором фильтрации и подключением к выводам GPIO18 и GPIO19.

2

Шаг 2: Конфигурирование прошивки ESPHome и расчет веса импульса

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

3

Шаг 3: Проброс в Умный Дом Яндекса и настройка сценариев безопасности с Алисой

Создание голосовых сценариев проверки расхода и автоматического перекрытия стояков при аномально долгом потоке воды.

ПРЕМИУМ IPTV • ТЕСТ 24Ч 0 ₽ / тест ⚡️ СБП +20% бонус

Шаровоз: 2 300+ каналов и 4K кинозалы

Официальный премиум-пакет IPTV: 296 кинозалов BCU (новинки кино в 4K Ultra HD), Матч Премьер 50fps, 116 каналов РФ и архив передач за 6 дней на телевизорах Smart TV, Android TV и приставках.

Оплата:⚡️СБП QR (РФ)+20%💳МИР / Visa / MC💎USDT / BTC🌐FreeKassa
ВСЁ ВКЛЮЧЕНО
3$/ мес
Тест на 24ч →
Автор статьи Инженер по безопасности и загородным системам
8+ лет в инженерных сетях

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