Умная теплица на ESP32: автополив, вентиляция и контроль климата
Умная теплица на ESP32 помогает автоматически контролировать влажность почвы, температуру, освещение, вентиляцию и полив. В статье разбираем архитектуру такой системы: какие датчики нужны, как управлять насосом и вентилятором, зачем нужны реле или MOSFET-ключи, как организовать питание, ошибки.
Зачем теплице автоматика
Теплица кажется простой системой: растения, грунт, вода, свет и воздух. Но на практике условия внутри быстро меняются. Днем температура может резко вырасти, ночью упасть. Почва сверху выглядит сухой, а внутри еще влажная. После полива влажность воздуха повышается, а без вентиляции появляется конденсат.
Автоматика нужна не для того, чтобы полностью заменить человека, а чтобы убрать рутину и снизить риск ошибок. Контроллер может включать полив по влажности почвы, запускать вентилятор при перегреве, включать подсветку по расписанию и отправлять данные по Wi-Fi.
Умная теплица особенно полезна в таких случаях:
- хозяин не всегда находится рядом;
- полив нужен регулярно и точно;
- растения чувствительны к перегреву;
- важно видеть температуру и влажность удаленно;
- нужно вести наблюдение за условиями;
- теплица работает как экспериментальный проект на ESP32 или Arduino.
Главная идея такой системы - не просто включить насос по таймеру, а управлять теплицей по данным с датчиков.
Архитектура системы
Умную теплицу лучше собирать как набор отдельных узлов. Каждый узел отвечает за свою задачу: измерение, управление, питание, связь и защита.
В центре системы находится контроллер. Для такой задачи хорошо подходит ESP32, потому что у него есть Wi-Fi, достаточно GPIO, поддержка аналоговых входов и нормальная производительность для простого IoT-проекта.
Типовая структура выглядит так:
| Узел | Что делает |
|---|---|
| ESP32 | Считывает датчики и управляет исполнительными устройствами |
| Датчик влажности почвы | Показывает, нужно ли включать полив |
| Датчик температуры и влажности воздуха | Контролирует климат внутри теплицы |
| Реле или MOSFET-ключ | Включает насос, вентилятор или подсветку |
| Насос | Подает воду на капельный полив |
| Вентилятор | Проветривает теплицу при перегреве |
| Блок питания | Питает контроллер и нагрузку |
| Wi-Fi | Передает данные на телефон, сервер или панель мониторинга |
Сначала лучше собрать минимальный вариант: ESP32, один датчик влажности почвы и управление насосом. После проверки можно добавлять вентиляцию, подсветку, экран, веб-интерфейс и удаленный мониторинг.
Какие параметры стоит измерять
В теплице можно измерять десятки параметров, но начинать лучше с основных. Если сразу поставить слишком много датчиков, проект станет сложнее, а пользы на первом этапе будет мало.
Минимальный набор - влажность почвы и температура воздуха. Этого уже достаточно, чтобы сделать автоматический полив и защиту от перегрева.
Более продвинутый вариант добавляет влажность воздуха, освещенность, уровень воды в баке и температуру воды.
| Параметр | Зачем нужен |
|---|---|
| Влажность почвы | Решает, когда включать полив |
| Температура воздуха | Помогает управлять вентиляцией |
| Влажность воздуха | Показывает риск конденсата и духоты |
| Освещенность | Позволяет управлять подсветкой |
| Уровень воды | Защищает насос от работы без воды |
| Температура воды | Полезна для чувствительных растений |
Для домашней теплицы не обязательно измерять все сразу. Хороший проект начинается с тех параметров, по которым реально принимаются решения.
Автополив: не только таймер
Самый простой автополив работает по таймеру: включить насос утром на 30 секунд, потом вечером еще на 30 секунд. Это легко сделать, но такой способ не учитывает реальное состояние почвы.
Если день был жаркий, влаги может не хватить. Если было пасмурно и прохладно, лишний полив может привести к переувлажнению. Поэтому лучше использовать датчик влажности почвы.
Логика может быть такой:
- ESP32 считывает влажность почвы.
- Если значение ниже порога, полив разрешается.
- Насос включается на короткое время.
- После полива система ждет паузу, чтобы вода распределилась в грунте.
- Затем влажность измеряется снова.
Такой подход лучше, чем непрерывно держать насос включенным, пока датчик не покажет нужное значение. Вода не сразу доходит до зоны датчика, поэтому без паузы можно перелить грунт.
Насос, реле или MOSFET
Насос нельзя подключать напрямую к пину ESP32. GPIO микроконтроллера выдает только слабый управляющий сигнал, а насос потребляет намного больший ток. Между контроллером и насосом нужен силовой элемент.
Для небольшого DC-насоса часто используют MOSFET-ключ. Он хорошо подходит для частого включения, не щелкает и меньше изнашивается. Для простого включения нагрузки также можно использовать релейный модуль, особенно если нагрузка питается переменным напряжением или нужна гальваническая развязка.
| Вариант | Когда подходит |
|---|---|
| Реле | Простое включение нагрузки, редкие срабатывания, понятная схема |
| MOSFET | DC-насосы, вентиляторы, ШИМ, частые включения |
| Готовый драйвер | Когда нужна защита, управление скоростью или удобное подключение |
Если насос, клапан или реле являются индуктивной нагрузкой, нужна защита от выбросов напряжения. Обычно используют обратный диод, TVS-диод или готовый модуль с защитой.
Вентиляция и защита от перегрева
В теплице перегрев может быть опаснее, чем кратковременная сухость почвы. В солнечный день температура внутри закрытого объема растет очень быстро. Если нет проветривания, растения получают стресс, а влажность воздуха становится слишком высокой.
Вентиляция может работать по температуре. Например, если внутри теплицы больше 30 градусов, включается вентилятор или открывается форточка. Когда температура падает ниже 27 градусов, вентиляция выключается.
Здесь важно использовать гистерезис. Если включать вентилятор при 30 градусах и выключать тоже при 30, система будет постоянно дергаться около порога. Лучше сделать разницу между включением и выключением.
Пример логики:
- выше 30 градусов - включить вентиляцию;
- ниже 27 градусов - выключить вентиляцию;
- между 27 и 30 градусами - оставить текущее состояние.
Так система работает спокойнее и не щелкает реле каждую секунду.
Уровень воды в баке
Если в системе есть насос и бак с водой, нужно контролировать уровень воды. Без этого насос может включиться на сухую. Для некоторых насосов это быстро заканчивается перегревом, шумом и поломкой.
Контроль уровня можно сделать разными способами: поплавковым датчиком, герконовым датчиком, датчиком уровня, ультразвуковым измерением или простыми электродами. Выбор зависит от воды, бака, расстояния и требований к надежности.
Для практической системы достаточно двух состояний: вода есть или воды нет. Если воды нет, автоматика должна запретить включение насоса и показать ошибку.
Такая защита важнее красивой панели мониторинга. Если насос сгорит, вся система автополива теряет смысл.
Питание теплицы
Одна из частых ошибок в проектах умной теплицы - пытаться питать все от одного маленького USB-адаптера. ESP32 может работать нормально, но при включении насоса или вентилятора напряжение проседает, контроллер перезагружается и система ведет себя нестабильно.
Лучше разделять питание логики и силовой нагрузки. Например, насос и вентилятор питаются от 12 В, а ESP32 получает 5 В или 3.3 В через стабилизатор или DC-DC преобразователь.
Важные правила питания:
- блок питания должен иметь запас по току;
- провода к насосу не должны быть слишком тонкими;
- рядом с силовой нагрузкой полезны конденсаторы;
- земля логики и силовой части должна быть соединена, если используется общий MOSFET-ключ;
- питание ESP32 должно быть стабильным;
- уличная или влажная среда требует защиты соединений.
Wi-Fi и удаленный мониторинг
ESP32 удобен тем, что может передавать данные по Wi-Fi. Это позволяет видеть состояние теплицы на телефоне, компьютере или локальном сервере.
На первом этапе не обязательно делать сложное приложение. Достаточно простой веб-страницы внутри ESP32, отправки данных по MQTT или записи показаний на сервер. Главное - понимать, какие данные действительно нужны.
Полезно отображать:
- температуру воздуха;
- влажность воздуха;
- влажность почвы;
- состояние насоса;
- состояние вентиляции;
- уровень воды;
- время последнего полива;
- ошибки системы.
Если Wi-Fi пропал, теплица не должна останавливаться. Автополив и вентиляция должны продолжать работать локально по датчикам. Интернет нужен для наблюдения, а не как единственное условие работы.
Пример простой логики управления
Ниже пример не полной программы, а общей логики. Она показывает, как можно разделить решения по поливу и вентиляции.
if (waterLevelOk) {
if (soilMoisture < soilMin && millis() - lastWateringTime > wateringPause) {
turnPumpOn();
delay(wateringTime);
turnPumpOff();
lastWateringTime = millis();
}
} else {
turnPumpOff();
showWaterError();
}
if (airTemperature > fanOnTemperature) {
turnFanOn();
}
if (airTemperature < fanOffTemperature) {
turnFanOff();
}
В реальном проекте лучше не использовать длинные delay для всей программы, потому что во время задержки контроллер плохо реагирует на другие события. Но для понимания алгоритма такой пример показывает главное: полив должен зависеть от влажности, паузы и наличия воды, а вентиляция - от температуры с гистерезисом.
Что можно добавить позже
После базового автополива и вентиляции систему можно расширять. Но лучше добавлять функции постепенно, чтобы каждая новая часть была понятной и проверенной.
Возможные улучшения:
- экран с текущими показаниями;
- кнопки для ручного полива;
- ночной и дневной режим;
- управление подсветкой;
- журнал температуры и влажности;
- уведомление о пустом баке;
- защита от слишком частого полива;
- несколько зон полива;
- солнечная панель и аккумулятор;
- корпус с защитой от влаги.
Не стоит начинать сразу с большой системы на все случаи. Практичнее сделать надежное ядро: датчики, насос, питание и защита. После этого добавлять интерфейс, Wi-Fi и аналитику.
Типичные ошибки в умной теплице
Умная теплица часто ломается не из-за сложного кода, а из-за простых инженерных ошибок: слабого питания, плохих контактов, сырости, неправильного датчика или отсутствия защиты насоса.
| Ошибка | Что происходит |
|---|---|
| Насос питается от слабого адаптера | ESP32 перезагружается при включении нагрузки |
| Нет защиты от сухого хода | Насос может работать без воды |
| Датчик влажности стоит неудачно | Полив включается слишком рано или слишком поздно |
| Нет паузы после полива | Система переливает грунт |
| Реле щелкает около порога | Нет гистерезиса |
| Плата открыта во влажной среде | Коррозия и случайные сбои |
| Wi-Fi обязателен для работы | При пропадании сети автоматика останавливается |
Самая надежная теплица - та, которая продолжает выполнять базовые функции даже без интернета, экрана и внешнего сервера.
Как собрать систему поэтапно
Лучший подход - не собирать все сразу. Сначала нужно проверить каждый узел отдельно, затем соединить их в одну систему.
Практический порядок:
- Проверить ESP32 и питание.
- Подключить датчик влажности почвы.
- Вывести показания в Serial Monitor.
- Подключить реле или MOSFET без насоса, проверить включение.
- Подключить насос через отдельное питание.
- Добавить контроль уровня воды.
- Добавить датчик температуры воздуха.
- Настроить вентиляцию с гистерезисом.
- Добавить Wi-Fi мониторинг.
- Перенести схему в защищенный корпус.
Так проще найти ошибки. Если сразу подключить насос, вентилятор, экран, Wi-Fi, датчики и сервер, диагностика станет намного сложнее.

Комментарии (0)