From 4fcca2701bfdc26bdbf08233bc14d199d517a7ec Mon Sep 17 00:00:00 2001 From: Dmitry Gammel Date: Tue, 18 Aug 2026 04:18:18 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README=20=D0=BF=D0=BE=20=D1=84=D0=BE=D1=82=D0=BE=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BF=D0=BB=D0=B5=D0=BA=D1=82=D0=B0=20=D0=B6=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=B7=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit По факту: 30-контактная ESP32 (GPIO16/17 подписаны RX2/TX2, не номерами), готовый модуль DHT22 с проводами оранжевый/жёлтый/зелёный (VCC/DATA/GND), один 2-канальный релейный модуль (SRD-05VDC-SL-C×2, общий разъём GND/IN1/IN2/VCC) — закрывает sensor-1/light-1/pump-1. Канал под fan-1 в прошивке заложен (GPIO18), но физически ещё не куплен — явно отмечено. Пины в config.h.example не менялись, только комментарий про RX2/TX2. --- growbox/README.md | 64 +++++++++++++++++++++++++--------------- growbox/config.h.example | 2 ++ 2 files changed, 42 insertions(+), 24 deletions(-) diff --git a/growbox/README.md b/growbox/README.md index 84cff10..3db8ad6 100644 --- a/growbox/README.md +++ b/growbox/README.md @@ -26,47 +26,63 @@ Laravel (`DemoGrowboxSeeder` использует `sensor-1`/`fan-1`), а `zone_ ## Железо -| Назначение | Пин (по умолчанию) | -|-----------------|---------------------| -| DHT22 data | GPIO4 | -| Реле — light-1 | GPIO16 | -| Реле — pump-1 | GPIO17 | -| Реле — fan-1 | GPIO18 | +По фото реального комплекта: 30-контактная ESP32 DevKit, готовый модуль +DHT22 с распаянными проводами и **один 2-канальный** релейный модуль +(SRD-05VDC-SL-C×2, общий разъём `GND IN1 IN2 VCC`) — закрывает sensor-1, +light-1, pump-1. Для fan-1 нужен ещё один канал реле (третий модуль или +4-канальная плата) — в прошивке/config.h он уже заложен на GPIO18, физически +пока не подключён. -Реле-модули по умолчанию считаются активными по LOW (`RELAY_ACTIVE_LOW` в -`config.h`) — типично для дешёвых китайских модулей на оптопаре. Если ваши -реле активны по HIGH — поменяйте флаг. +| Назначение | Пин (по умолчанию) | Примечание | +|---------------------|---------------------|------------| +| DHT22 DATA | GPIO4 | провод жёлтый на нашем модуле | +| Реле IN1 — light-1 | GPIO16 | **на шёлкографии платы подписан `RX2`**, не «16» | +| Реле IN2 — pump-1 | GPIO17 | **на шёлкографии платы подписан `TX2`**, не «17» | +| Реле IN — fan-1 | GPIO18 | нужен третий канал реле, пока не подключено | -DHT22 требует подтягивающий резистор ~10кОм между data и VCC, если он не -встроен в конкретный модуль. +На этой конкретной 30-пиновой плате GPIO16/17 не подписаны номерами — они +выведены как пины UART2 и промаркированы `RX2`/`TX2`. Физически это те же +GPIO, `config.h`/прошивку менять не нужно, важно только не перепутать их при +пайке/монтаже на плате. + +Реле-модуль (2-канальный, SRD-05VDC-SL-C) активен по LOW — +`RELAY_ACTIVE_LOW` в `config.h` уже стоит в `true`. Перемычка `JD-VCC` на +модуле по умолчанию установлена (питание катушек реле — от той же VCC, без +гальванической развязки) — для этого проекта этого достаточно, снимать её +незачем. + +DHT22 требует подтягивающий резистор ~10кОм между DATA и VCC — на нашем +модуле, похоже, уже встроен (компактная плата-переходник с 3 проводами), но +если показания не читаются — проверьте отдельным резистором. ### Схема подключения ``` - ESP32 DevKitC + ESP32 (30 pin) ┌───────────────────────┐ DHT22 DATA ───────┤ GPIO4 │ - (+10к подтяжка │ │ - DATA -> 3V3) │ │ + (жёлтый провод) │ │ │ │ - Реле LIGHT IN ────┤ GPIO16 │ - Реле PUMP IN ────┤ GPIO17 │ - Реле FAN IN ────┤ GPIO18 │ + Реле IN1 (light-1)─┤ GPIO16 (на плате: RX2) + Реле IN2 (pump-1) ─┤ GPIO17 (на плате: TX2) + Реле IN (fan-1) ──┤ GPIO18 ← пока не подключено │ │ 3V3 ────┤ 3V3 │ GND ────┤ GND │ USB/5V ─┤ VIN │ └───────────────────────┘ -DHT22: VCC -> 3V3 GND -> GND DATA -> GPIO4 -Реле-модуль: VCC -> 5V (VIN) или 3V3 (смотри маркировку модуля) - GND -> GND (общий с ESP32) - IN -> GPIO16 / GPIO17 / GPIO18 +DHT22 (готовый модуль, 3 провода): + оранжевый(+/VCC) -> 3V3 жёлтый(out/DATA) -> GPIO4 зелёный(-/GND) -> GND + +Реле, 2-канальный модуль (разъём GND IN1 IN2 VCC): + VCC -> VIN (5V) GND -> GND (общий с ESP32) + IN1 -> GPIO16/RX2 (light-1) IN2 -> GPIO17/TX2 (pump-1) ⚠️ Реле коммутируют цепь самой нагрузки (свет/насос/вентилятор, обычно - 12V/220V) через контакты COM/NO/NC — это ОТДЕЛЬНАЯ силовая цепь со своим - источником питания, к GPIO ESP32 она не подключается. К плате идёт - только сигнальный IN каждого реле-модуля. + 12V/220V) через винтовые клеммы COM/NO/NC каждого канала — это + ОТДЕЛЬНАЯ силовая цепь со своим источником питания, к GPIO ESP32 она не + подключается. К плате идёт только сигнальный IN каждого канала. ``` ## Библиотеки diff --git a/growbox/config.h.example b/growbox/config.h.example index dcb8431..b59967d 100644 --- a/growbox/config.h.example +++ b/growbox/config.h.example @@ -21,6 +21,8 @@ #define DEVICE_ID_FAN "fan-1" // --- Пины (ESP32 DevKitC) --- +// На 30-контактных платах GPIO16/17 часто подписаны на шёлкографии как +// RX2/TX2 (пины UART2), а не номерами — это те же GPIO, см. README.md. #define PIN_DHT22 4 #define PIN_RELAY_LIGHT 16 #define PIN_RELAY_PUMP 17