Bestrebungen, mich mit LoRa und LoRaWAN auseinander zu setzen, hatte ich schon länger. Heute möchte ich Euch am LoRa Developer Kit von Thomas Krenn meine Erfahrungen widerspiegeln. Zum besseren Handling spendierte ich den 2 Platinen noch ein passendes Gehäuse aus dem 3D-Drucker. Gedruckt von der Firma BAM aus Weiden. 

lora developer-kit Thomas krenn
Thomas Krenn LoRa Developer Kit

LoRa vs. LoRaWAN

Einsteigen möchte ich mit ein paar Grundlagen. Wer das schon weiß, der kann auch gleich zum Anwendungsbeispiel springen. LoRa und LoRaWAN dienen der drahtlosen Übertragung von Signalen über eine Reichweite von bis zu 10 Kilometern. 

Was ist LoRa?

LoRa (Longe Range) steht für den Funkstandard und die Übertragungstechnik. Die Geräte funken in Deutschland im 868-MHz-Band, die Frequenz ist länderabhängig. Mit 0,3 bis 50 kbit/s ist die Übertragungsgeschwindigkeit deutlich niedriger als bei WLAN oder Mobilfunk.

Für die Übertragung von Bildern, Sprache oder Videos ist es nicht geeignet, sondern für Anforderungen im IoT (Internet of Things) konzipiert. 

Was ist LoRaWAN?

LoRaWAN ist das verwendete Kommunikationsprofil des Funkstandards. Es gehört zu den physischen Protokollschichten wie etwa Ethernet oder Bluetooth. Es ist ein Industriestandard und wird von der LoRa Alliance verwaltet.

Die Übertragungstechnik LoRa ist eine patentgeschützte Entwicklung des US-Unternehmens Semtech. 

Die Vorteile sind geringe Investitionskosten, niedrige Betriebskosten und eine hohe Zuverlässigkeit. Flexible Schnittstellen zu Cloud- und IoT-Systemen über Open Source oder kommerzielle Implementierungen sind verfügbar.

LoRaWAN Anwendungsbeispiel

Das Developer-Kit, erhalten im September 2021, besteht aus zwei Bords mit ESP32-Microcontroller, LoRa-Modul, OLED-Display und einem BME280 Temperatursensor. Mein LoRaWAN Anwendungsbeispiel ist eine Peer-to-Peer Verbindung (Sender-Empfänger-Direktverbindung) und ist nicht mit dem TTN (The Things Network) verbunden. Der Transceiver überträgt Temperatur, Luftfeuchtigkeit und Luftdruck an den Receiver. Die Messwerte werden auf dem Display angezeigt. Die Übertragung vom ESP32 per MQTT und die Speicherung im ioBroker möchte ich in der nächsten Ausbaustufe realisieren. Aber immer der Reihe nach!

Vorbereitung des LoRa-Kits

Transceiver Case LoRa
Transceiver Case

Bevor es los geht, bestellte ich die 4 Gehäuseteile aus dem 3D-Drucker. Die Firma BAM aus Weiden in der Oberpfalz bietet u. a. für Individualfertigungen mit einer „Losgröße 1“ perfekte Bedingungen. Die vier „STEP-Dateien“ sind schnell über die Website hochgeladen. Die Preise je Gehäuseteil werden in Echtzeit berechnet und als 3D-Modell im Browser dargestellt – super professionell! Mit der Gewissheit, den verbindlichen Liefertermin zu kennen, beschäftige ich mich mit der Einrichtung der Entwicklungsumgebung Arduino IDE und dem Heltec Board ESP32.

Damit der Programmcode funktioniert, sind weitere Libraries (Library OLED Display, Library BME 280 Sensor und Library LoRa Funktionalität) erforderlich. Eine ausführliche Beschreibung zur Einrichtung stellt Thomas Krenn in seinem Wiki bereit. Nachdem alles vorbereitet ist, sind auch die Gehäuseteile angekommen. Der Zusammenbau erfordert etwas Geschick und Liebe zum filigranen Arbeiten, um die LoRa Nodes (Platinen) zu verbauen. Am Ende passt aber alles ins Gehäuse, der BME280 ist am Transceiver angelötet und die Antennen auf beiden ESP32 Boards aufgeklipst. 

Kontaktierungen ESP32 und BME280 Sensor

Zum fehlerfreiem Betrieb muss der BME280 korrekt mit den Pins auf dem Heltec Board verlötet werden. Optional geht auch stecken, wenn Ihr kein Gehäuse für Euren Anwendungsfall benötigt.

//Pinbelegung//
PIN 15 = SCL
Pin 4 = SDA
GND = GND
3.3V+ = VIN

Einrichtung der Software für den LoRa Transceiver und LoRa Receiver

Los geht’s! Das Aufspielen der Software kann beginnen. Für den Transceiver und Receiver sind verschiedene Programmcodes notwendig. Wird der Programmcode nicht angepasst, läuft das Flashen problemlos und zügig durch. Die erste Individualisierung folgt 2 Tage später und der Anpassung der Startgrafik. Dazu ist es notwendig, diese auf 128×64 Pixel zu skalieren, in schwarz/weiß umzuwandeln und als xbm zu exportieren. Das Ergebnis ist ein HexCode im Textformat, welcher im Skript eingesetzt wird. Anschließend wird der ESP32 neu geflashed. Die ersten Versuche bringen Fehlermeldungen, weil ich beim Einsetzen zu viel entfernt hatte oder einfach das Semikolon gefehlt hat. Der Anfang ist gemacht, dass HEIMNETZEN.de Logo erscheint beim Bootvorgang.

Konfiguration ESP32 WiFi

Dieser Abschnitt beschreibt die weitere Anpassung des Programmcodes, um den ESP32-Microcontroller mit dem bestehenden LoRa Programmcode ins WLAN zu implementieren. Es ist die Basis, dass ich die ermittelten Werte des BME280 Temperatursensors perspektivisch im ioBroker auf den Raspberry Pi darstellen kann. 

Die Konfigurationsdatei muss zu Beginn des Programmcodes um folgende Zeile erweitert werden:

#include <WiFi.h>

Im Programmteil „void Setup () {“ fügt Ihr die nachfolgenden Zeilen ein und passt die SSID und das Password auf Eure Bedingungen an. Mit den 2 „//“ lassen sich Kommentare und Hinweise im Programmcode hinterlegen.

// Laden WLAN-Einstellungen
const char* ssid = "WLAN-SSID"; // Euer WLAN SSID
const char* password = "WLAN-PW"; // Euer WLAN-PW
WiFiClient espClient;
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
lora boot heimnetzen

Die große Community hilft dabei, notwendiges Wissen anzulesen. Aber wie so oft, funktioniert vieles über Probieren und Recherchieren. Eingebunden habe ich den ESP32 im Netzwerk und die Übertragung der 3 Messwerte von Transceiver zu Receiver laufen weiterhin problemlos. 

Aktuell beschäftige ich mich mit der Übertragung der Messwerte über MQTT an den ioBroker zu senden mit dem Ziel, diese in meine Smart Home Topologie zu integrieren. 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert