ESP32 с ёмкостным датчиком влажности почвы, ESPHome и Home Assistant

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

Что понадобится

Компонент Требование
ESP32 исправная плата и ADC-пин, подходящий для выбранной конфигурации
датчик предпочтительно ёмкостный, без открытых корродирующих электродов
питание стабильное и соответствующее плате; выход датчика не превышает допустимое напряжение входа ESP32
корпус ESP32 и соединения находятся вне мокрой зоны
контроль мультиметр и ручная проверка состояния субстрата

Перед подключением сверяйтесь со схемой именно своей платы и датчика. Цвет провода и подпись из случайной карточки товара не являются документацией.

Шаг 1. Получите сырое значение ADC

Сначала не переводите сигнал в проценты. Выведите напряжение или сырое нормализованное значение и несколько часов посмотрите, насколько оно стабильно. Официальные параметры компонента приведены в документации ESPHome Analog To Digital Sensor.

Минимальная идея конфигурации выглядит так:

sensor:
  - platform: adc
    pin: GPIO34
    name: "Рассада — влажность, сырой сигнал"
    attenuation: auto
    update_interval: 30s
    filters:
      - median:
          window_size: 7
          send_every: 3

GPIO и параметры нужно заменить под свою плату. Медианный фильтр уменьшает одиночные выбросы, но не исправляет плохое питание или залитый разъём.

Шаг 2. Проверьте установку

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

Сделайте три проверки:

  1. значение на воздухе и в сухом субстрате не прыгает хаотично;
  2. после ручного полива сигнал меняется в ожидаемую сторону;
  3. при высыхании он постепенно возвращается, а не остаётся на одном уровне.

Если реакция появляется только при шевелении провода, проблема электрическая, а не агрономическая.

Шаг 3. Соберите точки калибровки

Не используйте стакан воды как единственную «точку 100%». Датчик в воде и в рабочем субстрате ведёт себя по-разному. Практичнее записать несколько реальных состояний:

Состояние Что записать
перед обычным ручным поливом сырое значение и состояние растения
через 30–60 минут после полива значение после распределения воды
через сутки скорость изменения
перед следующим поливом повторяемость сухой точки

После нескольких циклов можно применить фильтр calibrate_linear и ограничить результат диапазоном 0–100. Синтаксис и работа фильтров описаны в официальном разделе ESPHome Sensor Component. Пары значений должны быть вашими, а не скопированными из примера.

    filters:
      - median:
          window_size: 7
          send_every: 3
      - calibrate_linear:
          method: exact
          datapoints:
            - 0.82 -> 0.0
            - 0.39 -> 100.0
      - clamp:
          min_value: 0
          max_value: 100
    unit_of_measurement: "%"

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

Шаг 4. Передайте данные в Home Assistant

ESPHome может использовать native API или MQTT. Native API проще, если данные нужны только Home Assistant. MQTT удобен, когда то же измерение читает GrowerHub или другая локальная система. В любом варианте сущность должна становиться недоступной при потере контроллера, а интерфейс — показывать время последнего обновления.

Для MQTT настройте state и availability, а для автоматизации не используйте сохранённое значение после истечения допустимого времени. Общие правила интеграции описаны на странице Home Assistant MQTT.

Шаг 5. Сначала только наблюдение

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

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

Можно ли подключить насос к той же ESP32

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

Если эти условия не выполнены, оставьте ESP32 датчиком. Для будущего полива сначала добавьте протечку, измерьте расход и проверьте безопасные лимиты автополива.

Чек-лист результата

  • вход ESP32 не получает недопустимое напряжение;
  • контроллер и соединения защищены от воды;
  • сырые значения стабильны;
  • датчик закреплён в рабочем субстрате;
  • калибровка сделана по нескольким реальным циклам;
  • при потере ESP32 сущность становится недоступной;
  • автоматический насос не зависит от одного программного таймера.

После этого процент становится полезной шкалой для конкретной зоны, а не случайным числом с красивым значком капли.

ESP32 с собственной локальной MQTT-конфигурацией — исключение из ограничения обычных облачных Wi‑Fi-датчиков. В разделе оборудования объяснено, почему розничные Tuya-датчики обычно нельзя направить в MQTT GrowerHub, а открытый ESP32 можно интегрировать отдельно.