GreenHouse P4
Автономный контроллер · Прошивка ESP32-P4

GreenHouse P4

Контроллер микроклимата, полива и досветки теплицы. До 8 независимых зон, 16 релейных каналов и 16 профилей датчиков настраиваются с сенсорного дисплея 1024×600; автоматика работает локально, без облака и постоянного интернета.

Проект в стадии разработки. Экспериментальная инженерная разработка лаборатории NARMOVION, а не законченный продукт — возможны ошибки, изменения и неполная функциональность; использование на свой риск.
SoC: ESP32-P4 rev 1.3 Радиомодуль платы: ESP32-C6 · Wi-Fi 6 UI: LVGL v9 IDF: v6.0.2 Прошивка: greenhouse p4 0.8
Скачать полную прошивку · ZIP 7,8 МБ
Исходники ESP-IDF v6.0.2 · без папок build и .git · сборка описана в README
Зоны
8 климатических
Реле
16 2×8 RS-485
Датчики
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 — давление воды
Дискретные датчики (поплавок уровня, протечка, геркон двери/форточки, концевики) читаются как входы релейных модулей по RS-485 — отдельных GPIO не занимают.
Распиновка

Выводы ESP32-P4

GPIOНазначениеИнтерфейсПараметры
7I²C SDAI²Cдатчики SHT45 / SCD41 / BH1750
8I²C SCLI²Cтактирование шины
26RS-485 TXUART39600 · изолированный разъём
27RS-485 RXUART3Modbus RTU · релейные модули
1SDI-12UART21200 бод
201-Wire1-WireDS18B20; для кабеля нужна внешняя подтяжка 4,7 кОм
45PZEM TXUART19600 · Modbus
47PZEM RXUART1учёт электроэнергии
46Расход водыИмпульссчётчик расходомера
2ВетерИмпульсанемометр
3ДождьИмпульсдождемер
Исполнительные устройства

16 каналов реле

Два релейных модуля на RS-485 (адреса 1 и 2, по 8 каналов). Ниже — назначение по умолчанию; роль, зона, безопасное состояние и лимит времени работы каждого канала настраиваются с экрана. Каналы 11–16 свободны под расширение.

КаналРольТипЗонаМодульЛимит работы
01НасосПоливЗона 11 · addr 110 мин
02КлапанПоливЗона 11 · addr 110 мин
03ВытяжкаКлиматЗона 11 · addr 1—
04ПритокКлиматЗона 11 · addr 1—
05ОбогревКлиматЗона 11 · addr 1—
06УвлажнениеКлиматЗона 11 · addr 1—
07СветДосветкаЗона 11 · addr 1—
08Форточка +Проветр.Зона 11 · addr 11 мин
09Форточка −Проветр.Зона 12 · addr 21 мин
10Аварийное отключениеЗащитаЗона 12 · addr 2—
11–16Не настроено——2 · addr 2—
Измерения

16 профилей датчиков

Каждый профиль задаёт тип датчика, шину, зону, адрес/канал и масштаб. Все профили по умолчанию выключены и включаются по мере подключения оборудования.

#ДатчикИзмеряетШина по умолчанию
1SHT45Температура + влажность воздухаI²C
2SCD41CO₂I²C
3Apogee SQ-500ФАР / PARSDI-12
4BH1750Освещённость, люксI²C
5TEROS 12Влажность и температура почвыSDI-12
6VH400Влажность почвыADС
7DS18B20Температура1-Wire
8ПоплавокУровень воды в бакеДискретный
9РасходомерРасход водыИмпульс
10Датчик протечкиПротечкаДискретный
11ГерконДверь / форточкаДискретный
12PHYTOS 31Влажность листаSDI-12
13WIKA A10Давление воды4–20 мА
14PZEM-004TМощность и накопленная энергияModbus
15Davis 6410Скорость ветраИмпульс
16Davis 7852ОсадкиИмпульс
Дискретные входы имеют роли: низкий уровень бака, наличие расхода, протечка, дождь, ветер, дверь, концевик форточки «открыто» и «закрыто». Полярность каждого входа (прямая/инверсная) настраивается.
Принцип работы

Логика автоматики по ролям

Климатические, поливные и световые роли сравнивают измерение своей зоны с уставкой; насос зависит от открытых клапанов, а приводы форточки управляются вручную с защитными блокировками. Правила запускаются примерно раз в секунду.

Обогрев
Включается при T° < цель − гистерезис, выключается при T° ≥ цель + гистерезис.
Вытяжка / Приток
Включаются при T° > цель + гистерезис, выключаются при T° ≤ цель − гистерезис.
Увлажнение
Включается при влажность < цель − гистерезис, выключается при влажность ≥ цель + гистерезис.
Клапан
Полив: открывается, когда влажность почвы < целевой порог.
Насос
Включается, если открыт хотя бы один клапан — и только когда бак не пуст и нет протечки.
Свет
Включается при валидном системном времени в окне час ∈ [начало, конец), когда освещённость < порог; без времени остаётся выключенным.
Ручное управление: нажатие на настроенное реле включает/выключает его на заданный ручной тайм-аут (по умолчанию 15 минут), после чего канал возвращается к автоматике. Лимит времени работы (max on) принудительно выключает канал по тайм-ауту.
Блокировки

Защиты имеют приоритет над всем

Аварийные условия блокируют связанные с ними нагрузки независимо от автоматики и ручного режима. При старте контроллер принудительно записывает заданное безопасное состояние во все 16 каналов, не доверяя кэшу.

Насос и клапаны

Отключаются при низком уровне бака, обнаружении протечки или аварии потока (сухой ход).

Открытие форточки

Блокируется при дожде или сильном ветре — концевики и погодные входы не дают открыть.

Защита от сухого хода

Если насос работает дольше 20 с, а расход не зафиксирован — полив отключается до сброса аварии.

Интерфейс

Десять экранов на сенсорном дисплее

Навигация — нижняя панель вкладок. Нажимайте вкладки внизу дисплея, чтобы переключаться между экранами — макет воспроизводит реальные цвета и разметку прошивки.

GREENHOUSE P4  •  АВТОНОМНАЯ ТЕПЛИЦА
Активная вкладка: Главная · всего 10 экранов

Справочник экранов

01
Главная
Карточки зон: T°, влажность, CO₂, почва
02
Климат
Уставки T° / влажности, гистерезис
03
Полив
Порог почвы, лимит полива
04
Свет
Расписание досветки, порог люкс
05
Реле
Ручное управление настроенными каналами
06
Правила
Глобальный тумблер автоматики
07
Тревоги
Статусы защит, настройка входов
08
Графики
Минутная история реальных показаний зоны
09
Сервис
Профили датчиков: тип, шина, адрес
10
Настройки
Конфигурация реле: роль, зона, лимит