Умный дом #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 и берём на себя изготовление плат и сборку. Посмотрите примеры в нашем портфолио и напишите нам — обсудим задачу.

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Канифоль 10г

Канифоль 10г

Твердая канифоль для пайкиПрименяется как флюс при пайке свинцово-оловяным припоем..

41.95грн.

Бегущие огни на Ардуино

Бегущие огни на Ардуино

Arduino бегущая дорожка из светодиодовДелаем бегущие огни из светодиодов на Arduino. В данном случае..

Таймеры Arduino UNO — Часть 2. Работа с прерываниями таймеров

Таймеры Arduino UNO — Часть 2. Работа с прерываниями таймеров

Таймеры Arduino UNO — Часть 2. Работа с прерываниями таймеров Теория Что такое прерыва..

Генератор импульсов на NE555

Генератор импульсов на NE555

Генератор импульсов на NE555 Генератор прямоугольных импульсов на основе популярной микросхемы NE..

42.30грн.

Модуль енкодера

Модуль енкодера

Модуль енкодера с кнопкой.Используется для управления меню в различных устройствах. Заменяет множест..

74.24грн.