update docs: relay3/4 pins, inverted logic, all relays independent

This commit is contained in:
UA1ZBE
2026-07-22 15:51:39 +03:00
parent 9ca5530c73
commit 7e978fcc9c
4 changed files with 67 additions and 24 deletions

View File

@@ -106,13 +106,17 @@ All commands are processed in `onGroupDataRecv()`:
| Command | Action | Response | | Command | Action | Response |
|---------|--------|----------| |---------|--------|----------|
| `help` | list commands | `help:...` | | `help` | list commands | `help:...` |
| `ohrana on` | arm, relay1 ON | `ohrana on ok` | | `ohrana on` | arm | `ohrana on ok` |
| `ohrana off` | disarm, relay1 OFF | `ohrana off ok` | | `ohrana off` | disarm | `ohrana off ok` |
| `relay1 on` | relay1 ON (direct) | `relay1 on ok` | | `relay1 on` | relay1 ON (HIGH) | `relay1 on ok` |
| `relay1 off` | relay1 OFF (direct) | `relay1 off ok` | | `relay1 off` | relay1 OFF (LOW) | `relay1 off ok` |
| `relay2 on` | relay2 ON | `relay2 on ok` | | `relay2 on` | relay2 ON (HIGH) | `relay2 on ok` |
| `relay2 off` | relay2 OFF | `relay2 off ok` | | `relay2 off` | relay2 OFF (LOW) | `relay2 off ok` |
| `relay` | state of both relays | `relay:1on 2off` | | `relay3 on` | relay3 ON (HIGH) | `relay3 on ok` |
| `relay3 off` | relay3 OFF (LOW) | `relay3 off ok` |
| `relay4 on` | relay4 ON (HIGH) | `relay4 on ok` |
| `relay4 off` | relay4 OFF (LOW) | `relay4 off ok` |
| `relay` | state of all relays | `relay:1on 2off 3on 4off` |
| `status` | report state | `status:armed/off temp:±X.XC hall:trig/ok motion:trig/ok bat:X.XXV/USB` | | `status` | report state | `status:armed/off temp:±X.XC hall:trig/ok motion:trig/ok bat:X.XXV/USB` |
| `ver` | build date | `build:Mon DD YYYY HH:MM:SS` | | `ver` | build date | `build:Mon DD YYYY HH:MM:SS` |
| `scan` | noise floor | `noise:-XXXdBm` | | `scan` | noise floor | `noise:-XXXdBm` |
@@ -230,7 +234,7 @@ The LED blink (3 fast flashes) is the first thing in `onGroupDataRecv`. If LED d
### Config persistent storage ### Config persistent storage
- `InternalFS` (LittleFS) on nRF52 internal flash. - `InternalFS` (LittleFS) on nRF52 internal flash.
- `SecurityConfig`: armed + relay2 state saved as binary struct. - `SecurityConfig`: armed + relay1/2/3/4 state saved as binary struct.
- File: `/security.cfg`, magic `0x53454355`. - File: `/security.cfg`, magic `0x53454355`.
--- ---

View File

@@ -5,7 +5,7 @@ LoRa mesh-устройство охраны на базе nRF52840 (ProMicro) и
## Возможности ## Возможности
- Управление двумя реле (охрана + независимое) - Управление четырьмя реле
- Датчик Холла (геркон) — оповещение об открытии двери/окна - Датчик Холла (геркон) — оповещение об открытии двери/окна
- PIR датчик движения - PIR датчик движения
- DS18B20 температура - DS18B20 температура
@@ -27,7 +27,9 @@ LoRa mesh-устройство охраны на базе nRF52840 (ProMicro) и
| `ohrana off` | Выключить охрану | | `ohrana off` | Выключить охрану |
| `relay1 on/off` | Управление реле 1 | | `relay1 on/off` | Управление реле 1 |
| `relay2 on/off` | Управление реле 2 | | `relay2 on/off` | Управление реле 2 |
| `relay` | Состояние обоих реле | | `relay3 on/off` | Управление реле 3 |
| `relay4 on/off` | Управление реле 4 |
| `relay` | Состояние всех реле |
| `status` | Состояние устройства (включая bat) | | `status` | Состояние устройства (включая bat) |
| `ver` | Версия прошивки | | `ver` | Версия прошивки |
| `scan` | Уровень шума в эфире | | `scan` | Уровень шума в эфире |

View File

@@ -24,13 +24,17 @@ Security Node — LoRa mesh-устройство, которое следит з
| Команда | Что делает | Пример ответа | | Команда | Что делает | Пример ответа |
|---------|-----------|---------------| |---------|-----------|---------------|
| `help` | Список всех команд | `help:ohrana on,ohrana off,...` | | `help` | Список всех команд | `help:ohrana on,ohrana off,...` |
| `ohrana on` | **Включить охрану** — датчики активны, реле 1 замкнуто | `ohrana on ok` | | `ohrana on` | **Включить охрану** — датчики активны | `ohrana on ok` |
| `ohrana off` | **Выключить охрану** — датчики не активны, реле 1 разомкнуто | `ohrana off ok` | | `ohrana off` | **Выключить охрану** — датчики не активны | `ohrana off ok` |
| `relay1 on` | Включить реле 1 (независимо от охраны) | `relay1 on ok` | | `relay1 on` | Включить реле 1 | `relay1 on ok` |
| `relay1 off` | Выключить реле 1 | `relay1 off ok` | | `relay1 off` | Выключить реле 1 | `relay1 off ok` |
| `relay2 on` | Включить реле 2 | `relay2 on ok` | | `relay2 on` | Включить реле 2 | `relay2 on ok` |
| `relay2 off` | Выключить реле 2 | `relay2 off ok` | | `relay2 off` | Выключить реле 2 | `relay2 off ok` |
| `relay` | Состояние обоих реле | `relay:1on 2off` | | `relay3 on` | Включить реле 3 | `relay3 on ok` |
| `relay3 off` | Выключить реле 3 | `relay3 off ok` |
| `relay4 on` | Включить реле 4 | `relay4 on ok` |
| `relay4 off` | Выключить реле 4 | `relay4 off ok` |
| `relay` | Состояние всех реле | `relay:1on 2off 3on 4off` |
| `status` | Показать состояние устройства | `status:armed temp:+23.5C hall:ok motion:trig bat:4.12V` | | `status` | Показать состояние устройства | `status:armed temp:+23.5C hall:ok motion:trig bat:4.12V` |
| `ver` | Версия прошивки (дата сборки) | `build:Jul 21 2026 15:30:00` | | `ver` | Версия прошивки (дата сборки) | `build:Jul 21 2026 15:30:00` |
| `scan` | Измерить уровень шума в эфире | `noise:-112dBm` | | `scan` | Измерить уровень шума в эфире | `noise:-112dBm` |
@@ -99,12 +103,13 @@ Security Node — LoRa mesh-устройство, которое следит з
## Реле ## Реле
- **Реле 1** — управляется `ohrana on/off` и `relay1 on/off`. Все реле независимы, состояние каждого сохраняется при перезагрузке.
Охрана включена (`ohrana on`): **замкнуто** (NC разомкнуты, NO замкнуты). Логика: ON = высокий уровень (HIGH), OFF = низкий (LOW).
Охрана выключена (`ohrana off`): **разомкнуто**.
- **Реле 2** — независимое, только `relay2 on/off`. - **Реле 1** (P0.20) — `relay1 on/off`
Состояние сохраняется при перезагрузке. - **Реле 2** (P0.22) — `relay2 on/off`
- **Реле 3** (P0.24) — `relay3 on/off`
- **Реле 4** (P1.00) — `relay4 on/off`
--- ---

View File

@@ -11,8 +11,10 @@
| 0 | **P0.08** | Геркон (reed switch) | | 0 | **P0.08** | Геркон (reed switch) |
| 1 | **P0.06** | PIR датчик движения | | 1 | **P0.06** | PIR датчик движения |
| 2 | **P0.17** | DS18B20 температура | | 2 | **P0.17** | DS18B20 температура |
| 3 | **P0.20** | Реле 1 (охрана) | | 3 | **P0.20** | Реле 1 |
| 4 | **P0.22** | Реле 2 | | 4 | **P0.22** | Реле 2 |
| 5 | **P0.24** | Реле 3 |
| 6 | **P1.00** | Реле 4 |
| 10 | **P0.09** | SX1262 RST | | 10 | **P0.09** | SX1262 RST |
| 11 | **P0.10** | SX1262 DIO1 | | 11 | **P0.10** | SX1262 DIO1 |
| 12 | **P1.11** | SX1262 SCK | | 12 | **P1.11** | SX1262 SCK |
@@ -89,7 +91,9 @@ P0.17 ────┤
## Реле ## Реле
### Реле 1 (охрана) — P0.20 Логика: ON = HIGH, OFF = LOW.
### Реле 1 — P0.20
``` ```
P0.20 ── IN1 релейного модуля P0.20 ── IN1 релейного модуля
@@ -100,7 +104,7 @@ GND ── GND
IN1 ── P0.20 IN1 ── P0.20
``` ```
> Реле 1 управляется `ohrana on/off` и `relay1 on/off`. > Реле 1 управляется `relay1 on/off`. Состояние сохраняется.
### Реле 2 — P0.22 ### Реле 2 — P0.22
@@ -113,7 +117,33 @@ GND ── GND
IN2 ── P0.22 IN2 ── P0.22
``` ```
> Реле 2 управляется только `relay2 on/off`. Состояние сохраняется. > Реле 2 управляется `relay2 on/off`. Состояние сохраняется.
### Реле 3 — P0.24
```
P0.24 ── IN3 релейного модуля
Релейный модуль:
VCC ── 5V
GND ── GND
IN3 ── P0.24
```
> Реле 3 управляется `relay3 on/off`. Состояние сохраняется.
### Реле 4 — P1.00
```
P1.00 ── IN4 релейного модуля
Релейный модуль:
VCC ── 5V
GND ── GND
IN4 ── P1.00
```
> Реле 4 управляется `relay4 on/off`. Состояние сохраняется.
--- ---
@@ -141,6 +171,8 @@ IN2 ── P0.22
│ │ │ │ │ │
Геркон ──┤ P0.08│ P0.20 ─── Реле 1 │ Геркон ──┤ P0.08│ P0.20 ─── Реле 1 │
│ │ P0.22 ─── Реле 2 │ │ │ P0.22 ─── Реле 2 │
│ │ P0.24 ─── Реле 3 │
│ │ P1.00 ─── Реле 4 │
PIR ────┤ P0.06│ │ PIR ────┤ P0.06│ │
│ │ P0.15 ─── LED статуса│ │ │ P0.15 ─── LED статуса│
DS18B20 ───┤ P0.17│ │ DS18B20 ───┤ P0.17│ │