ESP32 Smart Garden
Полнофункциональная система автоматизации для умного сада и теплицы
Обзор проекта
ESP32 Smart Garden Controller — это мощная и гибкая система автоматизации для умного сада, теплицы и домашних растений. Устройство управляет 4 реле (инверсная логика: LOW = ВКЛЮЧЕНО, HIGH = ВЫКЛЮЧЕНО), собирает данные с датчиков, ведет логи на SD карту и предоставляет современный веб-интерфейс для управления с любого устройства.
4-канальное управление
Насос, подсветка, вентилятор, увлажнитель с настраиваемыми авторежимами.
Мониторинг датчиков
Температура, влажность (DHT22), влажность почвы, освещенность (BH1750).
Веб-интерфейс
Мультиязычность (EN, RU, DE, KK), управление в реальном времени, файлы в LittleFS.
Логирование
CSV логи на SD карту, экспорт, просмотр и файловый менеджер.
Основные возможности
Управление устройствами
Автополив
Включение насоса при влажности почвы ниже порога. Выключение по таймеру (1-300 сек).
Автоматическая подсветка
Двойные пороги: включение ниже ON, выключение выше OFF. Идеально для досветки.
Вентиляция
Включение при высокой влажности воздуха, выключение при снижении.
Увлажнение воздуха
Включение при низкой влажности, выключение при достижении целевого уровня.
Мониторинг и логирование
Логика двойных порогов для освещения
Обычная автоматика с одним порогом приводит к частым включениям/выключениям при колебаниях освещенности. Двойные пороги создают гистерезис — устройство включается при низкой освещенности и выключается только при значительном повышении.
Принцип работы
Порог ON
Освещенность ниже значения — свет включается (сумерки).
Порог OFF
Освещенность выше значения — свет выключается (дневной свет).
Гистерезис
Между порогами состояние не меняется, предотвращая частые переключения.
Пример работы
Порог ON = 50 лк (включить, когда темно)
Порог OFF = 200 лк (выключить, когда достаточно света)
Освещенность 30 лк → ВКЛЮЧАЕМ свет
Освещенность 80 лк → Свет остается ВКЛЮЧЕННЫМ
Освещенность 150 лк → Свет остается ВКЛЮЧЕННЫМ
Освещенность 250 лк → ВЫКЛЮЧАЕМ свет
Аппаратное обеспечение
| Компонент | Модель | Примечание |
|---|---|---|
| ESP32 | ESP32 Dev Board | WiFi + Bluetooth |
| Модуль реле | 4-канальный оптронный | LOW = ВКЛ, HIGH = ВЫКЛ |
| Конвертер уровней | BSS138 (обязателен!) | 3.3V ↔ 5V для реле |
| Датчик DHT22 | AM2302 | Температура/влажность |
| Датчик почвы | YL-69 / FC-28 | Аналоговый |
| Датчик освещенности | GY-30 (BH1750) | I2C, 1-65535 люкс |
| RTC модуль | DS3231 | I2C, батарейка CR2032 |
| SD карта | MicroSD | FAT32, SPI |
| Блок питания | 12В 2А | Входное питание |
| DC-DC | MP1584EN | 12В → 5В |
| Стабилизатор | AMS1117 3.3В | 5В → 3.3В |
Схема подключения
| Компонент | Пин ESP32 | Примечание |
|---|---|---|
| Реле 1 (Насос) | GPIO 16 |
через конвертер уровней |
| Реле 2 (Подсветка) | GPIO 17 |
через конвертер |
| Реле 3 (Вентилятор) | GPIO 4 |
через конвертер |
| Реле 4 (Увлажнитель) | GPIO 2 |
через конвертер |
| DHT22 DATA | GPIO 15 |
Pull-up 4.7kΩ к 3.3V |
| Датчик почвы AO | GPIO 34 |
ADC |
| BH1750 SDA/SCL | GPIO 21 / 22 |
I2C |
| DS3231 SDA/SCL | GPIO 21 / 22 |
общая шина |
| SD Card CS/MOSI/MISO/SCK | 5 / 23 / 19 / 18 |
SPI |
Быстрый старт
1. Установка библиотек (Arduino IDE)
2. Подготовка данных для LittleFS
- Создайте папку
dataв директории скетча - Поместите
index.html,about.htmlи папкуlangс файлами локализации - Загрузите в LittleFS через инструмент ESP32 LittleFS Data Upload
3. Подготовка SD карты
- Формат FAT32, создайте папки
/logsи/config
4. Первый запуск и WiFi
- Подключитесь к WiFi
ESP32-Garden-XXXXXXXX, откройте192.168.4.1 - Выберите вашу сеть, введите пароль — ESP32 перезагрузится
API Эндпоинты
Пример управления подсветкой с двойными порогами:
fetch('/api/device/settings', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
device: 1, // Подсветка
auto_enabled: true,
threshold: 30, // ON при < 30 лк
threshold_off: 150, // OFF при > 150 лк
duration: 3600,
check_interval: 30
})
});
Устранение неполадок
Реле не переключается
- Основная причина: отсутствие конвертера логических уровней (BSS138). ESP32 выдает 3.3В, реле требует 5В управления. Установите конвертер.
- Проверьте общий GND между ESP32, конвертером и реле.
Проблемы с питанием
- Используйте блок 12В 2А. Не питайте ESP32 от USB при подключенных нагрузках к реле.
- Установите конденсаторы на входе/выходе стабилизаторов.
BH1750 не работает
- Питание только 3.3В! Не подключайте к 5В.
- Проверьте I2C адрес (0x23 или 0x5C) сканером.

