beelogger

LoRa – LoRaWAN™ – TTN

LoRa steht für “Long Range” und ist eine Technologie, um mit einer speziellen Modulation mit sehr geringem Stromverbrauch drahtlos über große Reichweiten zu kommunizieren. 
Auf dieser Technologie baut LoRaWAN™ als ein spezielles Netzwerkprotokoll auf, welches von der LoRa-Alliance (https://lora-alliance.org) als offene und gemeinnützige Organisation aufgesetzt und gepflegt wird.
Generell sind die verwendeten Funkfrequenzen im jeweiligen Land lizenzfrei und können unter bestimmten Regelungen von jedem genutzt werden.

Als eine communitybasierte Initiative wurde “The Things Network” (TTN) ins Leben gerufen, die LoRaWAN nutzt, um ein offenes und kostenloses Netzwerk zu betreiben. Dieses Netzwerk kann jeder kostenfrei zur Übertragung seiner Daten nutzen. Möglich wird dies u.a. durch die vielen Gateways, die mit dem Netzwerk verbunden sind und kostenlos von Freiwilligen betrieben werden. Ein guter Anhaltspunkt, ob am Standort des beeloggers ein Gateway in Reichweite ist, findet man auf der Seite https://ttnmapper.org. Alternativ könnte auch ein eigenes LoRaWAN-Gateway eingerichtet werden, sofern dieses in Reichweite der Beuten betrieben werden kann.

Zum Nachbau des beelogger mit Anbindung über LoRaWAN und TheThingsNetwork ist eine individuelle Einarbeitung in die Thematik hilfreich.

Auf Seite des community-Webservers sind die Vorraussetzungen geschaffen worden, aus dem TTN-Netz die Daten eines beeloggers mit LoRa-Modul entgegenzunehmen.
Im derzeitigen Aufbau des beelogger-LoRa werden die Messdaten mehrerer Waagen, drei Sensoren, sowie Akku- und Solarspannung unterstützt.
Die Nutzung von TTN für den beelogger erfolgt nicht ganz konform zum LoRaWAN-Standard, da dieser keine “Anweisungen” vom Server umsetzt. Für die eigentliche Funktion hat dies jedoch keine Auswirkungen.

Für den beelogger-Universal haben wir die Nutzung im Bereich des Lochrasterfeldes für den Einbau des RFM95-Modul vorgesehen.

Die beelogger-LoRa-Systeme unterstützen die Nutzung eines EE-Proms auf Grund der Rahmenbedingungen von LoRaWAN bzw. TTN nicht.

Wichtige Hinweise:

Alle ‘LORA’ – beelogger müssen auf den aktuellen Sketch und den aktuellen Payload-Converter umstellen. Dieser erlaubt nur noch ein Double-System. Quad wird nicht mehr unterstützt.

Auch wenn derzeit der beelogger sowie der community-Server die V3 unterstützen, kann nicht sichergestellt werden, dass alle Änderungen von TTN für die Version 3 unterbrechungsfrei umgesetzt werden können.
Inwieweit ‘LORA’ – beelogger im TTN V3 weiterhin problemlos funktionieren werden, kann derzeit nicht beurteilt werden.

Das TheThingsNetwork befindet sich derzeit in einer Umstellung von V2 auf V3. Der Zugang zur Konfiguration im TTN V2 wurde Mitte 2021 deaktiviert.
Obwohl Nutzer die neue Version nutzen müssen, scheint sich das System immer noch im Entwicklungsstadium zu befinden.
Derzeit kommen regelmäßig neue Funktionen hinzu und Fehler werden behoben.

Uns wurde berichtet, dass TTN in der Schweiz nicht zur Verfügung steht.

 

Konfiguration The Things Network

Konfiguration The Things Stack V3

 

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. Die LMIC-Bibliothek für das LoRa-RFM95-Modul – https://github.com/matthijskooijman/arduino-lmic – wurde für den beelogger-Sketch angepasst und ist ebenfalls in den beelogger-Bibliotheken enthalten.

// LoRaWAN NwkSKey, network session key
static const u1_t PROGMEM NWKSKEY[16] = 
                          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
// LoRaWAN AppSKey, application session key
static const u1_t PROGMEM APPSKEY[16] = 
                          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
// LoRaWAN end-device address (DevAddr)
static const u4_t DEVADDR = 0x12345678; // -- Change this address for every node!

Weitere Parameter für die Konfiguration der LORA-Schnittstelle sind das LORA Network-Prefix und die Anzahl der verwendeten Kanäle.
Die Anzahl Kanäle ist je nach Art des Gateway auf 1, 3 oder 8 zu konfigurieren.

// LoRaWAN Network Prefix
static const uint16_t PREFIX = 0x13; // https://www.thethingsnetwork.org/docs/lorawan/prefix-assignments.html 
// example: 0x13 = TTN
// 0x01 = your own local Lora accesspoint

// number of LORA-Channels to be used 1, 3 or 8
// 1 = Single-Channel-Gateway
// 3 = three channels
// 8 = use all channels
#define LORA_CHANNELS 3

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.

#define WeckIntervall_default 10

#define WeckIntervall_aktiv 1 // Manuelle Intervallsteuerung 0 = inaktiv, 1 = aktiv

#define WeckIntervall_Tag 10
#define WeckIntervall_Nacht 30
#define WeckIntervall_Nacht_Anfang 22
#define WeckIntervall_Nacht_Ende 6

#define WeckIntervall_Winter_aktiv 0 // Intervall Winter 0 = inaktiv, 1 = aktiv
#define WeckIntervall_Winter 60 // Intervall in Minuten
#define WeckIntervall_Winter_Anfang 9 // Monat Winterintervall Start
#define WeckIntervall_Winter_Ende 4 // Monat Winterintervall Ende

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

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 & counter 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 (Quad)

LORA_MULTI_210609

 – Anpassung für TTN V3
 – maximal DUO
 – angepasster Payload-Converter
 – mehrere DS18B20

LORA_MULTI_210707

  – Anpassung für TTN V3 / Frame Counter,
  – Konfiguration Anzahl Kanäle
  – maximal DUO, für TTN V3 angepasster Payload-Converter

LORA_MULTI_210829

  – Anpassung für TTN V3 / Frame Counter,
  – Konfiguration Anzahl Kanäle, erweitert für Single-Channel-Gateway
  – maximal DUO, für TTN V3 angepasster Payload-Converter
      LORA_MULTI_210829  LORA_Payload_090621

    Hinweis:  Benötigt aktuelle beelogger-Arduino-Libs 

Das TTN V3 verwendet einen Übertragungzähler (Frame Counter). Die Werte werden im EE-Prom des ATMega abgespeichert. Wird der ATMega durch einen neuen ersetzt muss die Application im TTN neu erstellt und dabei der Frame Counter rückgesetzt werden,TTN Security