LoRaWAN UDP Packet Forwarder 1
17.12.2024
Elektronik | Funk | Software
Der Technik-Blog
Beim LHT65 handelt sich um eine LoRaWAN Temperaturmessstation bestehend aus zwei internen Sensoren (Temperatur & Luftfeuchtigkeit) und einem externen Temperatursensor. Beim externen Sensor handelt es sich um den bekannten DS18B20. Besonders gut ist das Energiemanagement dieser Node, da diese mit einer Batterie über viele Jahre betrieben werden kann und daher fast wartungsfrei ist. In diesem Artikel geht es um die Konfiguration vom LHT65 mit dem LoRaWAN Netzwerk TTN V3 (The Things Stack) im OTTA-Betrieb. Für OTTA wird ein 8-Kanal LoRaWAN Gateway wie zum Beispiel das MikroTIK LR8 empfohlen. Wer ein Single Channel Gateway wie zum Beispiel ein Dragino LG01 oder LG02 betreibt, kann OTTA nur mit einer Sonderkonfiguration betreiben. Daher sollte man bei dieser Variante eher auf ABP setzen. Eine Anleitung zur Konfiguration vom ABP-Betrieb findet man im folgenden Artikel: LHT65 mit TTN V3 verbinden (ABP).
Der Sensor hat eine Batterie, die laut Herstellerangabe 8 bis 10 Jahre halten soll. Im inneren befindet sich eine Platine mit einem STM32 Mikrocontroller, der extrem energiesparend ist, sowie der bekannte SX1276 LoRa Chip von Semtech. An der Rückseite befindet sich ein 4-Poliger Anschluss, über den die Firmware aktualisiert werden kann. Außerdem wird über diese Schnittstelle eine serielle Verbindung zum LHT65 aufgebaut, worüber der Sensor konfiguriert wird. An der Vorderseite befindet sich eine mehrfarbige Status-LED, ein QR-Code sowie die Typenbezeichnung. An der Unterseite befindet sich ein Taster und ein Klinkenanschluss für den externen Sensor (DS18B20).
In der Packung befindet sich ein Sticker mit vielen Schlüsseln (Keys), welche für die Registrierung im LoRaWAN Netzwerk benötigt werden. Selbstverständlich können, falls notwendig auch alle Schlüssel im Gerät geändert werden. Grundsätzlich ist dies bei OTTA nicht notwendig, da jede Node mit eindeutigen Keys ausgeliefert wird. Jede Node kann nur einmalig mit den Hersteller-Keys bei TTN registriert werden. Folgende Keys werden für die OTTA-Registrierung benötigt:
Vor der eigentlichen Sensor-Registrierung muss eine Application angelegt werden. Die Application umfasst alle Sensoren, Schnittstellen und den zentralen Decoder (Payload Formatter in V3). Werden später weitere baugleiche Sensoren in Betrieb genommen, so können diese in die bereits bestehende Application integriert werden. Die Application-ID sowie optional ein Name & eine Beschreibung können frei gewählt werden.
Der Sensor kann entweder über die Repository oder manuell hinzugefügt werden. Für dieses Beispiel wurde die manuelle Variante gewählt, da über diese Variante auch Sensoren hinzugefügt werden können, die in der Repository nicht existieren. Folgende Einstellungen werden in Europa für LHT65 gewählt:
Nach dem Klick auf "Register end device" wird das Gerät angelegt und angezeigt. Das Gerät kann im nächsten Schritt aktiviert werden.
An der Unterseite vom LHT65 befindet sich ein Taster, der zur Aktivierung für etwa drei Sekunden betätigt wird. Die grüne LED leuchtet während dieser Zeit dauerhaft. Der JOIN-Request wird gesendet und der Sensor wartet auf die Zuweisung der Keys vom Netzwerk-Server. War der JOIN-Request erfolgreich, leuchtet die blaue LED kurz auf. Anschließend werden bereits die ersten Messwerte an TTN gesendet. Folgender Screenshot zeigt die hexadezimale Payload:
Der Uplink Payload Formatter (vormals Decoder) wandelt die vom Gerät encodierte Payload wieder in die einzelnen Messwerte um. Es handelt sich hierbei um einen JavaScript, der das hexadezimale Payload-Array mittels Bit-Shifting wieder in die einzelnen Bestandteile zerlegt. Weitere Informationen und Beispiele über die LoRaWAN-Payload können in diesem Artikel nachgelesen werden. Folgender Screenshot zeigt einen Teil vom Payload-Formatter:
Folgender Payload-Formatter (Decoder) wird als Javascript eingefügt:
//Payload decoder for LHT65 with external DS18B20 function Decoder(bytes, port) { var batt_v = ((bytes[0]<<8 | bytes[1]) & 0x3FFF)/1000; var temp_int = ((bytes[2]<<24>>16 | bytes[3])/100).toFixed(2); var temp_ext = ((bytes[7]<<24>>16 | bytes[8])/100).toFixed(2); var hum_int = ((bytes[4]<<8 | bytes[5])/10).toFixed(1); var ext_sen = { "0":"No external sensor", "1":"Temperature Sensor", }[bytes[6]&0x7F]; return { Ext_sensor: ext_sen, BatV: batt_v, TempC_SHT: temp_int, Hum_SHT: hum_int, TempC_DS: temp_ext, }; }
Unter dem Reiter "Live data" sollten jetzt neben der Payload auch die decodierten Sensordaten angezeigt werden:
Klickt man auf die Zeile, so öffnet sich ein Fenster, wo alle Daten im JSON-Format angezeigt werden. Hier findet man unter anderem auch die Signalstärken und IDs von den Gateways, welche diese Daten empfangen haben. Exakt im gleichen Format werden so auch die Daten an die HTTP-Integration (Webhook) weitergegeben.
Das LoRaWAN-Netzwerk kümmert sich primär nur um die Übertragung der Datenpakete. Für die Auswertung und Speicherung der Daten ist der Anwender selbst zuständig. TTN bietet hier viele Schnittstellen zu unterschiedlichen Diensten an, wo die Daten nach Empfang weitergeleitet werden können. Beliebt sind MQTT-Verbindungen oder HTTP-Requests. Im nächsten Artikel geht es um die Einrichtung einer kleinen PHP-Applikation, welche die Daten über HTTP-Post von TTN entgegennimmt, in eine Datenbank speichert und auf einer Webseite anzeigt.
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