AEQ-WEB

Arduino LoRa Shield
Arduino
06.10.2018

Arduino LoRa Shield

Für dieses Projekt gibt es auch ein Video auf Youtube: Arduino LoRa Shield


LoRa – Eine Vernetzung für IoT

LoRa ist ein relativ neuer, jedoch bereits gut verbreiteter Standard für die Vernetzung von Internet of Things (IoT). Eine detaillierte Information zu diesem neuen Standard gibt es in unserem Beitrag LORA Grundlagen. In diesem Artikel zeigen wir, wie das LoRa-Shield mit dem Arduino funktioniert und wie die Daten zwischen den Boards ausgetauscht werden. LoRa wird dabei im Direct-Mode verwendet und es wird daher kein Gateway oder eine Infrastruktur benötigt. Der Datenaustausch erfolgt als Punkt-zu-Punkt Verbindung.


LoRa Shield für Arduino

Auf Amazon gibt es bereits fertige Shields für das Arduino Board mit der LoRa Technologie. Als Chip wird dabei der SX1276 von Semtech verwendet. Das Shield arbeitet ähnlich wie ein Ethernet-Shield über die SPI-Schnittstelle. Da vom Shield einige Pins benötigt werden, bleiben beim UNO neben den gesamten analogen Inputs noch folgende PINs frei: D0, D1, D3, D4 und D5. Das Shield benötigt aufgrund der geringen Sendeleistung keine externe Stromversorgung.


RadioHead Library Frequency Modification

Library und Modifikation

Das Shield benötigt eine zusätzliche Library. Verwendet wird dabei die recht umfangreiche Bibliothek von RadioHead. Diese kann von der Webseite des Herstellers heruntergeladen werden und in das Library-Verzeichnis vom Arduino DIE extrahiert werden. Damit das Shield richtig funktioniert, muss eine Datei modifiziert werden. Im Verzeichnis der RadioHead-Bibliothek befinde sich die Datei RH_RF95.cpp. In dieser Datei sucht man nach der Funktion „setFrequency“. In der Klammer ist standardmäßig die Frequenz von 434.0 MHZ eingetragen. Diese Frequenz muss auf 868.0 MHz umgestellt werden. Anschließend wird das File gespeichert und der Upload vom Beispielcode auf das Arduino Board kann beginnen.


Der Beispielcode

Der Beispielcode ist einvereinfachte Lösung, vom Beispielcode, der mit der Library mitgeliefert wird. Die Beispielcodes können am Ende des Artikels heruntergeladen werden.
Slave
Zuerst wird der Slave bzw. Client an den Computer angeschlossen. Auf den Slave wird der vorgesehene Beispielcode hochgeladen. Der Slave versucht jetzt immer wieder, den Master zu erreichen. Das wird erst funktionieren, sobald der Master bespielt ist und in Reichweite ist. Die entsprechende Statusinformation wird über den Serial-Monitor ausgegeben.
Master
Wenn der Slave fertig programmiert ist, kann das zweite Arduino Board mit dem LoRa Shield an denselben oder einen anderen Computer angeschlossen werden. Wichtig ist, dass der richtige COM-Port ausgewählt ist. Der Master geht unmittelbar nach dem Upload vom Code in Empfangsbereitschaft. Wird ein Datenpaket vom Slave empfangen, so sendet der Master sofort eine Antwort zurück an den Slave. Auf beiden Seiten wird dann auch die Signalstärke angezeigt, mit der die Daten am Empfänger ankommen.


LoRa Shield Data Exchange between two Arduino Boards

Der Vorteil von diesen beiden Beispielcodes ist, dass hier ständig eine Datenübertragung läuft und dadurch die Ausbreitungsbedingungen der beiden Funkmodule sehr gut getestet werden können. In weiterer Folge ist es dann relativ einfach, die Programme so umzuschreiben, dass Beispielsweise ein Arduino-Board als eine Messstation mit Sensoren fungiert. Das zweite Board verfügt über ein Display, dass dann die aktuellen Daten anzeigen kann. Die beiden Module können dann auf freier Sicht über eine Distanz von mehreren Kilometern miteinander kommunizieren.


Fazit

LoRa Funkmodule sind im Vergleich zum CC1001, NRF24 oder FS1000A sicherlich die beste Lösung. Ein großer Vorteil ist, dass die Daten sicher ankommen und auch die Reichweite und Frequenz sehr gut ist. Daher ist diese Technik eine sehr gute Lösung, gerade auch für Einsteiger.




Von Alex @ AEQ-WEB 141