Емкостный датчик влажности почвы на ESP32 с Алисой: автополив

Емкостный датчик влажности почвы на ESP32 с Алисой: автополив
Главное из статьи:
  • Емкостный принцип без электролиза: изолированные дорожки сенсора не контактируют с водой напрямую, исключая растворение меди и окисление грунта.
  • Аппаратные ограничения ESP32: для аналогового сигнала используются исключительно выводы блока ADC1 (GPIO32–GPIO39), так как ADC2 блокируется модулем Wi-Fi.
  • Защита от сифонного перелива: развоздушивающее отверстие в шланге предотвращает самопроизвольный ток воды из резервуара после отключения помпы.

Организация автоматического полива комнатных цветов и оранжерей часто упирается в ненадежность датчиков: дешевые резистивные вилки с открытыми контактными дорожками под действием постоянного тока и солей грунта растворяются за 2–3 недели из-за электрохимической коррозии. Самодельная система на базе микроконтроллера ESP32 и емкостного сенсора влажности почвы (Capacitive Soil Moisture Sensor v1.2) полностью лишена этого дефекта. Медные проводники датчика изолированы паяльной маской, а замер выполняется на высокой частоте без пропускания постоянного тока через землю. Добавив миниатюрную погружную помпу 5 В и прошивку ESPHome, мы получаем умную систему, которая передает точный процент влажности в приложение «Дом с Алисой» и поливает любимые растения по расписанию или голосовой команде.

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


1. Физика емкостного сенсора: почему он долговечен

В отличие от резистивных датчиков (типа YL-69) и готовых батарейных Zigbee-сенсоров, которые ради экономии заряда передают данные с задержкой в несколько часов, емкостный сенсор на ESP32 работает непрерывно и функционирует как пластина конденсатора переменной емкости:

ПараметрРезистивный датчик (YL-69)Емкостный сенсор (v1.2 / TLC555)
Физический принципСопротивление постоянному токуДиэлектрическая проницаемость среды
Контакт с влагойПрямой металлический контактПолная изоляция паяльной маской
Срок службы в грунте15–30 дней (электролиз меди)Более 2–3 лет без деградации
Влияние удобренийКритическое (соли искажают показания)Минимальное (измеряется емкость)
Зависимость сигналаБольше влаги $\rightarrow$ Меньше ОмБольше влаги $\rightarrow$ Ниже напряжение

В основе емкостного датчика лежит встроенный таймер (обычно микросхема серии 555 в корпусе SOP-8), работающий в режиме автогенератора на частоте около 1.5 МГц. Окружающая почва выполняет роль диэлектрика. Диэлектрическая проницаемость сухого воздуха равна 1, а чистой воды — около 80. При насыщении грунта влагой емкость конденсатора возрастает, высокочастотное сопротивление падает, а выпрямленное аналоговое напряжение на выходе VOUT снижается.

IMPORTANT

Главная инверсия показаний: чем суше земля, тем выше напряжение на аналоговом выходе (до 2.8–3.0 В). При погружении в воду напряжение падает до 1.2–1.4 В. Это обязательно учитывается при калибровке в прошивке.


2. Аппаратные Gotchas: ревизии датчиков и АЦП ESP32

При повторении проекта радиолюбители на профильных форумах (4PDA, GitHub) регулярно сталкиваются с тремя неочевидными проблемами:

Проблема 1. Фейковые таймеры NE555 на клонах v1.2

На недорогих платах с маркетплейсов часто распаивают биполярный таймер NE555 вместо КМОП-версии (TLC555 или ICM7555). Классический NE555 требует питания минимум 4.5 В. При питании от линии 3.3 В микроконтроллера генерация срывается, и датчик выдает статичные 2.8 В независимо от влажности.
Решение: Питайте датчик от шины 5 В (pin VIN микроконтроллера). Поскольку пиковый аналоговый сигнал при этом не превышает 3.0 В, он полностью безопасен для входа АЦП ESP32.

Проблема 2. Капиллярное расслоение стеклотекстолита

Торец печатной платы датчика на заводе фрезеруется и остается незащищенным. Со временем влага через микропоры стеклоткани FR-4 просачивается между медными слоями, вызывая дрейф нулевой точки.
Решение: Перед установкой в кашпо покройте боковые торцы и верхнюю границу погружения двумя слоями полиуретанового лака Plastik-71 или нейтрального герметика.

Проблема 3. Ограничения АЦП контроллера ESP32

В микроконтроллере ESP32 встроено два блока АЦП: ADC1 и ADC2.
Критическое правило: Аналоговый сигнал датчика разрешено подключать только к выводам блока ADC1 (GPIO32, GPIO33, GPIO34, GPIO35, GPIO36, GPIO39). Блок ADC2 аппаратно задействуется радиомодулем Wi-Fi, и при активном беспроводном соединении любые попытки чтения с пинов ADC2 возвращают системную ошибку или мусорные значения.


3. Принципиальная схема подключения

Для безопасного управления питанием и поливом схема разделяется на две части: измерительную и силовую.

       +---------------------------------------------+
       |                  ESP32                      |
       |                                             |
       |  [VIN 5V] ------+-------------+             |
       |                 |             |             |
       |  [GND] ---------+------+------+             |
       |                        |      |             |
       |  [GPIO34] <-- VOUT     |      |             |
       |  (ADC1_CH6)            |      |             |
       |                        |      |             |
       |  [GPIO25] --> Gate     |      |             |
       +------------------------|------|-------------+
                                |      |
   +----------------------------+      |
   | Емкостный датчик v1.2             |
   | VCC -> VIN (5V)                   |
   | GND -> Общая земля                |
   | AOUT -> GPIO34                    |
   +-----------------------------------+
                                       |
   +-----------------------------------+
   | Силовой модуль помпы
   | +5V -> Плюс микропомпы
   | Минус помпы -> Сток (Drain) MOSFET IRLML2502
   | Затвор (Gate) MOSFET -> GPIO25 через 100 Ом
   | Исток (Source) MOSFET -> GND
   | Диод 1N4007 -> Параллельно помпе (катодом к +5V)
   +--------------------------------------------------+

WARNING

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


4. Конфигурация в ESPHome и точная калибровка

Для прошивки используем популярный фреймворк ESPHome, который автоматически генерирует сущности для Home Assistant и умного дома Яндекса по локальной сети Wi-Fi.

Замер калибровочных констант:

  1. Высушите датчик салфеткой и зафиксируйте в воздухе. Запишите показания АЦП (например, 2850). Это 0% влажности.
  2. Опустите рабочую лопатку сенсора в стакан с водой строго до белой линии ограничения. Запишите показания (например, 1320). Это 100% влажности.

Фрагмент файла конфигурации soil_moisture.yaml:

esphome:
  name: plant-watering-esp32

esp32:
  board: esp32dev
  framework:
    type: arduino

sensor:
  - platform: adc
    pin: GPIO34
    name: "Влажность почвы Монстера"
    id: soil_moisture
    attenuation: 11db
    update_interval: 30s
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    filters:
      - median:
          window_size: 7
          send_every: 4
      - calibrate_linear:
          - 2850.0 -> 0.0
          - 1320.0 -> 100.0
      - clamp_min: 0.0
      - clamp_max: 100.0

output:
  - platform: gpio
    pin: GPIO25
    id: pump_gpio

switch:
  - platform: output
    name: "Помпа полива растений"
    id: water_pump
    output: pump_gpio
    icon: "mdi:watering-can"
    on_turn_on:
      - delay: 8s
      - switch.turn_off: water_pump

Обратите внимание на встроенный аппаратный таймер безопасности: даже если связь с сервером пропадет, команда on_turn_on с задержкой 8 секунд гарантированно отключит насос, предотвратив перелив емкости. Для комплексного контроля запаса жидкости рекомендуем также установить умный датчик уровня воды в баке на ESP32.


5. Сценарии автоматизации в Доме с Алисой

После интеграции через навык Home Assistant в приложении «Дом с Алисой» появляются датчик влажности и переключатель полива. При наличии готовых датчиков экосистемы можно также настроить автоматический полив комнатных растений с защитой от перелива или масштабировать решение для теплицы, используя автополив на даче с Алисой.

Сценарий 1. Голосовой полив по требованию

  • Активационная фраза: «Алиса, полей цветок в спальне» или «Алиса, включи автополив».
  • Действие:
    1. Включить переключатель «Помпа полива растений» (отработает выверенная порция 60 мл).
    2. Яндекс Станция отвечает: «Поливаю монстеру. Порция воды выдана».

Сценарий 2. Автоматический контроль пересыхания грунта

  • Условие (ЕСЛИ): Влажность почвы опустилась ниже 22% в интервале времени с 10:00 до 19:00.
  • Действие (ТОГДА):
    1. Включить помпу полива.
    2. Задержка: 15 минут (время на капиллярное распределение влаги в прикорневом слое).
    3. Если влажность осталась ниже 30% (закончилась вода в резервуаре):
      • Отправить PUSH-уведомление на смартфон: «Внимание: влажность почвы низкая, возможно, закончилась вода в емкости».
      • Яндекс Станция объявляет: «Хозяин, пора долить воду в бак автополива».

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

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

1

Подготовка и влагоизоляция емкостного датчика

Покройте торцы печатной платы датчика защитным полиуретановым лаком Plastik-71 для исключения капиллярного расслоения стеклотекстолита.

2

Сборка электрической схемы с помпой и ключом

Подключите аналоговый выход сенсора строго к пинам блока ADC1 на ESP32, а микропомпу 5В скоммутируйте через N-канальный MOSFET с защитным диодом.

3

Двухточечная калибровка в прошивке ESPHome

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

4

Создание сценариев автополива в Доме с Алисой

Настройте автоматическую дозированную подачу воды при падении влажности ниже 25% с голосовым отчетом на Яндекс Станции.

ПРЕМИУМ 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+ лет в инженерных сетях

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