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 Reichweiten von 10km und mehr möglich.
Bei der Messung kam es je nach Position zu starken Schwankungen. Lokale Hindernisse wie z.B. Häuser und Bäume haben 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.
Um diese Störungen zu kompensieren, betrachten wir nachfolgend nur die stärksten Messwerte. Beim Blick auf den 1., 4. und 5. Wert ergibt sich in Abhängigkeit zur Luftlinieentfernung ein nahezu perfekt linearer Abfall der Signalstärke (grün-gepunktete Linie im Diagramm). Zwischen dem ersten und letzten Messpunkt lag trotz einer Entfernung von 7,8km gerade einmal eine Differenz von 4 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.
Noch ein kleiner persönlicher Kommentar zum Abschluss:
Liebe nachfolgende HEMS-Schüler, keine Bange! Die Android-App habe ich lediglich aus Eigeninitiative in meiner Freizeit entwickelt, und stellte nicht Kern der Projektarbeit dar. Demnach handelt es sich dabei selbstverständlich bei weitem nicht um den Erwartungshorizont eines Elektrotechnik- oder Informatikschülers. Aber wie man sieht - die Lehrer der HEMS bieten Schülern auch immer wieder Raum für Eigeninitiative und kreative Ideen! Und dafür bin ich der HEMS rückblickend unfassbar dankbar!
Laborbericht & Programmcode:
Der gesamte Quellcode zu dem Projekt ist auf GitHub zu finden: github.com/fm-sys/LoRaWAN