TTN v3 mit der senseBox

Das öffentliche The Things Network (TTN) migriert im Laufe des Jahres von Version 2 zu Version 3. Es gibt einige Neuigkeiten, unter anderem ein Single Sign-On (SSO) System, eine neue Oberfläche aber auch eine andere Datenstruktur. In diesem Projekt wollen wir zeigen, wie man (Stand November 2021) eine senseBox im neuen TTN registriert, in Blockly programmiert und seine Messwerte zur openSenseMap sendet.

Application erstellen

Melde dich in der neuen TTNv3 Console an (https://eu1.cloud.thethings.network/console/). Dort können die gleichen Login-Daten wie bisher verwendet werden. Klicke auf Applications und erstelle eine neue Application mit einer beliebigen ID.

Device erstellen

Innerhalb der Application können nun neue Devices hinzugefügt werden. Klicke auf “+ Add end Device” und füge ein neues Devices (z.B. eine senseBox hinzu).

Wähle oben Manually aus. Als Frequency Plan muss Europe 863-870 MHz (SF9 for RX2 - recommended), als LoRaWAN version die Option MAC V1.0.2 und als Regional Parameters Version die Option PHY V1.0.2 REV A ausgewählt werden.

EUIs

Im nächsten Schritt müssen die EUIs eingetragen werden. Die DevEUI kann von TTNv3 über den Button automatisch generiert werden. Pro Application können jedoch nur 50 EUIs genutzt werden, da diese einmalig sein müssen. Die AppEUI kann über den Button mit Nullen gefüllt werden und der AppKey kann auch wieder automatisch generiert werden.

Abschließend kannst du deinem Device noch eine ID geben oder die automatisch generierte ID nutzen.

Jetzt kannst du einfach auf Register end device klicken und dein Device wird erstellt.

Decoding

Das Device wurde nun erfolgreich erstellt. In diesem Tutorial wird das Cayenne Payload Format genutzt. Stelle daher das Payload Format der Application für den Uplink auf Cayenne LPP um.

Blockly

Die Programmierung der senseBox MCU kann über die Lern- und Programmierumgebung durchgeführt werden. Die EUIs und den Key findet man in der Übersicht von seinem neuen Device in der TTNv3 Konsole.

Beim Kopieren der EUIs und des Keys muss man darauf achten, das richtige Format (lsb, msb) zu nutzen. Außerdem muss man die geschweiften Klammern { und } selbst vor bzw. hinter die Hexadezimalzahlen setzen, da diese aktuell nicht mitkopiert werden

Der Sketch kann jetzt kompiliert und wie gewohnt auf die senseBox MCU geladen werden. Nach dem Start der senseBox sollten nun in der TTNv3 Console unter “Live data” Datenpakete erscheinen, wenn die senseBox in Reichweite eines TTN Gateways ist. Leider kann der Beitritt der senseBox ins LoRa-Netz je nach Gateway und Traffic beim ersten mal bis zu einer Stunde dauern, falls keine Datenpakete ankommen, sondern immer nur join request accepted in der Konsole steht, einfach ein bisschen warten.

openSenseMap

Registriere auf der openSenseMap eine neue senseBox und wählen bei der Hardware eine senseBox:edu oder Manuelle Konfiguration mit den entprechenden angeschlossenen Sensoren aus. In den erweiterten Einstellungen aktviere The Things Network und setzt das Decoding Profile auf Cayenne LPP (beta). Unter Application-ID und Device-ID trage die IDs der Application und des Devices ein, welche vorher bei der jeweiligen Registrierung in der TTNv3 Konsole beliebig gesetzt worden ist, z.B. “my-new-application” oder “my-new-device”. Ggf. muss noch das Cayenne LPP Phänomen für jeden entsprechenden Sensor angepasst werden.

Webhook

Im letzten Schritt müssen die Daten von TTN zur openSenseMap weitergeleitet werden. Füge dazu der TTN Application eine neue Webhook Integration hinzu. Nach einem Klick auf “+ Add webhook” wähle “Custom webhook” und gib dem neuen Webhook eine ID, z.B. osem. Als Webhook Format wähle JSON aus und die Base URL für den Endpoint ist https://ttn.opensensemap.org/v3. Außerdem muss noch Uplink messages aktiviert wreden. Nun ganz unten auf “Add webhook” klicken und schon ist die Weiterleitung zur openSenseMap eingerichtet. Nach ein paar Minuten sollten die ersten Messwerte auf der openSenseMap zu sehen sein.