Mit der LoRa-Funktechnik können Sensoren über große Distanzen von 200 m bis 20 km im kostenlosen 868-MHz-Band kommunizieren. Die LoRa-Technologie zeichnet sich durch sehr geringen Energiebedarf und große Reichweite aus und ist für kleine Datenraten geeignet. Die Arduino Hannover LoRa-Gruppe verwendet verschiedene LoRa-Module für Arduino, mbed und Linux (PI), welche untereinander kommunizieren. Auf der Maker Faire Hannover 2017 werden wir ein eigenes Arduino 32-Bit LoRa-Board präsentieren, welche mit eigener Funkprotokollsoftware über Jahre hinweg batteriebetrieben kommunizieren kann. Die vorhandenen LoRa-Module namhafter Hersteller konnten uns nicht überzeugen, daher haben wir die Hard- und Software komplett eigenständig neu entwickelt und sind überzeugt, eine bahnbrechende LoRa-Funklösung mit verschiedenen Sensor-Anwendungen präsentieren zu können.
LoRa-Grundlagen
LoRa-verwendet eine spezielle Frequenzspreizung-Modulation (englisch spread spectrum). Grundsätzlich kann diese Modulation auf allen Frequenzen verwendet werden, gängig sind die kostenlosen Frequenzbereiche 433 MHz sowie 868 MHz in Europa. Wir nutzen 868 MHz, da das Band weniger belegt und besser reguliert ist und somit eine bessere Funkbasis bietet.
Es gibt bereits ein standardisiertes LoRaWAN-Protokoll, das einen speziellen Konzentrator voraussetzt und die Daten an einen Internetserver weiterleitet. Der Konzentrator, welcher mehrere Kanäle gleichzeitig empfangen kann, bietet bei sehr großen Installationen Vorteile, allerdings unterstützt das LoRaWAN-Protokoll keine direkte Knoten-zu-Knoten-Kommunikation und ist für Hobbyisten zu teuer und kompliziert. Andere freie Softwarealternativen wie RadioHead bieten hingegen nur einen Bruchteil der möglichen Funktionen und sind nicht stromsparend.
Wir haben eine neue LoRa-Funkprotokollsoftware entwickelt, die sehr effizient schnell und sicher Nachrichten zwischen einfachen LoRa-Modulen verschicken kann. Diese Software ist gleichermaßen als Knoten (Node), oder als Station einsetzbar und unterstützt verschiedene LoRa-Chips (RFM95_SX1276, MURATA_SX1276, SX1276MB1MAS, SX1276MB1LAS).
Beispiellösungen, die von uns auf der Maker Faire Hannover 2017 gezeigt werden:
Temperatursensor (batteriebetrieben)
Ein Temperatursensor misst regelmäßig die Temperatur und schickt die Ergebnisse an eine Zentrale zur Weiterverarbeitung. Ein eigens entwickeltes LoRa Adapterboard welches universell an verschiedenen Systemen (Arduino, mbed und Raspberry PI ) verwendet werden kann. Das Board läuft natürlich mit der von uns entwickelten LoRa Funkprotokollsoftware.
Feinstaubsensor (batteriebetrieben)
Ein Sensor misst regelmäßig die Feinstaubwerte und übermittelt die Daten per LoRa-Funktechnik an eine Station, welche diese an das Internetportal http://luftdaten.info weiterleitet.
Fernbedienung (batteriebetrieben)
Per Tasten werden Meldungen zu einer Station übertragen
Netzwerktrace iC880A Concentrator
Der Concentrator wird als Netzwerktracer eingesetzt, um den kompletten LoRa Datenverkehr auf allen Kanälen mit unterschiedlichen Spreadingfaktoren zu protokollieren.
STM Lora Board (batteriebetrieben)
Es werden regelmäßig Temperaturdaten übertragen. Das Ganze passiert hier mit einer STM32L0 Entwicklerboard welche einen Murata Lora Chip mit STM MCU verwendet.
LoRa-Board mit Software
Eigenentwicklung der LoRa-Gruppe des Arduino Treffpunkts Hannover
Hardware:
Unser Board enthält alles was das MAKER-Herz erfreut anwenderfreundlich und Arduino-kompatibel auf einer Platine = kein Frust durch lose/falsche Steckverbindungen.
- Arduino-kompatibles Genuino Zero-Board
- Atmel D21 MCU 32-bit ARM Cortex-M0+
- 256 kB Flash, 32 kB RAM=> ausreichend Speicher
für Anwendungen und LoRa Protokoll.
- Integtrierte RTC => für sleep Funktionen und zur Datenerfassung
- 5 Taster => keine externe Verdrahtung für einfache Eingaben nötig
- Arduino Zero kompatible Steckerleiste
- USB-Anschluss zur Stromversorgung & Programmierung
- Anschlussleiste für optionalen, ansteckbaren TFT-Bildschirm, Strom abschaltbar
- Batterieoptimiert:
- 1,7-3,6 V Betriebsspannung
- Batteriefach (2 AA-Batterien/-Akkus)
- Spannungswandler erzeugt 3,3 oder 5 V aus 2x AA-Batterien
- Stromverbrauch im Sleep Modus (ca. 8 µA)
- LoRa-Chip 168 dB link budget (Semtech SX1276 basierend)
Entwicklungsumgebungen:
- Standard Arduino-Entwicklungsumgebung für Mac, Windows und Linux
- Atmel Studio 7 IDE unter Windows
- ARM mbed (geplant)
Funkprotokollsoftware (RadioShuttle):
- Gesicherte Nachrichtenübertragung (max. 232 Bytes Nutzdaten),
der Empfang wird bestätigt, verlorene Daten werden automatisch wiederholt. - Ungesicherte Nachrichtenübertragung (benötigt weniger Zeit/Strom),
für Anwendungen, bei denen regelmäßig Nachrichten verschickt werden
und eine verlorene Nachricht kein Problem darstellt (z. B: Temperaturdaten). - Paralleles Versenden von unterschiedlichen Nachrichten an identische
oder verschiedene Stationen (läuft alles stromsparend im Hintergrund). - Eindeutige 32-bit Device-ID (Gerätenummer) pro LoRa-Teilnehmer,
eindeutige 16-bit AppID (Programmnummer zur Kommunikation).
Datensicherheit:
- Anmeldung von Knoten an die Station erforderlich (auch abschaltbar).
Anmeldung mit verschlüsseltem Kennwort (SHA-256 mit Zufallszahl verschlüsselt). - Verschlüsselte Nachrichtenübertragung (einstellbar pro Nachricht).
AES 128-bit Verschlüsselung, AES Nachrichten benötigen min.
16 Bytes Daten, ohne AES können auch kleinere Nachrichten verschickt werden.
Es werden keine Kennwörter übertragen. Gesichert gegen Hacken durch Protokollieren bzw. Wiederholen von verschlüsselten AES-Nachrichten oder Anmeldungen. - Air Traffic Control: Die Knoten senden nur, wenn auf dem Kanal kein LoRa-Signal aktiv ist. Die Stationen erstellen einen automatischen Netzplan, welche Knoten und Stationen wann kommunizieren dürfen. (ist geplant)
- Optimiertes Protokoll
Nachrichtenzustellung innerhalb von 110 ms (SF7, 125 kHz, bei freiem Kanal).
Nachrichten benötigen nur 2 x 12 Bytes (Protokoll-Overhead).
Default LoRa-Spreadingfaktor SF7 (SF7-SF12 einstellbar).
Default LoRa-Bandbreite 125 kHz (125/250/500 kHz einstellbar).
Kleinere Bandbreiten bieten eine größere Reichweite. - Automatische Anpassung der Sendeleistung. Das spart erheblich Strom und das Funknetz ist für Nachbarstationen weniger belegt.
Betriebsmodus:
- Betrieb als Station, feste Stromversorgung empfohlen
(12 mA im Empfangsmodus, Senden (20 … 100 mA) - Betrieb als Node Online, feste Stromversorgung empfohlen
Der Knoten ist permanent empfangsfähig
Ansonsten die Funktionen wie „Node Offline“
(12 mA im Empfangsmodus, Senden (20 … 100 mA). - Betrieb als Funksensor (Node Offline-Checking)
Der Knoten meldet sich regelmäßig, um ggf. Daten zu empfangen
Der Empfang von Nachrichten kann bis zu 30 Sekunden dauern
Ansonsten die Funktionen wie „Node Offline“
(1 µA im Ruhemodus, Batteriebetrieb über Jahre). - Betrieb als Funksensor (Node Offline).
Der Knoten ist nur aktiv, wenn Ereignisse zu melden sind.
(1 µA im Ruhemodus, Batteriebetrieb über Jahre).
Resourcen für die RadioShuttle Library:
- Speicherbedarf (Stand 07/2017)
100 kB Flash for RadioShuttle Library mit MD5 & AES.
5 kB RAM für Node-Offline-/Checking-/Online-Betrieb.
10 kB RAM für Station-Basic-Betrieb (RAM ist abhängig vom Anzahl der Knoten).
1 MB RAM für Station-Server-Betrieb (Raspberry PI, 10.000 LoRa-Knoten). - Genaue Timer mit Auflösung von of 0,5 ms und Interrupt.
- Unterstützte LoRa- und MCU-Boards
LoRa: RFM95_SX1276, MURATA_SX1276, SX1276MB1MAS, SX1276MB1LAS
STM Discovery kit for LoRaWAN (STMicroelectronics B-L072Z-LRWAN1)
Arduino Zero, Arduino M0 (Atmel ATSAMD21 MCU 32-bit )
mbed STM32L0, STM32L4
Linux Raspberry PI/Orange PI (ist geplant)
Allgemeines zur LoRa Reichweiten:
Es gibt viele Faktoren welche die Reichweite beeinflussen: Antenne, Wände, Stahlbetondecken, Funk-Reflexionen, andere Sender auf identischen Frequenzen und Vieles mehr. Daher sprechen wir in diesem Dokument von 200 m bis 20 km Reichweite, welche im Vergleich zu anderen Funktechniken mit LoRa auf jeden Fall um ein Vielfaches besser ist.
868 MHz Standardmodulationen (ohne LoRa) welche die in Deutschland erlaubten 14 dBm Sendeleistung verwenden, kommen im Freien ca. 50 Meter weit und in Gebäuden gerade mal durch eine Wand. Praktisch gibt es mit der 868 MHz Standardmodulation schon innerhalb einer Wohnung Empfangsprobleme.
Mit der 868 MHz LoRa-Modulation – ebenfalls 14 dBm Sendeleistung – haben wir Tests durchgeführt, in denen der Empfang sogar über 9 Stockwerke in einem großen Gebäudekomplex funktionierte. Auch bei weiteren Tests in einem großen Konferenzraum mit 5000 Smartphones und vielen weiteren Funk-Übertragungstechniken lief die LoRa-Funktechnik einwandfrei. Ein wesentlicher Vorteil von LoRa ist dabei, dass die LoRa-Modulation auch auf standardbelegten 868 MHz Funkkanälen überlagernd funktioniert.
Die Kommunikation zwischen zwei benachbarte Orte mit mehreren Kilometern Distanz und vielen Gebäuden dazwischen stellte für die LoRa-Datenkommunikation keinerlei Problem dar. Bei komplett freier Sicht sind mit LoRa sogar Reichweiten von über 20 km möglich.
Viele weitere Details zur LoRa Funktechnik kann man auf Helmuts und Rainers Webpage erfahren. Dort wird auch das aktuelle LongRa Board und die Radioshuttle Software vorgestellt. Weiterhin ist Helmuts Vortrag zu empfehlen, den er im Mai 2017 bei Arduino Hannover gehalten hat. Ihr könnt den Vortrag auf YouTube anschauen und die Vortragsunterlagen als PDF herunter laden.
Hallo,
ich habe da ein Projekt am laufen wo draußen gemessen wird. Interesant wäre wenn ich mit dem System mir die Daten ansehen könnte wenn ich vor Ort bin, das heist am Feldrand,Wiese, dann muss ich nicht zur Station und erst alles stoppen bevor ich was ansehen kann.
Es werden da Daten von 2 Kanälen mit 512Hz aufgezeichnet, das ist sicherlich zu viel für das System ?
Gruß Bernd
Hallo Bernd,
gerne erörtere ich Dein Problem über meine MAil Rainer@Radow.org
Gruß
Rainer
Pingback: Feinstaub selber messen mit LoRa-Funk und Arduino - MAKE Rhein-Main
Hallo alle Miteinander . Eine wichtige Frage für mich. Kann ich auch einen heimischen Mosquitto Server auf Raspi mit dem TTN Network in Verbindung bringen,da ich schon einige Daten Aktoren und Reaktoren darüber laufen habe. Also hat einer schon mal so etwas von euch gemacht ? Wäre nett wenn einer eine kleine Info für mich hätte. Ich besitze eine Lora Gateway (Raspberry + IC880A) Die Anbindung funktioniert soweit. Vielen Dank Thomas
Pingback: Feinstaub für rund 100 Euro selber messen – webweek rhein-main 2018 & MAKE Rhein-Main ?