beelogger

TTN – LoRaWAN™

Hier möchten wir euch ein Projekt eines engagierten beelogger-Freundes vorstellen.
Wie üblich haben wir eine umfassende Anleitung erstellt. Zum Nachbau ist eine individuelle Einarbeitung in die LoRaWAN™ und die TheThingsNetwork Thematik hilfreich.
Hinweis: Uns wurde berichtet, dass TTN in der Schweiz nicht zur Verfügung steht.

Allgemeine Informationen zu LoRaWAN™ finden sich unter LoRa-alliance.org und www.LoRa-wan.de/, technische Bedingungen und Details für den Betrieb von LoRaWAN™ in der EU sind im Dokument LoRawantm_regional_parameters_v1.1rb_-_final.pdf enthalten.

Bevor man mit LoRaWAN™ startet, sollte die Verfügbarkeit geprüft werden. Unter The-Things-Network ttnmapper.org/  können die örtlichen Gegebenheiten eingesehen werden.
Alternativ könnte eventuell auch ein eigener LoRaWAN™-Access-Point eingerichtet werden. Zum Aufbau mit einem Raspberry und einem LoRa-Modul findet sich Anleitungen im Netz (1), (2), (3).

Auf Seite des community-Webservers sind die Vorraussetzungen geschaffen worden aus dem TTN-Netz die Daten eines beeloggers mit LoRa-Modul entgegen zu nehmen.
Im derzeitigen Aufbau des beelogger-LoRa werden die Messdaten mehrerer Waagen, drei Sensoren, sowie Akku- und Solarspannung unterstützt.

Der beelogger-Solar wird für das LoRa-/RFM95-Modul erweitert durch ein LoRa-Shield oder eine Lochrasterplatine.
Für den beelogger-Universal haben wir die Nutzung im Bereich des Lochrasterfeldes für den Einbau des RFM95-Modul vorgesehen.

Das beelogger-LoRa-System unterstützt ein EE-Prom auf Grund der Rahmenbedingungen von LoRaWAN™ bzw. TTN nicht.

Programmcode:

In den Programmcode müssen neben den Kalibrierwerten für die Spannungsmessung und den Wägesensoren auch die Verbindungsdaten aus der TTN-Konfiguration eingetragen werden.
Der Prgrammcode benötigt die beelogger-Bibliotheken.

Das beelogger-LoRa-System verfügt über keinen Rückkanal vom Server.
Die Steuerung der Intervallzeiten erfolgt daher nicht über die Fernsteuerung vom  Webservers sondern in der Konfiguration des Sketch.
Einstellbar sind das Standard-Intervall “WeckIntervall_default” und die Aktivierung der individuellen Intervallsteuerung “WeckIntervall_aktiv”.
Bei Aktivierung der individuellen Intervallsteuerung kann zusätzlich ein Winterintervall “WeckIntervall_Winter_aktiv” aktiviert und konfiguriert werden.
Intervalle unter fünf Minuten werden vom System auf 5 Minuten umgestellt, damit die Bedingungen der Nutzung von LoRaWAN™/TTN eingehalten werden.

Die Voreinstellung haben wir so vorgenommen.

Weitere Hinweise zur Konfiguration der Sensoren finden sich unter “alle Programmcode”.

aktueller LoRa-Sketch:

Version 191203

 Erster LoRa-Sketch
 mit eingeschränkter Sensoruntertützung

Version 200114

  – TX-Timeout Abfrage ergänzt, 
  – konfigurierbare Intervallzeiten
  – zwei Waagen werden unterstützt

LORA_MULTI_210214

  – LoRa sequence number in EE-Prom
  – LoRaWAN™/TTN Prefix ergänzt
  – Zuordnung Sensoren erweitert
  – aktuelle HX711-Lib Version 0.7.4
  – LoRa DataRate SF7
  – System bis zu vier Waagen

LORA_MULTI_210214

Hinweis:  Benötigt aktuelle beelogger-Arduino-Libs


LoRa-QUAD, Sketch und Payload-Converter:
Quad ist in LoRa-Multi-Sketch enthalten

Die LMIC-Bibliothek für das LoRa-RFM95-Modul – https://github.com/matthijskooijman/arduino-lmic – wurde für den beelogger-Sketch angepasst. Getestet mit Version enthalten im beelogger-Library-Paket

 

LoRa-Konfiguration:

Zunächst muss man sich kostenlos einen kostenlosen Account auf der Seite: https://www.thethingsnetwork.org/ einrichten.

Dann wählt man die CONSOLE an… und klickt auf APPLICATIONS:

Um Daten empfangen zu können, muss eine Application mit Devices erstellt werden.

Man benötigt für jeden beelogger eine eigene Application, da man immer nur ein Weiterleitungsziel pro Application angeben kann.

Mit “Add application” bestätigen und die Application auswählen:

Jetzt muss man noch ein Device erstellen für die Application, die die Daten senden wird.

Hier eine beliebige DeviceID und DEVICE EUI eingeben:

Dann mit “Register” bestätigen…

Nun ist das Device angelegt und es müssen noch ein paar Einstellungen gemacht werden:

Dafür auf Settings klicken.

Und dort ändern:

  •  Activation Method = ABP

  • bei Frame Counter Checks den angwählten Haken abwählen (deaktiviert)

Mit “Save” bestätigen.

Jetzt finden wir in der Device-Overview-Ansicht die Daten, die wir später im Arduino Sketch in der Konfiguration benötigen:

  • Device Address

  • Network Session Key (Mit einem Klick auf das Augensymbol wird der Key in der MSB Schreibweise angezeigt, die für die Konfiguration im Sketch benötigt wird.)

  • App Session Key (Mit einem Klick auf das Augensymbol wird der Key in der MSB Schreibweise angezeigt, die für die Konfiguration im Sketch benötigt wird.)

Nun nach oben auf die Seite.

Jetzt muss in der Application noch das Payload-Format erstellt werden:

Für das Payload-Format diese Javascript-Datei downloaden und den Inhalt in das Decoder-Feld reinkopieren und abspeichern:

Version 200114  Erstfassung
Version 20210128  “0”-Werte umrechnen
Version 20210214 Update für DUO-/Quad-Systeme   LORA_Payload_20210214       LORA_QUAD_Payload_210214
 

Nun müssen die Daten vom TTN noch an den beelogger-communityServer gesendet werden:

Dazu den Reiter Intergrations auswählen … und eine neue “Integration” hinzufügen:

Hier wählt man “HTTP Integration” aus und trägt unter

  • Process-ID: einen sinnvollen Namen ein
     
  • Access Key anklicken und default key auswählen.
     
  • URL: seine Daten in die Maske ein,
    wobei natürlich USERNAME mit dem beeloggerAccountName und das entsprechende Passowort für den beelogger individuell ersetzt werden muss.
    Beispiele:
    System mit einer Waage:
    https://community.beelogger.de/UserName/beelogger1/beelogger_log.php?Passwort=deinpasswort&LORA=1
     
    System mit zwei Waagen:
    https://community.beelogger.de/UserName/Duo1/beelogger_log.php?Passwort=deinpasswort&LORA=1

    Mit “Add integration” die Aktionen abschliessen.

 

Test der Verbindung TTN zum beelogger-Server

Die Integration kann im TTN mit Senden einer Test-Payload.
Für einen einfacher beelogger (z.B. beelogger1) hier eine Test-Payload:

Diese wird unter Applications, Device, simulate Uplink eingetragen und gesendet.

Wenn die Daten nicht ankommen, den unter Integration eingetragenen Link genau kontrollieren oder auch komplett neu eintragen.

TTN Seite zum Eintragen einer Test-Payload

 


Systemtest beelogger

Den Sketch mit den Keys und der Device Address in den beelogger flashen. 

Das RFM95-Modul immer mit einer Antenne, ggf. “Klingel-” Draht 86mm lang ab Lötauge, betreiben.

Einen Testsketch haben wir für den LoRa-beelogger nicht erstellt.
Es kann der normale Sketch verwendet werden, nachdem in die Multi_LORA_config.h die Daten für
– Device Adress
– Network Session Key
– App Session Key
eingetragen sind.

Network Session Key und App Session Key aus dem TTN werden im Hexadezimalformat zu je zwei Zeichen in die Multi_LORA_config.h eingetragen.
Beispiel:
// Networks Session Key aus dem TTN:   1234567890ABCDEF2A3B4D5EE2E5196C
static const u1_t PROGMEM NWKSKEY[16] = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x2A, 0x3B, 0x4D, 0x5E, 0xE2, 0xE5, 0x19, 0x6C };

Die Sensoren, soweit vorhanden, konfigurieren und in der beelogger_config.h den Wert von myDEBUG auf 1 setzen.
Den Sketch laden und im Monitor die Ausgabe ansehen. Hier ein Beispiel mit nur einer Waage:

Die Daten im Beispiel bedeuten:
Temperatur 21,00°C
Akku: 4,713V
Solar: 4,579V
Gewicht: 0,141kg
Einschaltzeit 0 Sekunden ( =Wert beim ersten Senen nach Reset)

Ist eine der Leitungen NSS, MOSI, MISO, SCK oder 3,3V nicht korrekt angeschlossen wird diese Fehlermeldung angezeigt. Ebenso bei falschem Modul und auch fehlerhafter Einstellung in der LMIC-Bibliothek.

Wenn die Leitung von DIO-0 bzw. DIO-1 nicht richtig verschaltet ist, wird eine Time-Out Meldung angezeigt.

 

Inbetriebnahme

Nach erfolgreichem Test kann das System mit den gewünschten Sensoren ausgestattet werden. Nach erfolgter Konfiguration und Laden auf den beelogger ist das System betriebsfertig.
Je nach Ausbaustufe und Auswahl der Sensoren wird mehr Systemspeicher benötigt als verfügbar ist. Wird der Wert myDEBUG auf 0 gesetzt, steht mehr Speicher zur Verfügung.
Bitte für den Dauerbetrieb immer den Wert myDEBUG auf 0 setzen.

Sobald die Daten vom LoRa-beelogger im TTN ankommen, werden sie automatisch an den beelogger-Webserver übertragen und stehen wie alle anderen Daten für den User im communityAccount zur Verfügung.
Im der TTN-Konfiguration können die eingehenden Daten unter Application und der erstellten Application (im Beispiel beelogger01) bei “Data” eingesehen werden.

Vom beelogger eingehende Daten, Beispiel:

TTN Anzeige eingehende beelogger Daten

 LoRa™, LoRa™ Alliance und LoRaWAN™ sind eingetragene Warenzeichen der Semtech Corporation