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




