Розумний дім #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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Трансформатор струму 0-50А

Трансформатор струму 0-50А

Трансформатор струму призначений для вимірювання сили змінного струму, що тече через дріт. Для підкл..

77.82грн.

Як почати програмувати Arduino та які базові функції використовуються

Як почати програмувати Arduino та які базові функції використовуються

Як почати програмувати Arduino та які базові функції використовуються Arduino — це проста й..

Кусачки PLATO 170

Кусачки PLATO 170

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

134.01грн.

RFID NFC модуль PN532 — зчитувач міток 13.56 МГц для Arduino, ESP32, Raspberry Pi

RFID NFC модуль PN532 — зчитувач міток 13.56 МГц для Arduino, ESP32, Raspberry Pi

PN532 NFC модуль — це універсальний RFID/NFC зчитувач для роботи з безконтактними мітками, картками ..

279.07грн.

Розумний дім #7: ESP32 — тепла підлога з автоматичним регулюванням за DS18B20 та WEB-керуванням

Розумний дім #7: ESP32 — тепла підлога з автоматичним регулюванням за DS18B20 та WEB-керуванням

Розумний дім #7: ESP32 — тепла підлога з автоматичним регулюванням за DS18B20 та WEB-керуванням ..