Умный дом #6: Умный полив на ESP32
Автоматический полив на ESP32 — практичный проект, который помогает поддерживать здоровое состояние растений дома и на участках. В этой статье мы соберём систему на базе ESP32 с датчиком влажности почвы и реле для насоса: реализуем автоматический режим по порогу влажности, ручной режим, а также удобное WEB-управление с телефона/ПК. Приведём полностью рабочий код и разберём ключевые нюансы — от подключения датчика до защиты насоса от «закипания» и частых включений.
Список оборудования и компонентов
- ESP32 DevKit (с поддержкой Wi-Fi).
- Датчик влажности почвы — рекомендуется ёмкостной (capacitive soil moisture sensor) на 3.3 В. Он долговечнее резистивных «вилок» и меньше подвержен коррозии.
- Реле/модуль реле для управления насосом:
- Для DC-насоса 5–12–24 В — лучше использовать транзисторный ключ (MOSFET) с обратным диодом на катушке/моторе.
- Для AC 220 В — твердотельное реле (SSR) или модуль реле с оптронной развязкой и отсечкой дуги. Соблюдайте электробезопасность!
- Насос (погружной или поверхностный) под ваше напряжение.
- Блок питания соответствующей мощности (для ESP32 — 5 В; для насоса — по паспорту).
- Соединительные провода, клеммы, при необходимости — корпус/бокс IP-класса.
- По желанию: MOSFET-ключ для питания датчика от GPIO (через транзистор) — чтобы уменьшить коррозию, подавая питание только на время измерения.
Схема подключения и принцип работы
Система состоит из трёх частей: ESP32 (мозг), датчик влажности (измерение), исполнительный модуль (реле/транзистор для насоса). ESP32 периодически опрашивает датчик, вычисляет текущую влажность в процентах и принимает решение: если режим Auto и влажность ниже порога — включить насос. Насос работает до достижения порога (с гистерезисом) или до максимального времени полива (защита от «залипания»/сухого хода). Между поливами выдерживается «охлаждение» (cooldown), чтобы избежать частых стартов.
Рекомендуемые пины (можно менять):
| Сигнал | ESP32 пин | Примечание |
|---|---|---|
| Датчик влажности — аналоговый выход | GPIO34 (ADC1) |
Вход только на чтение; типичные ёмкостные датчики работают от 3.3 В |
| Питание датчика (через ключ) | GPIO25 |
GPIO управляет MOSFET/транзистором, подающим 3.3 В на датчик только на время измерения |
| Реле насоса / MOSFET-ключ | GPIO26 |
Часто реле — active LOW; уточните ваш модуль |
| GND | GND | Общий «минус» для ESP32, датчика и ключа |
Важно: не подавайте 5 В на аналоговый выход датчика, если он подключен к ADC ESP32. Для многих ёмкостных датчиков корректно питание от 3.3 В. Если используете DC-насос, установите диод Шоттки параллельно мотору (обратной полярностью) для гашения ЭДС самоиндукции. При работе с 220 В — используйте правильную розетку/корпус, клеммы, заземление и соблюдайте нормы электробезопасности.
Пример кода (ESP32 + датчик влажности + реле насоса + WEB)
Код реализует авто/ручной режимы, защиту по времени, «охлаждение» между поливами и простую веб-страницу со статусом и настройками. Тайминги и режим сохраняются в NVS, переживают перезагрузку.
Короткое объяснение кода
- Чтение влажности: датчик питается только во время измерения (
PIN_SENSOR_PWR), затем производится несколько чтений ADC и усреднение. Сырые значения калибруются в проценты с помощью парADC_DRY/ADC_WET(подберите под ваш датчик). - Режимы:
MODE_AUTOвключает насос при влажности ниже порога (с гистерезисом), отключает при достижении порога или по истечении Max ON. Между циклами соблюдается Cooldown. ВMODE_MANUALнасос управляется только из WEB. - WEB-интерфейс: корневая страница показывает статус (влажность, режим, состояние насоса) и позволяет менять порог/тайминги/режим. Обновление — запросом
/statusкаждые 2 секунды. Ручные команды —/pump?cmd=1|0. - Хранение настроек: порог и тайминги сохраняются в NVS (
Preferences) и восстанавливаются при старте. - Безопасность: логика ограничивает максимальное непрерывное время работы насоса и предотвращает «дёрганье» частыми включениями.
Применение и расширение проекта
- Капельный полив комнатных растений и грядок: стабильная подача небольших доз воды, защита от пересушивания и перелива.
- Мультисекция: расширьте проект несколькими каналами (несколько датчиков/насосов) и общим WEB-интерфейсом с вкладками.
- MQTT и Home Assistant: добавьте публикацию показаний и состояния в брокер, настройте автоматизации по расписанию и уведомления в Telegram.
- Графики: отправляйте данные во временное хранилище (InfluxDB) и визуализируйте в Grafana или ThingsBoard.
- Датчик уровня бака и защита от сухого хода: запрет включения насоса при пустом резервуаре, сигнализация о низком уровне.
- Климат-зависимый полив: учитывайте прогноз погоды/осадки (через облачный API) и корректируйте пороги.
- Журнал событий: логируйте время поливов, длительность, влажность до/после — это поможет калибровать систему.
- Питание датчика по расписанию: если датчик «шумный», читайте реже и дольше «прогревайте» перед чтением.
Заключение
Мы собрали полноценный контроллер полива на базе ESP32 с датчиком влажности почвы, реле насоса, автоматическим и ручным режимами и удобным WEB-управлением. Проект легко адаптируется: меняйте пороги и тайминги под конкретные растения, добавляйте MQTT/графики, подключайте дополнительные датчики. Такой модуль хорошо подходит как для домашнего применения, так и для лабораторных или учебных стендов.
Если вам нужен индивидуальный проект — разработка схемы, печатной платы, прошивки и корпуса под ваши требования — мы можем помочь. Создаём надёжные решения на ESP32 и берём на себя изготовление плат и сборку. Посмотрите примеры в нашем портфолио и напишите нам — обсудим задачу.




