preloader

Auf AEQ-WEB Suchen

AEQ-WEB | Blog

Arduino ESP32 LoRa TTN LoRaWAN Registration ABP Mode

Arduino & ESP32 TTS Registrierung (OTTA)

  • Alex @ AEQ-WEB
  • 02.04.2021
  • LoRa

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).

Unterschied zu ABP

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.

1. Application anlegen

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:

ESP32 Arduino TTS Register OTTA Add Application

2. End Device Registrieren

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)

ESP32 Arduino TTS Register OTTA Add Device

2.1 Basis Einstellungen

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.

ESP32 Arduino TTS Register OTTA Basic Settings

2.2 Netzwerk Einstellungen

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.

ESP32 Arduino TTS Register OTTA Network Settings

2.3 Join Einstellungen

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:

ESP32 Arduino TTS Register OTTA Join Settings

3. LoRaWAN Schlüssel kopieren

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:

ESP32 Arduino TTS Register OTTA get Keys

Share:
thumbnail
07.09.2019
ESP32 LoRa Arduino IDE Setup

In diesem Artikel zeigen wir, wie ein ESP32 LoRa Board im Arduino IDE konfiguriert wird und wie der angepasste Beispielcode für LoRa funktioniert

Alex @ AEQ-WEB
thumbnail
03.01.2021
Arduino & ESP32 bei TTN registrieren (ABP)

Diese Seite beschreibt die Registrierung und Konfiguration eines LoRa Development Boards wie Arduino, ESP32, TTGO und Ähnliches als Device bei TTN

Alex @ AEQ-WEB