Events

30.01.2022: TTN Ubidots Integration

06.02.2022: Einfacher LC-Oszillator

Eletronik | Funk | Software

Der Technik-Blog

  • Social Media

    YouTube

    Werbung:


    Neue Artikel


    Der Technik-Blog

    Helium LoRaWAN Einstieg

    Helium LoRaWAN - Sensor registrieren

    Alex @ AEQ-WEB

    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.

    Das Helium LoRaWAN

    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.

    Helium Console

    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.

    Sensor hinzufügen

    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:

    Werbung:

    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:

    Sensor aktiveren

    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:

    Werbung:

    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:

    Decoder einfügen

    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:


    Werbung:

    Datenübertragung prüfen

    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:

    Integration einrichten

    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.


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    ESP32 LoRa Board LoRaWAN TTN ABP Connect

    LoRaWAN & TTN mit ESP32

    • Video
    • DE/EN

    Das ESP32 LoRa Board von Heltec unterstützt LoRa. In diesem Artikel geht es um den Zugang und Datentransfer zu LoRaWAN & TTN

    Weiterlesen
    LoRa ESP32 Library Setup Arduino IDE and Test

    ESP32 LoRa Arduino IDE Setup

    • Video

    In diesem Artikel zeigen wir, wie ein ESP32 LoRa Board im Arduino IDE konfiguriert wird und wie der angepasste Beispielcode für LoRa funktioniert

    Weiterlesen

    Social Media

    YouTube

    Werbung:


    Neue Artikel