LoRaWAN UDP Packet Forwarder 1
17.12.2024
Elektronik | Funk | Software
Der Technik-Blog
Das Helium-Netzwerk ist eines der größten globalen LoRaWAN-Netzwerke. In einigen Gebieten ist die Netzabdeckung bereits besser als die von TTN. Obwohl es sich hierbei um ein kommerzielles LoRaWAN-Netzwerk handelt, ist es auch für Maker durchaus interessant. In diesem Artikel geht es um die Einrichtung von Sensoren im Helium-LoRaWAN. Als Beispiel kommt der bereits bekannte LHT65 Temperatur/Feuchte-Sensor von Dragino zum Einsatz.
So funktioniert das Helium LoRaWAN
Dragino LHT65
YouTube Video zum Projekt
LHT65 Manual von Dragino
Das Helium-LoRaWAN ist aufgrund des beliebten HNT-Mining innerhalb kürzester Zeit stark gewachsen. Wie auch bei TTN (The Things Network) handelt es sich dabei um ein weltweites LoRaWAN-Netzwerk. Im Gegensatz zu TTN, wo die Nutzung kostenlos ist, muss man bei Helium pro 24 Byte einen Data-Credit (DC) für die Datenübertragung zahlen. Aktuell bekommt man bei der Registrierung einmalig 10 000 DCs kostenlos gebucht, was für den Anfang auch völlig ausreichend ist. Nach Verbrauch dieser Einheiten kann man weiteres Datenguthaben gegen eine Gebühr aufladen. Ein LHT65, der alle 10 Minuten Daten an Helium sendet, kostet im Jahr weniger als einen Euro. Außerdem unterstützt Helium nur OTTA und kein ABP, was aber für die meisten Sensoren kein Problem darstellen sollte.
Die Helium Console bildet die zentrale Verwaltung für alle Sensoren. Wer Erfahrungen mit TTN hat, wird auf den ersten Blick viele Features vermissen. Zum Beispiel gibt es bei Helium-LoRa keine Application, wo Sensoren, Schnittstellen und En/Decoder für eine bestimmte Sensorgruppe zusammengefasst werden. Bei Helium gibt es anstatt der Application sogenannte Flows, die jedem Sensor zugeordnet werden. Dafür gibt es aber auch wieder andere Features, wie zum Beispiel einen Zugriff auf das Diagnose-Tool von einem Hotspot bzw. Gateway. Die grundlegenden Funktionen wie ein Payload-Coder oder das OTTA-Verfahren von LoRaWAN sind aber bei allen Netzwerken gleich.
Unter dem Menüpunkt Devices kann ein neuer Sensor eingefügt werden. Alle für OTTA notwendigen Schlüssel werden bereits von Helium generiert. Man kann diese Schlüssel übernehmen, indem man die Hersteller-Schlüssel auf dem Sensor überschreibt. Selbstverständlich kann man aber auch die vorkonfigurierten Schlüssel vom Hersteller verwenden. Dadurch erspart man sich die Umprogrammierung des Sensors. Folgender Screenshot zeigt den Registrierungsprozess in der Helium-Console:
Nachdem das Gerät angelegt wurde, scheint es in der Device-List auf. Es kann bis zu 20 Minuten dauern, bis der Sensor vollständig registriert ist. Man sollte daher etwas abwarten, bis man den Sensor erstmalig einschaltet. Folgender Screenshot zeigt den zuvor eingerichteten Sensor:
Etwa 20 Minuten nach der Registrierung kann der jeweilige Sensor eingeschaltet werden. Der Sensor sendet dabei einen JOIN-Request aus. Jeder Hotspot, der den JOIN-Request empfangen hat, leitet dieses Paket an den Netzwerk-Server weiter. Können die Schlüssel einem Device zugeordnet werden, so wird über einen Hotspot ein JOIN-Accept-Paket mit den Session-Keys und einer Device-Address an den Sensor zurückgesendet. Der Sensor übernimmt diese Schlüssel und kann ab sofort Daten in das Helium-LoRaWAN senden. Um einen LHT65 zu aktivieren, drückt man den User-Button an der Rückseite für einige Sekunden:
Folgender Screenshot zeigt in der Helium-Console einen erfolgreichen JOIN-Vorgang:
Jede Zeile im Event-Log kann geöffnet werden. Hierbei sieht man zum Beispiel, welche Hotspots ein Datenpaket empfangen haben. Außerdem sieht man die Signalstärke, Frequenz, das Rauschverhältnis (SNR) und den Spreading-Faktor:
Bei LoRaWAN versucht man so wenig wie nur möglich an Bytes über Funk zu senden. Daher werden Sensordaten nicht im Klartext übertragen, sondern komprimiert. Ein Beispiel: Der Temperaturwert “-12,50°C” würde im Klartext rund acht Bytes benötigen. Ein Encoder im Sensor kann den Temperaturwert mit 100 Multiplizieren und mit einem Offset versehen, sodass der Wert ohne Kommastelle und negativen Vorzeichen in einem 16-Bit Integer (Ganzer Zahlenwert) untergebracht werden kann. Dadurch werden für die gleiche Information nur noch zwei Bytes benötigt. Der Decoder wiederum führt gegenteilige Operationen zum Encoder durch und wandelt den Temperaturwert wieder in die ursprüngliche Formatierung um. Weitere Informationen über die Komprimierung der Nutzdaten gibt es in diesem Artikel: Die LoRaWAN Payload. Ein Decoder wird in der Regel im LoRaWAN-Netzwerk hinterlegt, kann aber oft auch in die Application integriert werden. Unter dem Menüpunkt “Functions” wird für einen LHT65 ein Custom Script angelegt:
Das Decoder-Script wird bei einem fertigen Sensor vom Hersteller zur Verfügung gestellt. Für den LHT65 mit DS18B20 kann folgender Decoder verwendet werden:
//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, }; }
Dieser Decoder wird als Custom Script eingefügt:
Nach einem erfolgreichen JOIN-Request sendet der Sensor in einem bestimmten Intervall die Messwerte in das Helium-LoRaWAN. In der Console werden die empfangenen Datenpakete gezählt und die entsprechenden DCs abgebucht:
Das Helium-Netzwerk kümmert sich nur um den Transport der Daten, jedoch nicht um die Darstellung. Unter dem Menüpunkt Integrations muss mindestens eine Schnittstelle hinzugefügt werden, wo die Daten weitergeleitet werden. Das kann eine eigene Homepage, ein Storage-Dienst oder eine öffentliche Cloud sein. Weitere Beispiele dazu folgen im zweiten Teil.
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