analysis
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# 1. Communication Architecture
|
||||
|
||||
## Overview
|
||||
The communication architecture for the ASF project is designed to be industrial-grade, ensuring reliability, low latency, and high throughput for critical operations like Over-the-Air (OTA) updates and real-time monitoring.
|
||||
|
||||
## Primary & Secondary Communication Stack
|
||||
The system utilizes a multi-layered communication approach to ensure connectivity even in challenging environments.
|
||||
|
||||
| Role | Technology | Why (Industrial Rationale) |
|
||||
| :--- | :--- | :--- |
|
||||
| **Primary Uplink** | **Wi-Fi 802.11n (2.4 GHz)** | Leverages existing infrastructure and provides high throughput necessary for OTA updates. |
|
||||
| **Peer-to-Peer** | **ESP-NOW** | Provides deterministic, low-latency communication without dependency on an Access Point (AP). |
|
||||
| **Long-range Fallback** | **LoRa (External Module)** | Ensures resilience at farm-scale distances where Wi-Fi may not reach. |
|
||||
|
||||
> **Note:** Zigbee on ESP32-S3 is currently not considered industrial-mature in ESP-IDF. ESP-NOW is the preferred choice for reliable peer-to-peer communication.
|
||||
|
||||
## Application Protocol
|
||||
To avoid the pitfalls of raw TCP sockets or unversioned custom protocols, the system adopts **MQTT over TLS 1.2**.
|
||||
|
||||
| Item | Decision |
|
||||
| :--- | :--- |
|
||||
| **Broker** | Main Hub / Edge Gateway |
|
||||
| **QoS** | QoS 1 (At least once delivery) |
|
||||
| **Retain** | Used for configuration topics only |
|
||||
| **Payload** | CBOR (Binary, versioned for efficiency and compatibility) |
|
||||
| **Topic Model** | `/farm/{site}/{house}/{node}/...` |
|
||||
|
||||
### Why MQTT?
|
||||
* **Store-and-Forward:** Handles intermittent connectivity gracefully.
|
||||
* **Built-in Keepalive:** Monitors connection health automatically.
|
||||
* **Industrial Tooling:** Compatible with standard monitoring and management tools.
|
||||
* **Native Support:** Stable implementation within the ESP-IDF framework.
|
||||
|
||||
## Heartbeat & Liveness
|
||||
A formalized heartbeat mechanism is implemented to feed into predictive maintenance systems.
|
||||
|
||||
* **Interval:** 10 seconds
|
||||
* **Timeout:** 3 missed heartbeats (30 seconds) triggers an "offline" status.
|
||||
* **Payload includes:** Uptime, firmware version, free heap memory, RSSI (signal strength), and an error bitmap.
|
||||
Reference in New Issue
Block a user