TTN konfigurieren
Achtung: Dieser Abschnitt ist noch auf dem Stand des Heltec LoRa V1. Beim neuen Heltec V3 Board gibt es einige Unterschiede, auf die ich im Kurs eingehen werde.
Dieser Abschnitt beschreibt die Arbeiten in der TheThingsNetwork Console
https://eu1.cloud.thethings.network/console
Account besorgen
Gehe auf https://www.thethingsnetwork.org und wähle "Sign Up".
Dann sieht man die folgende Seite im Browser:
Den linken Eintrag wählen (Join The Things Network).
TTIG Gateway (optional)
Erst mal schauen wo das nächste Gateway ist: https://www.thethingsnetwork.org/map
Hier sind die Augsburger Gateways (April 2023):
Falls man keines in der Nähe hat, empfehle ich das TTIG (TheThings Indoor Gateway)
https://www.thethingsindustries.com/docs/gateways/models/thethingsindoorgateway
Das TTIG unterstützt 8 Kanäle, LoRaWAN 1.0.3 und hat im Inneren die Bausteine SX1308 (Gateway) und einen ESP8266 für die WiFi-Anbindung. Das Gerät hat keine Netzwerkbuchse. Normalerweise steckt man es einfach in eine Steckdose. Es hat aber auch einen USB-C Anschluss zur Stromversorgung.
Hier ist die Prozedur für eine Neuinitialisierung des TTIG Gateways. Die angegebenen Daten (Wifi Pwd und Gateway-EUI) beziehen sich auf mein Gateway, diese Daten sollten bei Euch anders sein.
-
5 Sek Reset druecken (LED blinkt rot und gruen)
-
10 Sek Setup druecken (LED blinkt dann schnell rot)
Nun ist das TTIG neu initialisiert. Über einen integrierten AP bietet es das Netz mit der SSID MiniHub-80453A an.
-
Rechner mit WiFi Netz MiniHub-80453A verbinden
- Firefox verwenden!
- http://192.168.4.1
- Wifi Pwd: oJurJyfz
Die Website des Accesspoints zeigt auch alle wichtigen Daten des TTIG an, siehe TTIG-Daten.
-
Konfigurieren, so dass TTIG beim nächsten Starten als WiFi Client im Heimnetz ist.
-
Reboot (gruen sollte irgendwann dauerhaft leuchten, dann ist alles richtig verbunden). An der Fritzbox sieht man dann den Netzteilnehmer MiniHub-80453A.
-
Gateway in der TTN Konsole eintragen:
Gateway-EUI 58 A0 CB FF FE 80 45 3A
Der Claim Authentication Code ist das Wifi Pwd.
Wichtig: Bei mir war die im Bild gezeigte Gateway-ID schon vergeben,
deswegen wurde eine Fehlermeldung ausgegeben und ich konnte das Gateway erst
mal nicht anmelden. Man darf hier einen beliebigen Namen vergeben, ich habe
dann huberts-ttig-gateway
genommen, damit hat es dann gleich funktioniert.
Siehe auch den Ordner ttig
.
Applikation einrichten
Eine neue Applikation einzurichten geht sehr einfach. Man wählt lediglich + Create application
aus und vergibt eine neue Application ID, das ist ein
Bezeichner für die Applikation. Ausserdem kann man einen Namen vergeben,
den habe ich auf "Heltec Demo App for TTN Workshop" gesetzt (besser wäre
aber ein kürzerer Name gewesen).
Sollte man die Applikation irgendwann wieder löschen, dann wird man bemerken,
dass man die gleiche ID nicht mehr vergeben kann. Anfangs habe ich für den
Workshop die ID heltec-demo
vergeben, nachdem ich die Applikation zum Test
gelöscht und neu angelegt hatte, musste ich auf einen anderen Namen umsteigen,
z.B. heltec-demo-1
.
So sieht der Fehler aus, wenn es den Namen früher schon gegeben hat:
End Device einrichten
Das Anlegen eines Endgerätes (End Device) ist etwas umfangreicher. Man muss die folgenden Punkte beachten:
- Daten manuell eingeben (da Selbstbaugerät)
- Frequency Plan
- LoRaWAN Spec 1.0.3
- JoinEUI auf
00 00 ...
setzen (war früher AppEUI) - DevEUI generieren
- AppKey generieren
- Abschliessend die End Device ID auf einen lesbaren Namen setzen, z.B.
heltec-demo-dev1
Die DevEUI muss in der Reihenfolge "Little-Endian" übertragen werden, d.h. die in der TTN Konsole gezeigte Reihenfolge der Bytes muss umgedreht werden!
Diese Folge von Bildschirmkopien zeigt das Anlegen eines Endgerätes. In Bild 10 sieht man die umgedrehte Reihenfolge der DevEUI, so muss es in den Quelltext eingegeben werden:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
API Keys
Wenn man aus einem Shell Skript, einem Python Programm oder einem
Programm wie z.B. curl
auf die Daten des TTN Servers zugreifen will, dann
braucht man immer einen API Key. Den Key muss man in der TTN Konsole erzeugen
(+ Add API Key
). Er erhält einen Namen und einen Wert. Der Name ist in
meinem Beispiel "heltec-demo-api-key", der Wert ist nur direkt bei der
Erzeugung sichtbar und muss gesichert werden. Nach Abschluss ist der Wert
nicht mehr zugänglich.
Der Key könnte in etwa so aussehen, muss aber natürlich an den eigenen Key angepasst werden:
NNSXS.ABS3TTW5OBMNZRBIW5ZMQDEC74N63JXYPAWAHVQ.GXO3XHNDPBYM2NW5I5ZYAMX6WNF3KRTX2FUW2YTFVXJXPVYFAGUQ
Die Demo-Programm für den Workshop lesen diesen API Key aus einer
Umgebungsvariable WORKSHOP_API_KEY
ein. Diese muss deshalb erst mal
gesetzt werden. Das macht man mit dem folgenden Kommando in der Shell:
export WORKSHOP_API_KEY=NNSXS.ABS3TTW5OBMNZRBIW5ZMQDEC74N63JXYPAWAHVQ.GXO3XHNDPBYM2NW5I5ZYAMX6WNF3KRTX2FUW2YTFVXJXPVYFAGUQ
Dadurch bleiben die Skripte (1) unabhängig vom Schlüssel und können (2) auf öffentlichen Git Servern aufbewahrt werden, ohne dass Geheimnisse weitergegeben werden.
Die Key ID ist lediglich ein eindeutiger Bezeichner für den Schlüssel. Auf den Wert des Schlüssels kann nicht mehr zugegriffen werden. Sollte der Wert verloren gehen, muss man einen neuen Schlüssel erzeugen.
Hier sind eine Reihe von Bildschirmkopien die zeigen wie der API Key erzeugt wurde: