LoRaWAN 2021 - Stromsparende Funkübertragung mit dem Arduiuno

Funkübertragung mittels LoRaWAN am praktischen Beispiel einer Arduino Sensor-Messwert-Erfassung und empfängerseitige Messwertverarbeitung und Endbenutzerschnittstelle mittels Android-App.

Internet of Things - Das Internet der Dinge

Die Digitaltechnik hat unser Leben so radikal verändert wie fast keine andere Erfindung. Nachdem Computer sich allmählich auch in Privathaushalten durchgesetzt hatten, entwickelte sich die Vision, mit Sensoren ausgestattete Objekte nahtlos in die Umwelt zu integrieren. Man spricht vom „Internet der Dinge“.

Während mittlerweile schon etwa 30 Milliarden Geräte mit dem Internet verbunden sind, prognostiziert das Forschungsinstitut Statista für das Jahr 2025 etwa 75 Milliarden IoT-Geräte.

Um dies zu ermöglichen, soll auch die Funktechnologie LoRaWAN zum Einsatz kommen. LoRaWAN ist nicht nur deutlich energieeffizienter als herkömmliche Mobilfunknetze, sondern auch finanziell günstiger sowohl was Anschaffungskosten der Hardware als auch Mobilfunkverträge betrifft, die andernfalls nötig wären. Auch die maximale Reichweite ist deutlich größer als beim herkömmlichen Mobilfunk.

LoRaWAN - Long Range Wide Area Network

In diesem Projekt wollte ich die Praxistauglichkeit von LoRaWAN anhand des Beispiels einer kleinen Wetterstation prüfen. Zudem wurden technische Daten wie z.B. die Reichweite untersucht. Verwendet wurden für die Versuche das „Dragino LoRa Shield“ zusammen mit einem Arduino UNO.

Zum Testen der Reichweite wurde das Sendemodul auf dem 517m hohen Berg Melibokus platziert. Zwischen Sender und Empfänger herrschte somit ein Höhenunterschied von in etwa 420m. Die Messergebnisse waren von der Signalstärke erstaunlich gut, es waren ohne Probleme Entfernungen von 10km und mehr möglich.

Bei der Messung kam es je nach Position zu lokalen Schwankungen. Da die gemessene Signalstärke jedoch nie „zu gut“ sein kann, betrachten wir nur die besten Messwerte. Beim Blick auf den 1., 4. und 5. Wert ergibt sich ein nahezu perfekt linearer Signalabfall (grüne Linie im Signalstärke-Diagramm). Zwischen dem ersten und letzten Messpunkt lag trotz einer Entfernung von 7,8km gerade einmal eine Differenz von 4 dBm.

Lokale Hindernisse wie z.B. Häuser und Bäume haben jedoch einen großen Einfluss auf die Signalstärke. Besteht kein Sichtkontakt, sinkt die Signalstärke schnell ab. Bereits einige Bäume führten zu einer Dämpfung von mehr als 10 dBm.

Wetterstation

Anschließend wurde der LoRaWAN-Sender mit Sensoren ausgestattet. Als Temperatursensor wurde der digitale Thermometer-Baustein DS18B20 und zur CO2 Messung der SGP30 verwendet. Als Gehäuse diente eine Abzweigdose aus dem Elektroinstallationsbereich.

An den Empfänger wurde außerdem ein LCD-Display und eine selbstgebaute LED-Bar angeschlossen. Darüber sollten die empfangenen Messwerte dargestellt werden.

Die LED-Bar funktioniert über zwei in Reihe geschaltete Schieberegister. Dadurch lassen sich alle 16 LEDs über nur zwei Arduino-Pins betreiben. Zum Aktualisieren wird ein HIGH/LOW-Wert durch das Schieberegister geschoben. Mit jedem neuen Wert rutschen dabei die vorherigen Werte um eine Stelle nach hinten, bis der letzte Wert hinten „rausfällt“. Wird der Vorgang 16-mal wiederholt, ist die gesamte Anzeige aktualisiert.

Android App

Als „Sahnehäubchen“ habe ich zusätzlich noch eine Android-App programmiert, die die gemessenen Daten in Echtzeit anzeigen kann und die Auswahl von Gerätenummer und Sensortyp ermöglicht. Zusätzlich ist es auch möglich, sich die Daten der vergangenen Tagen anzeigen lassen.

Der nebenstehende Screenshot zeigt die Entwicklung der Raumtemperatur während und nach dem Lüften.

Doch wie kommen die Daten überhaupt aufs Handy? Zuerst werden die empfangenen Daten über die serielle Schnittstelle an einen PC übertragen. Dort läuft ein Programm, das die übermittelten Daten weiterverarbeitet und auf die Webseite iotplotter.com hochlädt. Diese Seite bietet kostenlos das Speichern und Visualisieren von Messwerten an. So kann die Android-App jederzeit über die Webseite auf die Daten zugreifen und diese anzeigen.

HINWEIS: Keine Bange, die Android-App habe ich lediglich aus Eigeninitiative entwickelt. Jedoch handelt es sich dabei selbstverständlich nicht um den Erwartungshorizont eines Elektrotechnik- oder Informatikschülers.

Laborbericht & Programmcode:

Der gesamte Quellcode zu dem Projekt ist auf GitHub zu finden: github.com/fm-sys/LoRaWAN