
Dragino LoRa Shield: Ideal für LoRa-Anwendungen
Arduino, Dev. Boards, IoT / Smart Tech
LoRa ist ein Netzwerkprotokoll mit dem du viele spannende Projekte verwirklichen kannst. WIr zeigen dir wie! Alles was du brauchst sind zwei Arduinos und zwei LoRa-Shields!
Beim Dragino LoRa Shield handelt es sich um einen Langstrecken-Transceiver, der über einen Arduino-Shield-Formfaktor verfügt. Er nutzt dabei den RFM95W-Transceiver von HopeRF, ein beliebtes Modul, was LoRa-Anwendungen betrifft. Das Dragino LoRa Shield enthält sowohl die komplette Sende- als auch Empfangslogik und funktioniert auf Grundlage einer Open-Source-Library. Im Hinblick auf geeignete Bibliotheken bietet sich bei einem RFM95W-Transceiver die „RadioHead Library“ an. Wir zeigen dir, wie du mithilfe des Dragino LoRa Shields einen LoRa-Sender- und -Empfänger erstellst. Konkret wird ein simpler Chat zwischen Client und Server programmiert.
INHALTSVERZEICHNIS
Was bedeutet LoRa eigentlich?
LoRa ist die Abkürzung für Long Range, eine Funktechnologie, die explizit für IoT-Projekte konzipiert wurde. Ein entscheidender Vorteil bei dieser Technik ist die große Reichweite von bis zu 10 Kilometern, aber auch der vergleichsweise niedrige Energieverbrauch und eine kostengünstige Implementierung zeichnen LoRa aus. Dazu ist die Technologie äußerst flexibel: Sie kann als eigenständige Punkt-zu-Punkt-Connection angewandt werden, aber auch in einem öffentlichen oder privaten Netzwerk – Stichwort LoRaWAN.
LoRa Sensoren werden in der Regel durch langlebige Batterien betrieben, wodurch Wartungsarbeiten nur selten notwendig sind. Die Sensoren werden unter anderem zur Messung von Luftfeuchtigkeit, Lichtintensität, Vibration, Temperatur und Bewegung genutzt, aber auch zum Asset-Tracking und zur Indoor-Ortung. Sie kommen vor allem im Rahmen von Smart-Lösungen in den eigenen vier Wänden, in landwirtschaftlichen sowie in Industriebtrieben zum Einsatz.

In Abgrenzung zu LoRa: Was versteht man unter LoRaWAN?
LoRaWAN bedeutet Long Range Wide Area Network und steht für ein Low-Power-Wireless-Netzprotokoll, das in der Regel in einer Sterntopologie aufgebaut ist. Die beteiligten Endgeräte kommunizieren dabei über Gateways, die kleine Datenmengen an einen Server senden. Die Daten können anschließend individuell weiterverarbeitet werden. Der Server ist indes mit Schnittstellen ausgestattet, über die eine Verbindung zu mehreren IoT-Modulen hergestellt werden kann. Mithilfe des Netzwerkes können gar mehrere hundert Sensoren gleichzeitig genutzt werden. Vorteilhaft am LoRaWAN ist, dass lokale komplexe Installationen nicht erforderlich sind.
Soft- und Hardware: Das brauchst du für dein Projekt
- 2x Arduino Uno oder Mega
- 2x Dragino Shield (Sender & Empfänger)
- Arduino IDE
- RadioHead Library
Alle für dieses Projekt notwendigen Artikel landen mit einem Klick auf den Button direkt in deinem Warenkorb, sofern sie in unserem Shop verfügbar sind. Kontrolliere daher deinen Warenkorb genau!
Schritt für Schritt erklärt: So erstellst du einen LoRa-Sender und -Empfänger
- Im ersten Schritt musst du das Dragino Shield auf das Arduino Board stecken.

- Anschließend öffnest du Arduino IDE und installierst die Radio Head Library. Dabei gehst du folgendermaßen vor:
- Falls du als Betriebssystem Linux nutzt, öffnest du ein Terminal und lässt den Befehl „git clone https://github.com/PaulStoffregen/RadioHead“ ausführen.
git clone https://github.com/PaulStoffregen/RadioHead
- Sofern du auf Windows zurückgreifst, öffnest du den Link „https://github.com/PaulStoffregen/RadioHead“ und lädst die Bibliothek herunter.
https://github.com/PaulStoffregen/RadioHead

- Navigiere dann zur Arduino IDE und klicke auf „Sketch“, anschließend auf „Bibliothek einbinden“ und schließlich auf „ZIP-Bibliothek hinzufügen…“.

- Nun kommen die beiden Codes „Client.ino“ und „Server.ino“ ins Spiel. Beide Codebeispiele sind in der Bibliothek unter Radiohead/rf95 zu finden. Solltest du dir die Beispiele anschauen wollen, dann hast du nachfolgend die Gelegenheit dazu.
Client.ino :
#include <SPI.h>
#include <RH_RF95.h>
RH_RF95 rf95;
void setup()
{
Serial.begin(9600);
while (!Serial) ; // Wait for serial port to be available
if (!rf95.init())
Serial.println("init failed");
}
void loop()
{
Serial.println("Sending to rf95_server");
// Send a message to rf95_server
uint8_t data[] = "Hello World from Sender n:1";
rf95.send(data, sizeof(data));
rf95.waitPacketSent();
// Now wait for a reply
uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (rf95.waitAvailableTimeout(3000))
{
// Should be a reply message for us now
if (rf95.recv(buf, &len))
{
Serial.print("got reply: ");
Serial.println((char*)buf);
// Serial.print("RSSI: ");
// Serial.println(rf95.lastRssi(), DEC);
}
else
{
Serial.println("recv failed");
}
}
else
{
Serial.println("No reply, is rf95_server running?");
}
delay(400);
}
Server.ino :
#include <SPI.h>
#include <RH_RF95.h>
// Singleton instance of the radio driver
RH_RF95 rf95;
void setup()
{
Serial.begin(9600);
while (!Serial) ; // Wait for serial port to be available
if (!rf95.init())
Serial.println("init failed");
}
void loop()
{
if (rf95.available())
{
// Should be a message for us now
uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (rf95.recv(buf, &len))
{
// RH_RF95::printBuffer("request: ", buf, len);
Serial.print("got request: ");
Serial.println((char*)buf);
// Serial.print("RSSI: ");
// Serial.println(rf95.lastRssi(), DEC);
// Send a reply
uint8_t data[] = "And hello back to you";
rf95.send(data, sizeof(data));
rf95.waitPacketSent();
Serial.println("Sent a reply");
}
else
{
Serial.println("recv failed");
}
}
}
- Lade zunächst den Sketch „Client.ino“ auf dem ersten Arduino Board hoch und im Anschluss den Sketch „Server.ino“ auf dem zweiten Arduino Board. Wie das im Detail vonstattengeht, erfährst du in diesem anschaulichen YouTube-Tutorial. Wenn du jetzt die beiden Arduino Sketches – jeweils einzeln – mit dem seriellen Monitor (9600 Baudrate) öffnest, bekommst du das folgende Resultat:


Falls du weitere Beispielcodes ausprobieren möchtest, klickst du auf „Datei“, anschließend auf „Beispiele“, auf „RadioHead“ und zum Schluss auf „rf95“.

Herzlichen Glückwunsch, jetzt ist es geschafft!
Wir wünschen dir viel Spaß mit diesem Projekt und hoffen, dass du mit Hilfe dieses Tutorials noch viele weitere Projekte realisieren kannst. Solltest du Fragen haben, so kannst du diese gerne in den Kommentaren stellen. Alle benötigten Teile für das Projekt findest du noch einmal hier!
Dein BerryBase-Team
Kommentare
Hinterlasse ein Kommentar
Mann! Was ist denn das für eine bescheuerte Kommentarfunktion
Einmal Enter gedrückt und schon wird der Kommentar abgesendet.
Das ist doch Quatsch
unter der URL https://github.com/PaulStoffregen/RadioHead
steht Teensy-Only Copy of RadioHead
Das heisst die library von Paul Stoffregen wurde speziell für Teensy-Boards angepasst
da sind doch Schweirigkeiten bei der Verwendung anderer Boards vor-PROGRAMMIERT
unter der angegeben url https://github.com/PaulStoffregen/RadioHead