PHP-Script für LoRaWAN Sensordaten
07.07.2024
Elektronik | Funk | Software
Der Technik-Blog
Für die Teilnahme am LoRaWAN-Netzwerk werden ja nach Betriebsmodus verschiedene Schlüssel benötigt. Während fertige LoRa-Sensoren bereits mit entsprechenden Schlüsseln ausgeliefert werden, ist dies bei Selbstbau-Sensoren nicht der Fall. In diesem Artikel geht es um die Registrierung von eigenen Development-Boards wie Arduino, ESP32 und ähnlichen beim TTN Nachfolger TTS (The Things Stack).
So funktioniert die LoRa Paylaod
ESP32 mit TTN verbinden (ABP)
LoRaWAN Gateway bei TTS einrichten (MikroTIK LR8)
The Things Stack Server EU
Bei ABP wird dem Endgerät bereits eine Device-Address vergeben. Diese ist direkt im Endgerät gespeichert und bleibt immer gleich. Ebenso werden die Sitzungsschlüssel (AppSessionKey & NetworkSessionKey), welche zur Verschlüsselung und Authentifizierung notwendig sind, statisch gespeichert. Bei OTTA wird hingegen im Endgerät der AppKey, die AppEUI und DevEUI statisch gespeichert. Die später notwendigen Sitzungsschlüssel (AppSessionKey & NetworkSessionKey) und Device-Address entstehen erst nach dem erfolgreichen JOIN-Request. Anschließend erfolgt die Übertragung der Payload ähnlich wie bei ABP. OTTA bietet somit mehr Sicherheit und aufgrund der dynamischen Parameterzuweisung auch mehr Flexibilität beim Wechsel zwischen verschiedenen Netzwerken bzw. Transferrouten.
Wenn noch keine Application vorhanden ist, muss diese zuerst erstellt werden. In der Application werden anschließend einzelne Geräte angelegt. Die Application beinhaltet neben der Gerätekonfiguration & API-Keys auch den globalen Payload-Decoder und die Schnittstellenkonfiguration für die Datenweitergabe (Integrations). Zum Anlegen einer Application muss eine Application-ID sowie optional ein Name und eine Beschreibung definiert werden:
In der Application wird ein neues Endgerät angelegt. Da es für Selbstbau-Geräte keine Konfigurationsvorlage gibt, muss die gesamte Konfiguration manuell eingeben werden. Folge Parameter werden im ersten Schritt angeben:
Activation Mode: Over the air activation (OTAA)
LoRaWAN Version: abhängig von der Library (MCCI LIMC V 3.2.0 unterstützt MAC V 1.0.3)
Network Server Address: wie von TTS vordefiniert (eu1.cloud.thethings.network)
Application Server Address: wie von TTS vordefiniert (eu1.cloud.thethings.network)
External Join Server: Nein
Join Server Address: wie von TTS vordefiniert (eu1.cloud.thethings.network)
Unter den Basiseinstellungen werden Geräteschlüssel und Namen vergeben. Bei gekauften Sensoren werden diese Parameter vom Hersteller vergeben. Für die Registrierung von einem eigenen Board müssen die Schlüssel daher selbst generiert werden:
End Device ID: Diese ID ist für jedes Gerät in der Application einzigartig. Die Device-ID besteht aus Kleinbuchstaben, Zahlen und Bindestrichen. Da maximale Länge beträgt 36 Zeichen.
App EUI: Die AppEUI seltener auch JoinEUI genannt, identifiziert die Application. Für Testzwecke kann auch folgende EUI vergeben werden: 00 00 00 00 00 00 00 00. Eine identische AppEUI kann auch für mehrere Geräte verwendet werden, wobei dies wiederum vom verwendeten Application Server abhängig ist. Für Selbstbau-Sensoren kann daher auch eine eigene AppEUI generiert werden.
Dev EUI: Die DevEUI ist eine eindeutige Geräte-ID. In der Applikation darf diese EUI nur an ein Gerät vergeben werden. Auch hier wird für Selbstbau-Sensoren einfach eine DevEUI generiert.
End Device Name: Dieses Feld ist optional.
End Device Description: Eine optionale Beschreibung vom Gerät.
Im zweiten Schritt werden sämtliche Frequenzeinstellungen sowie unterstützte Lora-Standards ausgewählt:
Frequency Plan: Hier wird mittels DropDown das vom Endgerät unterstützte Frequenzband ausgewählt. Die Standard-Einstellung in Europa: 863 - 870 MHz, RX2 = SF9. Einige Geräte verwenden im RX2-Zeitfenster S-Faktor von 12 anstatt 9.
LoRaWAN Class: Die aktuelle Version der LMIC-Library unterstützt neben der Klasse A auch die Klasse B. Sollte am Endgerät das Feature der Klasse B (bietet zusätzlich vom Netzwerk aus gesteuerte RX-Zeitfenster) benötigt werden, so kann dies optional aktiviert werden.
Alle weiteren Einstellungsmöglichkeiten sind optional und für die allgemeine Verwendung kaum relevant.
Im letzten Schritt wird der AppKEY generiert. Der AppKEY ist für die Verschlüsslung notwendig. Nach dem JOIN-Request teilt das LoRaWAN Netzwerk (mit dem AppKey verschlüsselt) dem Endgerät die zukünftigen Sitzungsschlüssel mit. Der AppKEY kann entweder manuell eingegeben werden oder automatisch von TSS generiert werden:
Nachdem das Gerät angelegt wurde, leitet TTS automatisch zur Geräteübersicht weiter. Die meisten Librarys, darunter auch die LMIC Library arbeiten mit einer Bitwertigkeit. AppEUI und DevEUI müssen daher im LSB (Least Significant Bit) Format kopiert werden. Bei LSB wird die Reihenfolge so vertauscht, dass das hexadezimale Zahlenpaar an erster Stelle steht und das bei MSB (Most Significant Bit) erste Zahlenpaar an letzter Stelle. Es wird also von hinten nach vorne gelesen. Der AppKey bleibt im MSB Format und kann so wie er angezeigt wird, kopiert werden. Der folgende Screenshot zeigt die richtig formatierten Schlüssel, wie sie im Beispielcode eingefügt werden müssen:
Einstieg in das LoRaWAN (TTN) mit dem Heltec LoRa32 V3 und Einrichtung vom Board in der Arduino IDE
WeiterlesenStarthilfe LoRaWAN - Diese Seite richtet sich an alle Einsteiger, die mit LoRaWAN starten wollen und ihre Sensoren in das IoT-Netzwerkt TTN integrieren wollen
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved