- Für die Kommunikation zwischen den Knoten benötigt LoRaWAN ein korrekt konfiguriertes Gateway (Frequenz, IP-Netzwerk, Server) und eine Registrierung beim TTN.
- Endgeräte werden in TTN-Anwendungen mittels DevEUI, JoinEUI/AppEUI und AppKey (OTAA) oder NWKSKEY/APPSKEY/DEVADDR (ABP) registriert.
- Es ist möglich, kommerzielle Sensoren (SenseCAP, Decentlab, Dragino, Tabs) oder DIY-Knoten mit ESP32/Arduino und LMIC-Bibliothek zu verwenden, um Daten an TTN zu senden.
- TTN ermöglicht die Integration mit Node-RED und externen Plattformen, um die vom LoRaWAN-Netzwerk erfassten IoT-Daten zu visualisieren und zu nutzen.
Wenn Sie bis hierher gelesen haben, möchten Sie sicher wissen, wie Sie einen LoRaWAN-Knoten von Anfang bis Ende mit TTN verbinden – ohne Ausnahmen wie Gateways, Knoten, Sensoren, Bibliotheken, Schlüssel und die Netzwerkkonfiguration. Die gute Nachricht: Sie müssen kein Telekommunikationsexperte sein. Mit einer gut strukturierten Anleitung und etwas Geduld können Sie im Handumdrehen Ihr eigenes funktionsfähiges LoRaWAN-Netzwerk einrichten.
Im Folgenden erfahren Sie Schritt für Schritt, wie Sie ein Gateway einrichten, es im The Things Network registrieren, Anwendungen und Endgeräte hinzufügen und LoRaWAN-Knoten auf Basis von ESP32- oder Arduino-Boards programmieren. Außerdem finden Sie Beispiele mit kommerziellen Sensoren (SenseCAP, Decentlab, Dragino, Tabs Browan). Wir behandeln auch praktische Details, die in Handbüchern oft fehlen: häufige Probleme mit Schlüsseln, Frequenzauswahl, physische Pin-Verbindungen und Tricks, um die Kommunikation mit TTN zu überprüfen.
Was sind LoRa und LoRaWAN, und warum verwendet man TTN?
LoRa und LoRaWAN sind zwei verwandte, aber nicht identische Konzepte . LoRa ist ein von Semtech entwickeltes, energiesparendes Funkfrequenzmodulationsverfahren mit großer Reichweite. LoRaWAN ist das Netzwerkprotokoll, das auf LoRa aufbaut und die Kommunikation zwischen Endgeräten (Knoten) und Gateways sowie dem Netzwerkserver steuert.
In einem typischen LoRaWAN-Netzwerk gibt es zwei Hauptkomponenten: Gateways und Knoten . Gateways fungieren als „Brücken“ zwischen der LoRa-Welt (Funk) und der IP-Welt (Internet) und leiten Datenpakete an den LoRaWAN-Server weiter. Knoten sind Sensoren oder Aktoren, die Informationen über LoRa an diese Gateways senden und von ihnen empfangen.
Um all das zu verbinden, benötigen Sie einen LoRaWAN-Server. Sie können einen privaten Dienst nutzen (z. B. von Anbietern wie Movistar oder Vodafone oder Plattformen wie Loriot, Actility oder Kerlink) oder auf das Community-Netzwerk The Things Network (TTN) zurückgreifen, ein öffentliches, offenes Netzwerk, das von der Community betrieben wird.
TTN bietet den Vorteil, die Datenschutzrichtlinien zu respektieren, neutral zu sein und die Möglichkeit zu bieten, Gateways zum Netzwerk beizusteuern . In vielen Städten installieren Menschen aus eigener Initiative Gateways, und jeder kann diese Abdeckung kostenlos nutzen – abgesehen von den Hardwarekosten für die Knoten.
LoRaWAN-Frequenzen, Kanäle und Einschränkungen
Vor dem Kauf eines Geräts ist es unerlässlich, sicherzustellen, dass die LoRa-Frequenz mit Ihrer Region kompatibel ist . Die Nutzung in Europa unterscheidet sich von der in den USA oder Asien; wählen Sie das falsche Frequenzband, kann das Gerät nutzlos oder sogar illegal sein.
In Europa wird hauptsächlich das 868-MHz-Band (EU868) genutzt . In den USA ist das gängige Band 915 MHz (US915). Chinesische Händler bieten eine große Auswahl an 433-MHz-Modulen an, die aufgrund ihres Preises verlockend sein mögen, aber nicht immer mit LoRaWAN oder dem Betriebssystem Ihres Landes kompatibel sind.
Neben der Frequenz ist LoRaWAN in Kanäle, Spreizfaktor (SF) und Frequenzpläne unterteilt . Der SF bestimmt Geschwindigkeit und Reichweite: Ein höherer SF bedeutet größere Reichweite, aber auch längere Sendezeit, was mehr Energie verbraucht und mehr Kanalkapazität belegt.
In Europa gilt die bekannte „1%-Regel“ : Jedes Gerät darf den Funkkanal nur für einen geringen Prozentsatz der Zeit belegen, typischerweise etwa 1 %. Dies begrenzt die Häufigkeit der Datenübertragung und ist einer der Gründe, warum LoRaWAN-Sensoren üblicherweise nur alle paar Minuten und nicht alle paar Sekunden senden.
Vorbereitungen und Auswahl der Hardware für Gateway und Knoten
Für den Aufbau eines praktikablen Netzwerks benötigen Sie mindestens ein LoRaWAN-Gateway und einen oder mehrere Knoten (Sensoren) . Sie können Hardware verschiedener Hersteller kombinieren, solange diese dem LoRaWAN-Standard entspricht und im selben Frequenzband arbeitet.
Ein beliebtes Indoor-Gateway-Modell ist das Dragino LPS8 , das einen SX1308-Konzentrator integriert und bis zu 10 parallele Kanäle unterstützt. Es ist je nach Land mit verschiedenen Frequenzplänen vorkonfiguriert und arbeitet in Europa mit 868 MHz. Die Stromversorgung erfolgt über 5 V via USB-C, die Verbindung zum IP-Netzwerk über RJ-45 oder WLAN.
Weitere Beispiele für Gateways, die gut mit TTN funktionieren, sind das RAK7289 (robust für den Außenbereich und optional mit LTE/4G) oder die offiziellen TTN-GW-868-MHz-Gateways, die für den Ausbau der Netzabdeckung in Städten oder Smart-City-Projekten entwickelt wurden. Alternativ lässt sich auch ein Einzelzellen-Gateway mit einem ESP32-Board und einem SX1262-LoRa-Modul realisieren , wie es beispielsweise mit dem Wio-SX1262-Kit und einem Xiaomi ESP32S3 der Fall ist.
Als Knotenpunkte haben Sie zwei Möglichkeiten: Sie können kommerzielle Sensoren verwenden, die bereits für LoRaWAN geeignet sind (SenseCAP S210x, Tabs Browan TBHH100, Dragino TrackerD, Decentlab usw.), oder Sie können Ihre eigenen Knotenpunkte mit Entwicklungsboards wie TTGO LoRa32 V2.0, ESP32 + RMF95, Arduino + LoRa-Modul usw. bauen.
Konfigurieren Sie ein LoRaWAN-Gateway und verbinden Sie es mit TTN.
Der erste wichtige Schritt im Projekt besteht darin, das Gateway in Betrieb zu nehmen und den Status „Verbunden“ auf TTN anzuzeigen . Obwohl jeder Hersteller sein eigenes Dashboard verwendet, sind die konzeptionellen Schritte sehr ähnlich.
Ein Dragino LPS8 lässt sich beispielsweise per SSH oder HTTP verwalten . Bei Anschluss über ein RJ-45-Kabel müssen Sie die vom DHCP-Server zugewiesene IP-Adresse ermitteln (z. B. mit einem IP-Scanner oder über Ihren Router). Für die Ersteinrichtung per WLAN erstellt der LPS8 ein eigenes Netzwerk mit einer SSID wie „dragino-xxxxx“ und einem Standardpasswort wie „dragino+dragino“. Über die IP-Adresse 10.130.1.1 gelangen Sie zum Webpanel. Benutzername und Passwort lauten dort üblicherweise „admin/dragino“.
Nach dem Aufrufen erscheint ein Menü mit mehreren Abschnitten. Einige Optionen sind möglicherweise mit einem roten Kreuz gekennzeichnet, was bedeutet, dass die Konfiguration fehlt . Im ersten Schritt wählen Sie im LoRa-Tab den korrekten Frequenzplan für Ihre Region aus; in Europa ist dies EU868 (ca. 868 MHz).
Tippen Sie als Nächstes auf den Tab „LoRaWAN“ oder „Netzwerkserver“ . Dort legen Sie fest, mit welchem LoRaWAN-Server sich das Gateway verbinden soll. Wählen Sie für TTN „TTN“ als Anbieter aus und geben Sie die Adresse des europäischen Servers ein (z. B. eu1.cloud.thethings.network). Behalten Sie dabei die UDP-Ports bei (üblicherweise 1700 für Upload und Download). Im selben Abschnitt finden Sie die Gateway-ID (EUI), die wir später für TTN benötigen.
Im Netzwerkbereich konfigurieren Sie die Internetverbindung des Gateways : LAN, WAN oder WLAN-WAN. Für die WAN-Schnittstelle können Sie eine statische IP-Adresse oder DHCP wählen. Für eine stabilere Verbindung und einfachere Verwaltung empfiehlt sich nach Möglichkeit eine statische IP-Adresse über eine Kabelverbindung. Der LAN-Bereich wird typischerweise für das interne Netzwerk des Gateways verwendet. Ändern Sie diese Einstellung nur, wenn Sie genau wissen, was Sie tun, da sie im Fehlerfall lebensrettend sein kann.
Im WLAN-Bereich können Sie sowohl den vom Gateway selbst erzeugten Zugangspunkt als auch dessen Verbindung zu einem externen WLAN-Netzwerk anpassen . Aus Sicherheitsgründen wird empfohlen, die werkseitig voreingestellte SSID und das Standardpasswort des Zugangspunkts zu ändern.
Bei RAK7289-Gateways ist der Vorgang ähnlich: Greifen Sie auf das Webpanel zu, konfigurieren Sie die IP-Adresse (statisch oder per DHCP) unter Netzwerk → WAN-Schnittstelle und geben Sie anschließend unter LoRa-Netzwerk → Netzwerkeinstellungen → Paketweiterleitung die TTN-Serverdetails ein. Notieren Sie sich die Gateway-EUI, um diese später bei TTN zu registrieren. Befinden Sie sich hinter einem Router mit DHCP-Funktion, können Sie die IP-Adresse des Gateways in der Leasetabelle (z. B. anhand des Hostnamens „RAK7289“) oder mithilfe von Tools wie nmap ermitteln.
Gateway-Registrierung im The Things Network
Sobald das Gateway über einen Internetzugang verfügt, müssen Sie es bei TTN registrieren . Falls Sie noch kein Konto besitzen, registrieren Sie sich zunächst auf der Website von The Things Network und greifen Sie anschließend auf die Konsole in der entsprechenden Region zu (z. B. https://eu1.cloud.thethings.network/).
Wählen Sie in der Konsole den Bereich „Gateways“ und klicken Sie auf „Gateway registrieren“ . TTN fragt nach einer Gateway-ID (einem eindeutigen Namen in Ihrem Konto) und, je nach Gateway-Typ, nach der Gateway-EUI. Bei Dragino LPS8-Gateways, die den klassischen Paketweiterleiter verwenden, müssen Sie die Option „Ich verwende den Legacy-Paketweiterleiter“ auswählen.
Zusätzlich geben Sie den Frequenzplan (EU868 für Europa) , die entsprechende Region bzw. den Router und optional den Standort (Koordinaten, Innen-/Außenbereich usw.) an. Bei Gateways wie dem Single-Cell-Gateway mit XIAO ESP32S3 und Wio-SX1262 kann die Firmware die Gateway-ID beim Start über die serielle Schnittstelle anzeigen; kopieren Sie diese einfach und verwenden Sie sie im Registrierungsformular.
Nach Eingabe dieser Informationen und Registrierung des Gateways zeigt TTN eine Statusanzeige („Verbunden“ oder „Getrennt“) sowie einen Bereich „Datenverkehr“ an, in dem Sie den Paketfluss in Echtzeit verfolgen können. Bei korrekter Konfiguration von Gateway und TTN sollte der Status innerhalb von ein bis zwei Minuten auf „Verbunden“ wechseln und der Datenverkehr sichtbar werden, sobald Knoten senden.
Das bedeutet, dass die Infrastruktur (Gateway + Server) nun betriebsbereit ist . Ab hier beginnt die Konfiguration der Anwendungen und Endgeräte.
Anwendungserstellung und Knotenregistrierung in TTN
In TTN werden Geräte nicht direkt im Stammverzeichnis des Kontos registriert, sondern innerhalb von Anwendungen . Eine Anwendung gruppiert einen oder mehrere Knoten, die zusammengehörige Daten senden, beispielsweise alle Umweltsensoren in einem Gebäude oder mehrere GPS-Tracker in einem Bildungsprojekt.
Gehen Sie in der TTN-Konsole zum Bereich „Anwendungen“ und erstellen Sie eine neue Anwendung . Vergeben Sie eine eindeutige ID, optional eine Beschreibung und wählen Sie die entsprechende Region aus. Innerhalb dieser Anwendung registrieren Sie jeden LoRaWAN-Knoten mit seinen Anmeldeinformationen (DevEUI, JoinEUI/AppEUI und AppKey oder andere Schlüssel, abhängig von der Aktivierungsmethode).
Bei kommerziellen Sensoren wie den Temperatur- und Feuchtigkeitssensoren Browan TBHH100-868 ist üblicherweise ein Etikett mit DevEUI, AppEUI und AppKey angebracht. Sie verwenden typischerweise das OTAA-Verfahren (Over-The-Air Activation), das bei jeder Netzwerkverbindung Schlüsselsitzungen generiert und dadurch sicherer als ABP ist.
Mit OTAA in TTN wählen Sie die Registrierung eines neuen Endgeräts aus, geben JoinEUI (AppEUI), DevEUI und AppKey ein , überprüfen die Daten und bestätigen. Nach dem Speichern erkennt der Knoten, sofern er korrekt konfiguriert ist und sich in Reichweite eines Gateways befindet, die Netzwerk-Beacons, führt den Beitrittsvorgang durch und Sie sehen Uplink-Nachrichten mit ihren Messwerten in der Konsole.
Das Gleiche gilt für Sensoren wie die Füllstands- und Temperatursensoren von Decentlab : Der Hersteller stellt die ID, DevEUI, AppEUI und den AppKey bereit, weiß aber nicht im Voraus, welchen Server Sie verwenden werden. Sie sind dafür verantwortlich, diese Informationen bei TTN (oder einem anderen Server) zu registrieren, damit der Sensor angemeldet werden kann. Viele Decentlab-Geräte sind auf Anfrage bereits bei TTN registriert, was den Vorgang weiter vereinfacht.
Konfiguration kommerzieller LoRaWAN-Sensoren
Schauen wir uns einige konkrete Beispiele an, wie man kommerzielle LoRaWAN-Sensoren vorbereitet und registriert, die dann über Ihr Gateway mit TTN kommunizieren.
Bei den Sensoren der SenseCAP S210x-Reihe (z. B. Umweltsensoren) ist der übliche Arbeitsablauf die Verwendung der SenseCraft-App des Herstellers . Zuerst laden Sie die App herunter, schalten den Sensor mit einer Taste ein (indem Sie diese einige Sekunden lang gedrückt halten, bis die LED jede Sekunde blinkt) und wählen dann in der App „Scannen“, um den QR-Code des Geräts zu lesen.
Innerhalb der App gibt es einen Modus für die „Erweiterte Konfiguration“, in dem Sie „The Things Network“ als Plattform auswählen . Sie müssen denselben Frequenzplan wie Ihr Gateway auswählen (z. B. EU868) und sicherstellen, dass der Verbindungsmodus OTAA ist. Die Anwendung zeigt die Geräte-EUI, die App-EUI (JoinEUI) und den App-Schlüssel an. Es empfiehlt sich, diese Daten zu notieren, da Sie sie bei der Geräteregistrierung in TTN eingeben müssen.
Beim Tabs Browan TBHH100-868 Sensor sind die Schlüssel bereits werkseitig vorkonfiguriert. Der Sensor misst Temperatur und Luftfeuchtigkeit, wird mit einer 3,6-V-Batterie betrieben und sendet Daten nach folgenden Regeln: alle 60 Minuten, wenn keine Änderung vorliegt, oder früher, wenn sich die Temperatur um ±2 °C oder die Luftfeuchtigkeit um ±5 % ändert. Zur Registrierung geben Sie einfach den vom Hersteller bereitgestellten APPKey, die APPEUI und die DevEUI in Ihren LoRaWAN-Server (z. B. TTN) ein. Gelegentlich kann es zu Problemen mit dem Format oder der Byte-Reihenfolge (MSB/LSB) kommen. Überprüfen Sie dies daher, falls die Verbindung beim ersten Mal nicht hergestellt werden kann.
Dragino TrackerD-Geräte dienen als GPS-Tracker mit Panikknopf. Jedes Gerät verfügt über einen eigenen Satz LoRaWAN-Schlüssel. In TTN werden diese üblicherweise in derselben Anwendung (z. B. „Kursverfolgung“) registriert. Die Konfiguration des Geräts erfolgt bei Bedarf über die serielle Schnittstelle (USB) mithilfe von AT-Befehlen. Die Dokumentation beschreibt die Befehle zur Anpassung der Übertragungsrate, des Alarmverhaltens usw. Wichtig: Viele Dragino-Firmwares erfordern, dass AT-Befehle vollständig in das Terminal eingefügt und nicht zeichenweise eingegeben werden.
Bei Sensoren wie den Füllstands-, Druck- oder Umweltsensoren von Decentlab ist das Prinzip ähnlich: DevEUI, AppEUI und AppKey dienen der Verbindung mit TTN (oder einem anderen Netzwerk). Decentlab wählt üblicherweise ein Übertragungsintervall von 10 Minuten, da dies einen bewährten Kompromiss zwischen Datenverbrauch und Auflösung darstellt. Dieses Intervall kann jedoch auf Anfrage oder über die Konfiguration angepasst werden. Nutzer können die Daten auf der Cloud-Plattform des Herstellers einsehen oder das Gerät durch Hinzufügen des entsprechenden Payload-Decoders in Drittanbieterplattformen (MyDevices, ResIoT, WMW usw.) integrieren.
Bauen Sie Ihren eigenen LoRaWAN-Knoten mit Open-Source-Hardware.
Wer gerne bastelt, dem macht es oft am meisten Spaß, einen eigenen LoRaWAN-Knoten zu bauen und zu programmieren . Eine sehr beliebte Kombination ist die Verwendung eines ESP32-basierten Boards mit integriertem LoRa, wie beispielsweise dem TTGO LoRa32 V2.0 868 MHz, und das Hinzufügen eines einfachen Sensors, beispielsweise eines DS18B20-Temperatursensors.
Dieser Ansatz erfordert vier Komponenten: die Steuerplatine (ESP32, Arduino usw.), das LoRa-Funkmodul (z. B. ein RFM95 vom Typ SX1276/78), den zu messenden Sensor und optional Peripheriegeräte wie ein OLED-Display zur lokalen Datenanzeige.
Das TTGO LoRa32 V2.0 verfügt über einen integrierten LoRa-Transceiver und, je nach Version, ein kleines OLED-Display. Es basiert auf dem ESP32 und bietet WLAN und Bluetooth. In vielen Fällen eignet es sich auch hervorragend für den Aufbau eines einkanaligen Mini-Gateways mit Internetverbindung. Allerdings sind bei diesem und ähnlichen Boards einige Signale des LoRa-Moduls (DIO1, DIO2) nicht mit dem Mikrocontroller vorverdrahtet und müssen manuell angeschlossen werden.
Beispielsweise verwendet der TTGO LoRa32 V2.0 typischerweise folgende Pinbelegung für LoRa: SCK an GPIO5, MISO an GPIO19, MOSI an GPIO27, CS an GPIO18, RESET an GPIO14 und DIO0 an GPIO26 . DIO1 und DIO2 sind üblicherweise physisch mit GPIO33 bzw. GPIO32 verbunden, die sich in der gegenüberliegenden Reihe befinden, wodurch die Verwendung einer direkten Jumperverbindung sehr einfach ist.
Es gibt drei gängige Methoden, diese Verbindungen herzustellen: das direkte Anlöten von Drähten an die Pins (für die Endmontage), die Verwendung von Jumperkabeln, wenn sich die Platine auf einem Steckbrett befindet , oder das Führen der Verbindungen auf eine separate Leiterplatte, auf die der TTGO gesteckt wird. Die Jumperkabel-Option ist für Testzwecke in der Regel am praktischsten.
Node-Software: LMIC-Bibliothek, Frequenz- und TTN-Schlüssel
Zur Programmierung eines LoRaWAN-Knotens auf Arduino/ESP32 wird häufig die MCCI LoRaWAN LMIC-Bibliothek verwendet , die den LoRaWAN-Stack implementiert und alles verwaltet, was mit Kanälen, Joins, Wiederholungsversuchen, Empfangsfenstern usw. zu tun hat.
Installieren Sie zunächst die Bibliothek über den Bibliotheksverwalter der Arduino IDE , indem Sie nach „LMIC“ suchen und „MCCI LoRaWAN LMIC library“ auswählen. Nach der Installation ist ein wichtiger Punkt zu beachten: Standardmäßig ist die Bibliothek für US915 (Vereinigte Staaten) konfiguriert. Wenn Sie sich in Europa befinden, müssen Sie dies auf EU868 ändern.
Suchen Sie dazu die Datei lmic_project_config.h im Bibliotheksordner (etwa /Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/) und bearbeiten Sie die Definitionen. Kommentieren Sie CFG_us915 aus und aktivieren Sie CFG_eu868. Stellen Sie außerdem sicher, dass der richtige Funktyp aktiviert ist (z. B. CFG_sx1276_radio für SX1276/78-Module). Diese Änderung ist einmalig und gilt für alle Ihre LMIC-Projekte.
Anschließend öffnen Sie eines der mitgelieferten Beispiele, beispielsweise ttn-abp , das regelmäßig ein „Hallo Welt!“ als Nutzlast sendet. Dieses Beispiel dient als Grundlage für die Anpassung an Ihr Board und Ihre TTN-Zugangsdaten.
Im Code finden Sie eine `lmic_pinmap`-Struktur, die die NSS- (CS-), RST- und DIO-Pins festlegt . Standardmäßig ist sie für den Feather M0 LoRa konfiguriert. Wenn Sie also einen TTGO LoRa32 V2.0 verwenden, müssen Sie diese Struktur anpassen und `.nss = 18`, `.rst = 14` und `.dio = {26, 33, 32}` verwenden (vorausgesetzt, Sie haben DIO1 mit GPIO33 und DIO2 mit GPIO32 verbunden). Bei abweichender Hardware konsultieren Sie bitte die zugehörige Dokumentation oder suchen Sie nach einem spezifischen Beispiel.
Sobald die Pinbelegung korrekt ist, können Sie die Schlüssel konfigurieren, die Ihren Knoten in TTN identifizieren . Im Beispiel ttn-abp werden die Variablen NWKSKEY, APPSKEY und DEVADDR mit dem Wort FILLMEIN angezeigt, sodass Sie sie mit Ihren Werten ausfüllen können.
Diese Daten erhalten Sie in der TTN-Konsole beim Anlegen eines Geräts mit ABP-Aktivierung. TTN stellt Ihnen den Netzwerk-Sitzungsschlüssel (NWKSKEY), den App-Sitzungsschlüssel (APPSKEY) und die Geräteadresse (DEVADDR) zur Verfügung . Aus Sicherheitsgründen sind die Schlüssel in der Benutzeroberfläche ausgeblendet. Sie können sie jedoch sichtbar machen und – was noch praktischer ist – den Wert direkt als C-Array (über die Schaltfläche „<>“) in der korrekten Byte-Reihenfolge (MSB) kopieren. Durch Klicken auf das Kopiersymbol wird das Array in die Zwischenablage kopiert. Anschließend können Sie es einfach an der Stelle in Ihren Code einfügen, an der sich die einzelnen FILLMEIN-Einträge befinden.
Für NWKSKEY und APPSKEY verwenden Sie das von TTN bereitgestellte Byte-Array-Format . Für DEVADDR legen Sie den Hexadezimalwert als einzelne Ganzzahl vom Typ u4_t fest, beispielsweise `static const u4_t DEVADDR = 0x26011111;`. Damit kann sich Ihr Knoten authentifizieren und seine Pakete an Ihre TTN-Anwendung weiterleiten.
Sensoren in den Knotencode integrieren
Sobald das LoRaWAN-Grundgerüst funktioniert, ist es an der Zeit, das typische „Hallo Welt!“ durch echte Sensordaten zu ersetzen . Am Beispiel des TTGO LoRa32 und eines DS18B20 verwenden Sie den OneWire-Bus und die DallasTemperature-Bibliothek.
Fügen Sie am Anfang des Sketches die Header-Dateien ein und definieren Sie den Bus-Pin: `#include <OneWire.h>`, `#include <DallasTemperature.h>` und `#define ONE_WIRE_BUS X` , wobei X der GPIO-Pin ist, an den der Sensor angeschlossen ist. Erstellen Sie das `OneWire`-Objekt `oneWire(ONE_WIRE_BUS)` und das `DallasTemperature`-Objekt `sensor(&oneWire)`. Falls die DS18B20-Bibliothek nicht installiert ist, fügen Sie sie über den Bibliotheksverwalter hinzu.
In der `setup()`-Funktion initialisieren Sie den Sensor mit `sensor.begin()` und können optional die Auflösung festlegen (z. B. `sensor.setResolution(11)`) . Anschließend ist der Sensor bereit, die Temperatur bei Bedarf zu messen.
Die Schlüsselfunktion in LMIC zum Senden von Daten ist `do_send(osjob_t* j)`. Darin wird geprüft, ob eine Übertragung läuft (`OP_TXRXPEND`). Falls nicht, rufen Sie `sensor.requestTemperatures()` auf, ermitteln den Wert mit `sensor.getTempCByIndex(0)` und speichern ihn im Array `mydata`. Beispielsweise können Sie mit `mydata[0] = (uint8_t)sensor.getTempCByIndex(0);` nur den ganzzahligen Anteil senden.
Anschließend rufen Sie `LMIC_setTxData2(1, mydata, sizeof(mydata), 0)` auf . Der erste Parameter ist der LoRaWAN-Port (in diesem Fall 1), der zweite der Puffer, der dritte die Größe und der letzte gibt an, ob die Nachricht bestätigt (1) oder nicht bestätigt (0) wurde. Die Bibliothek plant die Übertragung dann im nächsten verfügbaren Zeitschlitz ein.
Es gibt viele Verbesserungsmöglichkeiten: Erweiterung der Nutzdaten um Dezimaldaten, Hinzufügen weiterer Sensoren, Verpackung der Daten in einem effizienten Binärformat usw. Aber selbst in dieser einfachen Version haben Sie bereits einen Knoten, der regelmäßig Echtzeitmessungen an TTN sendet, die auf der Konsole sichtbar sind und zur Integration in andere Systeme bereit sind.
OTAA-Aktivierung, Sicherheit und praktische Erfahrung
Bisher haben wir uns hauptsächlich mit ABP anhand von Codebeispielen beschäftigt, im Produktivbetrieb wird jedoch die Verwendung von OTAA (Over-The-Air Activation) dringend empfohlen . OTAA ist die Methode, die beispielsweise von Decentlab-Sensoren und vielen SenseCAP-Sensoren verwendet wird, da sie die Sicherheit erhöht.
Bei OTAA wird die LoRaWAN-Sitzung jedes Mal „über Funk“ ausgehandelt, wenn sich das Gerät mit dem Netzwerk verbindet . Wenn der Knoten ausgeschaltet, neu gestartet wird oder die Verbindung abbricht, werden beim nächsten Verbindungsaufbau neue Sitzungsschlüssel generiert. Dadurch wird es deutlich erschwert, das Gerät durch einfaches Kopieren statischer Schlüssel zu klonen.
Wenn Sie in der TTN-Konsole OTAA für ein Gerät auswählen, werden anstelle der statischen Werte NWKSKEY und APPSKEY die Werte DevEUI, JoinEUI/AppEUI und AppKey angezeigt . Die Sitzungsschlüssel werden jedes Mal aus diesen Werten und dem Austausch mit dem Server neu generiert. Sie sehen nur die abgeleiteten Schlüssel für die Dauer der Sitzung.
In der Praxis haben Anwender, die mit LoRaWAN von Grund auf beginnen, festgestellt, dass der Registrierungsprozess mit einem bei TTN registrierten Gateway und einem korrekt konfigurierten OTAA-Sensor sehr einfach sein kann : Man erstellt ein Konto bei TTN, aktiviert das Gateway, registriert den Sensor mit den vom Hersteller bereitgestellten Schlüsseln und kann innerhalb weniger Minuten Daten auf einer Webplattform anzeigen (sei es die eigene von Decentlab, SenseCAP oder Dashboards von Drittanbietern).
Faktoren wie der Standort der LoRa-Box des Sensors (am besten vertikal, da dies das Strahlungsmuster der internen Antenne begünstigt) , die Funkumgebung und die Höhe des Gateways beeinflussen die tatsächliche Abdeckung erheblich, aber der Einrichtungsablauf ist, sobald man ihn verstanden hat, ziemlich mechanisch.
Von TTN zu Ihren Anwendungen: Integrationen und Visualisierung
Nachdem die Knoten nun Daten an TTN hochladen, besteht der nächste Schritt darin, diese Informationen in Ihre eigenen Anwendungen, Dashboards oder Automatisierungs-Workflows zu integrieren . TTN bietet hierfür leistungsstarke Integrationen und eine API.
Ein gängiger Ansatz ist die Verwendung von Node-RED, um Daten von TTN zu empfangen und diese nach Bedarf zu verarbeiten . Sie konfigurieren eine MQTT- oder HTTP-Verbindung mit Ihren TTN-Anwendungsdaten, dekodieren die Nutzdaten (entsprechend dem Format Ihrer Sensoren) und können anschließend praktisch alles damit machen: Daten in Datenbanken speichern, Diagramme anzeigen, Warnmeldungen auslösen usw.
Eine weitere Möglichkeit besteht darin, Drittanbieterplattformen zu nutzen , die bereits mit TTN integriert sind , wie beispielsweise Datacake, MyDevices, ResIoT, WMW und andere. Viele dieser Plattformen bieten bereits spezifische Vorlagen für Geräte wie Decentlab-Sensoren oder bestimmte Dragino-Modelle. Sie müssen lediglich den Gerätetyp auswählen, ihn mit Ihrer TTN-Anwendung verknüpfen und können die Daten anschließend in benutzerfreundlichen Dashboards anzeigen.
In Bildungsprojekten wurde TTN beispielsweise in Verbindung mit RAK7289-Gateways und Dragino TrackerD-Trackern zur Ortung von Personen oder Fahrzeugen eingesetzt. Der Workflow ist wie folgt: Gateway registriert, Tracker in TTN registriert, Daten auf der Konsole angezeigt und anschließend in Echtzeit auf einem öffentlichen Datacake-Dashboard mit Karten und Diagrammen zu Position, Akkustand usw. dargestellt.
Wichtig ist zu verstehen, dass TTN als LoRaWAN-Netzwerkschicht und Datenrouter fungiert ; Sie entscheiden über die Anwendungs- und Visualisierungsschicht: von einem Python-Skript, das die API nutzt, bis hin zu einer industriellen IoT-Datenplattform.
Kurz gesagt, die Anbindung eines LoRaWAN-Knotens an TTN umfasst mehrere Schritte (korrekte Frequenz, korrekt konfiguriertes Gateway, TTN-Registrierung, Knotenschlüssel, OTAA- oder ABP-Aktivierung, Gerätesoftware und gegebenenfalls weitere Integrationen). Jeder einzelne Schritt ist jedoch auch ohne Vorkenntnisse machbar, sofern die richtigen Richtlinien befolgt werden. Nach der Ersteinrichtung ist die Bereitstellung weiterer Knoten oder Gateways ein hochgradig wiederholbarer und skalierbarer Prozess – ideal für groß angelegte Sensorprojekte, Smart-City-Initiativen oder einfach zum Lernen und Experimentieren mit IoT-Netzen mit großer Reichweite.