GreenHouse P4
Контроллер микроклимата, полива и досветки теплицы. До 8 независимых зон, 16 релейных каналов и 16 профилей датчиков настраиваются с сенсорного дисплея 1024×600; автоматика работает локально, без облака и постоянного интернета.
Локальный контроллер теплицы
Устройство ведёт климат и полив в каждой зоне по целевым уставкам с гистерезисом, управляя нагрузками через два релейных модуля по RS-485 (Modbus RTU). Вся логика работает на месте: настройки хранятся в NVS, а при старте контроллер записывает безопасное состояние во все реле. Цикл запускается примерно раз в секунду; отдельные опросы могут занять больше времени.
Цикл управления · номинально 1 Гц
Опрос входов → импульсных датчиков → DS18B20 → PZEM → SDI-12 → I²C, затем применение автоматики. Для включённых исполнительных каналов задаются роль и зона.
Приоритет безопасности
Низкий бак, протечка и сухой ход блокируют насос и клапаны; дождь, ветер и концевики блокируют соответствующее направление форточки. Эти блокировки нельзя обойти ручным режимом.
Плата и вычислитель
Вычислитель
ESP32-P4 (rev 1.3) — основной процессор и UI. ESP32-C6 в роли ESP-Hosted slave (SDIO) даёт Wi-Fi 6. Плата JC1060P470C.
Дисплей
1024×600, MIPI-DSI, контроллер JD9165, ёмкостный тач GT911. Интерфейс на LVGL v9 — 10 экранов с нижней навигацией.
Поддерживаемые интерфейсы ввода-вывода
Датчики и исполнительные устройства подключаются к контроллеру через специализированные интерфейсы. Ниже — распределение периферии по шинам с указанием выводов ESP32-P4.
I²C SDA 7 · SCL 8
- SHT45 — темп. и влажность воздуха
- SCD41 — CO₂
- BH1750 — освещённость, люкс
RS-485 / Modbus RTU UART3 · 26/27 · 9600
- Модуль реле 1 — адрес 1, каналы 1–8
- Модуль реле 2 — адрес 2, каналы 9–16
- 16 дискретных входов — с тех же модулей
SDI-12 UART2 · GPIO 1 · 1200
- Apogee SQ-500 — ФАР (PAR)
- TEROS 12 — влажность и температура почвы
- PHYTOS 31 — влажность листа
1-Wire GPIO 20
- DS18B20 — цифровые термометры
Modbus UART1 · 45/47 · 9600
- PZEM-004T — мощность и накопленная энергия
Импульсные входы GPIO 46 / 2 / 3
- Расходомер — GPIO 46
- Анемометр Davis 6410 — GPIO 2
- Дождемер Davis 7852 — GPIO 3
ADC / ADS1115 аналог
- VH400 — влажность почвы
Токовая петля 4–20 мА аналог
- WIKA A10 — давление воды
Выводы ESP32-P4
| GPIO | Назначение | Интерфейс | Параметры |
|---|---|---|---|
| 7 | I²C SDA | I²C | датчики SHT45 / SCD41 / BH1750 |
| 8 | I²C SCL | I²C | тактирование шины |
| 26 | RS-485 TX | UART3 | 9600 · изолированный разъём |
| 27 | RS-485 RX | UART3 | Modbus RTU · релейные модули |
| 1 | SDI-12 | UART2 | 1200 бод |
| 20 | 1-Wire | 1-Wire | DS18B20; для кабеля нужна внешняя подтяжка 4,7 кОм |
| 45 | PZEM TX | UART1 | 9600 · Modbus |
| 47 | PZEM RX | UART1 | учёт электроэнергии |
| 46 | Расход воды | Импульс | счётчик расходомера |
| 2 | Ветер | Импульс | анемометр |
| 3 | Дождь | Импульс | дождемер |
16 каналов реле
Два релейных модуля на RS-485 (адреса 1 и 2, по 8 каналов). Ниже — назначение по умолчанию; роль, зона, безопасное состояние и лимит времени работы каждого канала настраиваются с экрана. Каналы 11–16 свободны под расширение.
| Канал | Роль | Тип | Зона | Модуль | Лимит работы |
|---|---|---|---|---|---|
| 01 | Насос | Полив | Зона 1 | 1 · addr 1 | 10 мин |
| 02 | Клапан | Полив | Зона 1 | 1 · addr 1 | 10 мин |
| 03 | Вытяжка | Климат | Зона 1 | 1 · addr 1 | — |
| 04 | Приток | Климат | Зона 1 | 1 · addr 1 | — |
| 05 | Обогрев | Климат | Зона 1 | 1 · addr 1 | — |
| 06 | Увлажнение | Климат | Зона 1 | 1 · addr 1 | — |
| 07 | Свет | Досветка | Зона 1 | 1 · addr 1 | — |
| 08 | Форточка + | Проветр. | Зона 1 | 1 · addr 1 | 1 мин |
| 09 | Форточка − | Проветр. | Зона 1 | 2 · addr 2 | 1 мин |
| 10 | Аварийное отключение | Защита | Зона 1 | 2 · addr 2 | — |
| 11–16 | Не настроено | — | — | 2 · addr 2 | — |
16 профилей датчиков
Каждый профиль задаёт тип датчика, шину, зону, адрес/канал и масштаб. Все профили по умолчанию выключены и включаются по мере подключения оборудования.
| # | Датчик | Измеряет | Шина по умолчанию |
|---|---|---|---|
| 1 | SHT45 | Температура + влажность воздуха | I²C |
| 2 | SCD41 | CO₂ | I²C |
| 3 | Apogee SQ-500 | ФАР / PAR | SDI-12 |
| 4 | BH1750 | Освещённость, люкс | I²C |
| 5 | TEROS 12 | Влажность и температура почвы | SDI-12 |
| 6 | VH400 | Влажность почвы | ADС |
| 7 | DS18B20 | Температура | 1-Wire |
| 8 | Поплавок | Уровень воды в баке | Дискретный |
| 9 | Расходомер | Расход воды | Импульс |
| 10 | Датчик протечки | Протечка | Дискретный |
| 11 | Геркон | Дверь / форточка | Дискретный |
| 12 | PHYTOS 31 | Влажность листа | SDI-12 |
| 13 | WIKA A10 | Давление воды | 4–20 мА |
| 14 | PZEM-004T | Мощность и накопленная энергия | Modbus |
| 15 | Davis 6410 | Скорость ветра | Импульс |
| 16 | Davis 7852 | Осадки | Импульс |
Логика автоматики по ролям
Климатические, поливные и световые роли сравнивают измерение своей зоны с уставкой; насос зависит от открытых клапанов, а приводы форточки управляются вручную с защитными блокировками. Правила запускаются примерно раз в секунду.
T° < цель − гистерезис, выключается при T° ≥ цель + гистерезис.T° > цель + гистерезис, выключаются при T° ≤ цель − гистерезис.влажность < цель − гистерезис, выключается при влажность ≥ цель + гистерезис.влажность почвы < целевой порог.час ∈ [начало, конец), когда освещённость < порог; без времени остаётся выключенным.Защиты имеют приоритет над всем
Аварийные условия блокируют связанные с ними нагрузки независимо от автоматики и ручного режима. При старте контроллер принудительно записывает заданное безопасное состояние во все 16 каналов, не доверяя кэшу.
Насос и клапаны
Отключаются при низком уровне бака, обнаружении протечки или аварии потока (сухой ход).
Открытие форточки
Блокируется при дожде или сильном ветре — концевики и погодные входы не дают открыть.
Защита от сухого хода
Если насос работает дольше 20 с, а расход не зафиксирован — полив отключается до сброса аварии.
Десять экранов на сенсорном дисплее
Навигация — нижняя панель вкладок. Нажимайте вкладки внизу дисплея, чтобы переключаться между экранами — макет воспроизводит реальные цвета и разметку прошивки.