generated from CubeCraft-Creations/Tracehound
docs: align hardware and MQTT architecture notes
This commit is contained in:
+18
-18
@@ -44,32 +44,32 @@ RemoteRig is a **multi-camera remote monitoring system**. It provides a camera g
|
||||
▼ ▼ ▼
|
||||
┌──────────────┐ ┌──────────────┐ ┌──────────────────┐
|
||||
│ ESP32 #1 │ │ ESP32 #N │ │ Pi Zero 2 W │
|
||||
│ DHCP addr │ │ DHCP addr │ │ 10.60.1.56 │
|
||||
│ │ │ │ │ (static IP) │
|
||||
│ STA→GoPro AP │ │ STA→GoPro AP │ │ │
|
||||
│ STA→Router │ │ STA→Router │ │ Mosquitto :1883 │
|
||||
│ │ │ │ │ Go API :8080 │
|
||||
│ MQTT→:1883 │ │ MQTT→:1883 │ │ React UI │
|
||||
│ DHCP addr │ │ DHCP addr │ │ 10.60.1.56 │
|
||||
│ STA→Router │ │ STA→Router │ │ (static IP) │
|
||||
│ MQTT→:1883 │ │ MQTT→:1883 │ │ Mosquitto :1883 │
|
||||
│ UART relay │ │ UART relay │ │ Go API :8080 │
|
||||
│ │ │ │ │ React UI │
|
||||
└──────┬───────┘ └──────┬───────┘ │ SQLite DB │
|
||||
│ │ └──────────────────┘
|
||||
│ UART │ UART └──────────────────┘
|
||||
▼ ▼ │
|
||||
┌──────────────┐ ┌──────────────┐ │
|
||||
│ GoPro Hero 3 │ │ GoPro Hero 3 │ SSE /api/v1/events/stream
|
||||
│ AP: 10.5.5.1 │ │ AP: 10.5.5.1 │ │
|
||||
│ Wi-Fi only │ │ Wi-Fi only │ ▼
|
||||
└──────────────┘ └──────────────┘ ┌──────────────────┐
|
||||
│ User Device │
|
||||
│ (laptop/kiosk) │
|
||||
│ http://.4.10 │
|
||||
└──────────────────┘
|
||||
│ ESP8266 #1 │ │ ESP8266 #N │ SSE /api/v1/events/stream
|
||||
│ STA→GoPro AP │ │ STA→GoPro AP │ │
|
||||
│ HTTP→10.5.5.1│ │ HTTP→10.5.5.1│ ▼
|
||||
└──────┬───────┘ └──────┬───────┘ ┌──────────────────┐
|
||||
▼ ▼ │ User Device │
|
||||
┌──────────────┐ ┌──────────────┐ │ (laptop/kiosk) │
|
||||
│ GoPro Hero 3 │ │ GoPro Hero 3 │ │ 10.60.1.56:8080 │
|
||||
└──────────────┘ └──────────────┘ └──────────────────┘
|
||||
```
|
||||
|
||||
**Network is fully self-contained — no internet dependency.** The travel router creates the LAN. All devices connect to it. The Pi runs all services (Mosquitto, Go API, React UI, SQLite). ESP32s bridge the GoPro's AP to the LAN via MQTT.
|
||||
**Network is fully self-contained — no internet dependency.** The travel router creates the LAN. All devices connect to it. The Pi runs all services (Mosquitto, Go API, React UI, SQLite). ESP8266 boards talk to the GoPro AP over HTTP, then relay camera status/commands over UART to ESP32 boards. ESP32 boards stay on the travel-router LAN and bridge UART messages to MQTT.
|
||||
|
||||
### Key Architecture Decisions (revised)
|
||||
- **Closed travel router network** — No venue Wi-Fi dependency. User brings their own router. All devices on `10.60.1.0/24`.
|
||||
- **ESP32 dual-STA** — One STA to GoPro AP (10.5.5.1), one STA to travel router. No channel-hopping concerns on closed network.
|
||||
- **ESP32 → GoPro over Wi-Fi** — Bacpac I²C route rejected (30-pin Herobus connector too complex). HTTP to GoPro AP is proven and reliable.
|
||||
- **Two-board camera node** — ESP8266 handles GoPro AP/HTTP; ESP32 stays on the travel-router LAN for MQTT. This avoids ESP32 dual-STA/channel switching complexity.
|
||||
- **ESP8266 → GoPro over Wi-Fi** — Bacpac I²C route rejected (30-pin Herobus connector too complex). HTTP to GoPro AP is proven and reliable.
|
||||
- **UART bridge between boards** — ESP8266 reports GoPro status and receives commands over UART; ESP32 relays those messages to/from MQTT.
|
||||
- **MQTT for ESP32 → Hub** — Lightweight, designed for IoT. Mosquitto on Pi. QoS 1 for status, QoS 2 for commands. Full contract: [docs/MQTT_CONTRACT.md](./docs/MQTT_CONTRACT.md)
|
||||
- **SQLite over PostgreSQL** — Single-node Pi Zero 2 W deployment. WAL mode for concurrent read/write.
|
||||
- **SSE over WebSocket** — Unidirectional hub → browser updates. Simpler, sufficient for status dashboard.
|
||||
|
||||
Reference in New Issue
Block a user