Im Internet der Dinge gibt es verschiedene Möglichkeiten der Kommunikation, die mehr oder weniger für den Batteriebetrieb geeignet sind. Das folgende Diagramm zeigt verschiedene Möglichkeiten wie ein IoT Gerät mit einem Dashboard verbunden werden kann.
Starten wir mit einem Gerät das direkt über MQTT kommuniziert. Hierfür haben wir zwei Möglichkeiten.
Das Gerät ist im einfachsten Fall mit einem Server im lokalen Netzwerk verbunden (rote Linie). An diesem Server können die Messwerte verarbeitet und Aktionen im Gerät ausgelöst werden.
- Vorteil: Hohe Datensicherheit, flexibel anpassbar, sehr preisgünstig
- Nachteil: Eigener Server erforderlich, geringe Reichweite, relativ hoher Energieverbrauch
Wir können das Gerät aber auch über einen WLAN-Router und das Internet mit einem IoT Server in der Cloud verbinden (Wie im Teil 1 dieser Blog Serie). Auf dem IoT Server können dann die Messwerte verarbeitet und Aktionen ausgelöst werden.
- Vorteil: Kein lokaler Server erforderlich, sehr preisgünstig
- Nachteil: Geringere Datensicherheit (Internet), geringe Reichweite, relativ hoher Energieverbrauch
Die zweite Variante ist ein Gerät das die LoRa (Long Range) Übertragung unterstützt. Diese Funkübertragung zeichnet sich besonders durch große Reichweite und niedrigen Energieverbrauch aus.
Am einfachsten ist es das Gerät mit dem TheThingsNetwork (TTN) einem weltweiten Netzwerk für IoT zu verbinden. Allerdings sollte ein Gateway in einem Umkreis von maximal 5 km verfügbar sein. Ist das nicht der Fall, kann man selbst ein Gateway betreiben. Da solche Gateways nicht ganz billig sind (>100 €) versuchte ich ein einfaches 1-Kanal Gateway mit ESP32 + LoRa zu bauen. Obwohl es entsprechende Online_Projekte gibt, waren meine Versuche nur bedingt von Erfolg gekrönt. Bei der Nutzung des TTN werden die Daten mittels LoRa an das Gateway gesendet welches dann die Daten weiter an das TTN über MQTT sendet. Über ein weiteres Gateway kann Cayenne mit dem TTN verbunden werden und die Daten am Dashboard darstellen. Bei meinen Experimenten konnte ich manchmal aber eine Verbindung vom Gerät zu meinem Gateway und weiter zum TTN herstellen. Allerdings war die LoRa Verbindung mit dem von TTN verwendeten Protokoll nicht stabil. Eine Verbindung zu Cayenne war mir zwar vom TTN aber nicht von meinem LoRa Gerät gelungen.
- Vorteil: Große Reichweite, niedriger Energieverbrauch, bei TTN Abdeckung an beliebigem Ort einsetzbar
- Nachteil: Komplexes LoRa Übertragungsprotokoll (Multi Channel), noch schlechte Netzabdeckung, Fair Use erlaubt nur 1 Sekunde pro Stunde Daten zu übertragen, LoRa Geräte sind relativ teuer.
Da ich mit dem TTN Gateway keinen Erfolg hatte, entwickelte ich ein einfaches Gateway, das Daten über einen fixen LoRa Kanal empfängt und asynchron an den MQTT Server (Cayenne) weitergibt. Umgekehrt werden vom MQTT Server Actions empfangen und asynchron über LoRa an das entsprechende Gerät übertragen. Dieses Gateway wird im nächsten Teil dieser Blog Serie vorgestellt.
- Vorteil: Große Reichweite, geringer Energieverbrauch, direkte Verbindung zum MQTT Server
- Nachteil: Propritäres Gateway funktioniert nicht mit kommerziellen LoRa Geräten, begrenzte Anzahl an parallelen Geräten, LoRa Module sind relativ teuer.
Die Dritte Variante ist ein Gerät das ESP-Now zur Übertragung verwendet. Dieses Protokoll ist ebenfalls stromsparend, da die Daten über WLAN direkt unter Verwendung der MAC Adresse an das Gateway gesendet werden, wodurch der zeitaufwendige Verbindungsaufbau wegfällt und damit der WLAN Sender pro Datenpaket nur ein paar Microsekunden aktiv ist. Dieses Protokoll benötigt kein LoRa Modul sondern kann direkt mit jedem ESPxxx Controler genutz werden, dadurch sind sehr preiswerte Geräte realisierbar. Die Erweiterung des LoRa Gateways zur Unterstützung von ESP-Now wird in einem späteren Beitrag in dieser Blog Serie vorgestellt.
- Vorteil: geringer Energieverbrauch, niedriger Preis
- Nachteil: geringere Reichweite (WLAN), nicht zu kommerziellen Systemen kompatibel.
Im nächsten Beitrag werden wir ein Gateway auf Basis des ESP32 mit LoRa und OLED Display vorstellen.