Розумний дім #6: Розумний полив на ESP32

Автоматичний полив на ESP32 — практичний проєкт, який підтримує здоровий стан рослин удома й на ділянці та зменшує рутину догляду. У цій статті ми зберемо систему на базі ESP32 з датчиком вологості ґрунту і реле для насоса: реалізуємо автоматичний режим за порогом вологості, ручний режим, а також зручне WEB-керування зі смартфона або ПК. Подамо повністю робочий код і розберемо критичні нюанси — від підключення й калібрування датчика до захисту насоса від «сухого ходу», обмеження часу роботи та антидребезгу вимірювань.

Список обладнання та компонентів

  • ESP32 DevKit (з підтримкою Wi-Fi).
  • Датчик вологості ґрунту — рекомендовано ємнісний (capacitive soil moisture sensor) на 3.3 В: він стійкіший до корозії, ніж резистивні «вилки».
  • Реле / ключ для насоса:
    • Для DC-насоса 5–12–24 В — MOSFET-ключ із зворотним діодом (flyback) паралельно двигуну.
    • Для AC 220 В — твердотільне реле (SSR) або модуль реле з оптоізоляцією. Обов’язково дотримуйтесь електробезпеки!
  • Насос (занурювальний або поверхневий) під вашу напругу та витрату.
  • Блок(и) живлення: для ESP32 — 5 В (≈1 А), для насоса — згідно з паспортом.
  • З’єднувальні дроти, клеми, за потреби — герметичний бокс (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 у відсотки за калібрувальними точками ADC_DRY/ADC_WET. Це зменшує шум і корозію.
  • Режими: у MODE_AUTO насос вмикається, коли вологість ≤ (поріг − гістерезис), і вимикається при досягненні (поріг + гістерезис) або по таймеру Max ON. Між циклами дотримується Cooldown. У MODE_MANUAL насос вмикається/вимикається лише через WEB.
  • WEB-інтерфейс: головна сторінка показує вологість, режим, стан насоса, поріг. Параметри (режим/поріг/пауза/Max ON) змінюються без перезавантаження сторінки; статус оновлюється запитом /status кожні 2 с.
  • Збереження налаштувань: поріг і таймінги зберігаються в NVS (Preferences) та відновлюються під час старту контролера.
  • Захист насоса: обмеження часу безперервної роботи (max_on_ms) та пауза між циклами (cooldown_ms) мінімізують ізнос і «смикання» реле.

Застосування та розширення проєкту

  • Крапельний полив кімнатних рослин/грядок: стабільна подача води невеликими дозами, захист від пересихання/переливу.
  • Мультизона: додайте кілька каналів (сенсори/насоси) з вкладками у веб-інтерфейсі.
  • Інтеграція з MQTT і Home Assistant: публікуйте показання/стан, будуйте сценарії за розкладом і отримуйте сповіщення.
  • Графіки: надсилайте дані в InfluxDB і візуалізуйте в Grafana або ThingsBoard.
  • Датчик рівня бака та захист від сухого ходу: блокуйте запуск насоса при низькому рівні води.
  • Клімат-адаптація: ураховуйте погоду/опади з API, коригуйте пороги й інтервали поливу.
  • Журнал подій: лог поливів (час, тривалість, вологість до/після) допоможе точніше налаштувати систему.
  • Живлення сенсора за розкладом: якщо сенсор «шумний», зменшіть частоту читань і збільшіть час стабілізації.

Висновок

Ми зібрали повноцінний контролер поливу на ESP32 з датчиком вологості ґрунту, реле насоса, автоматичним і ручним режимами та зручним WEB-керуванням. Рішення легко адаптується під конкретні рослини та умови: корегуйте пороги й таймінги, додавайте MQTT/графіки, підключайте додаткові сенсори. Такий модуль придатний як для дому, так і для лабораторних/навчальних стендів і невеликих теплиць.

Потрібен індивідуальний проєкт — розробка схеми, друкованої плати, прошивки та корпусу під ваші вимоги? Ми допоможемо. Створюємо надійні рішення на ESP32 і беремо на себе виготовлення плат та збирання. Перегляньте приклади в нашому портфоліо і напишіть нам — обговоримо задачу.

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
MOC3041 оптрон

MOC3041 оптрон

Оптопара з симісторним виходом.Використовується для керування потужним симістором за допомогою логіч..

19.53грн.

Кінцевик з коліщатком для 3D принтера або CNC ramps 1.4

Кінцевик з коліщатком для 3D принтера або CNC ramps 1.4

Кінцевий вимикач для встановлення на 3D-принтер або CNC-верстат системи ramps 1.4В комплекті кабель ..

52.29грн.

Універсальна плата під мікросхеми SOP16 або SSOP16

Універсальна плата під мікросхеми SOP16 або SSOP16

Універсальна монтажна плата, дозволяє проводити монтаж різноманітних мікросхем з поверхневим монтаже..

13.77грн.

Модуль 8 PWM виходів I2C на DIN-рейку без корпусу

Модуль 8 PWM виходів I2C на DIN-рейку без корпусу

Модуль продається без коробкиМодуль восьми ШІМ виходів I2C для побудови домашньої чи промислової сис..

971.42грн.

Уроки Arduino типы данных для начинающих

Уроки Arduino типы данных для начинающих

Привет друзья от geekmatic.in.ua! Пора заняться полезным делом и разобрать типы данных, представле..