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

Arduino SIM800 відправка SMS

Привіт колеги! Сьогодні ми дісталися нарешті однієї з найцікавіших тем, що стосуються GSM-модуля SIM..

Схеми увімкнення транзистора

Схеми увімкнення транзистора

Будь-який підсилювач, незалежно від частоти, містить від одного до кількох каскадів посилення. Для т..

Модуль на DIN-рейку для Arduino Nano — 8 дискретних входів, I2C, SPI, UART

Модуль на DIN-рейку для Arduino Nano — 8 дискретних входів, I2C, SPI, UART

Головний модуль автоматизації для створення домашніх і промислових систем управління на базі Arduino..

557.49грн.

Ковпачок на змінний резистор 6мм

Ковпачок на змінний резистор 6мм

Чорно-білий декоративний ковпачок для змінних резисторів та енкодерів з отвором у вигляді зіркиВнутр..

5.63грн.

Шестерня для зубчатого ременю на 36 зубців під вісь 5 мм

Шестерня для зубчатого ременю на 36 зубців під вісь 5 мм

Використовується для передачі та редукції обертаючого моменту від двигуна до вісі 5 ммКількість зубц..

79.68грн.