Mesh-Architektur verstehen
In diesem fortgeschrittenen Kurs verbinden wir mehrere Bricknetics-Bausteine zu einem ESP-MESH Netzwerk. Ein Gateway-Node kommuniziert per BLE mit dem iPad, die anderen Nodes kommunizieren untereinander per ESP-NOW.
Netzwerk-Topologie
Das Mesh besteht aus drei Rollen:
- Gateway Node – Verbindung zum iPad per BLE, leitet Befehle weiter
- Sensor Nodes – Erfassen Umgebungsdaten (Temperatur, Licht, Bewegung)
- Aktor Nodes – Steuern Ausgabegeräte (LEDs, Servos, Buzzer)
So funktioniert’s: Die Domain-Schicht definiert ein
HardwareBlock-Interface, das unabhängig vom konkreten Kommunikationsprotokoll arbeitet. Ob ein Node per BLE oder ESP-NOW angebunden ist, wird erst in der Infrastruktur-Schicht entschieden.
Gateway-Node konfigurieren
Der Gateway-Node ist das Herzstück des Netzwerks. Er empfängt den kompilierten JSON-Flow vom iPad und verteilt die Teilaufgaben an die passenden Nodes.
Firmware-Konfiguration
#include <esp_now.h>
#include <WiFi.h>
#include <BLEDevice.h>
// Gateway-spezifische Konfiguration
#define MAX_PEERS 6
#define GATEWAY_CHANNEL 1
struct NodeInfo {
uint8_t mac[6];
char role[16];
bool active;
};
NodeInfo peers[MAX_PEERS];
int peerCount = 0;
Peer-Discovery
Der Gateway führt automatisch eine Discovery durch, um verfügbare Nodes im Netzwerk zu finden:
void onDataRecv(const uint8_t *mac, const uint8_t *data, int len) {
// Registriere neuen Peer
if (peerCount < MAX_PEERS) {
memcpy(peers[peerCount].mac, mac, 6);
peers[peerCount].active = true;
peerCount++;
Serial.printf("Neuer Node entdeckt: %d aktive Peers\n", peerCount);
}
}
Flow-Orchestrierung
Im Flow-Editor können wir nun Logik erstellen, die sich über mehrere physische Bausteine erstreckt.
Multi-Node Flow
Erstelle einen Flow mit folgender Logik:
- Sensor Node A misst die Temperatur
- Gateway empfängt den Wert und prüft eine Schwelle
- Aktor Node B schaltet einen Ventilator ein, wenn > 28°C
JSON-Payload-Verteilung
Der kompilierte JSON-Flow wird vom Gateway in Teil-Payloads aufgeteilt und an die zuständigen Nodes gesendet:
{
"nodes": [
{ "id": "sensor-a", "target": "AA:BB:CC:DD:EE:01", "action": "read_temp" },
{ "id": "gateway", "action": "threshold", "value": 28 },
{ "id": "aktor-b", "target": "AA:BB:CC:DD:EE:02", "action": "fan_on" }
],
"edges": [
{ "from": "sensor-a", "to": "gateway" },
{ "from": "gateway", "to": "aktor-b" }
]
}
Monitoring & Debugging
Nutze das Dashboard im Flow-Editor, um den Status aller Nodes in Echtzeit zu überwachen.
Node-Status-Anzeige
Jeder Node sendet periodisch seinen Status (Batterie, Signalstärke, letzte Nachricht) an den Gateway. Der Flow-Editor stellt dies als Node-Health-Map dar.
Tipp: Platziere die Bausteine nicht weiter als 10 Meter voneinander entfernt. ESP-NOW hat eine theoretische Reichweite von 200m, aber in Innenräumen mit Wänden reduziert sich diese erheblich.