EASY-LoRa
Text- und GPS-Navigationsdatenübertragung mithilfe von LoRa-Funk

In Bearbeitung
Stand: 12. November 2017

  automatic translation by GOOGLE
https://translate.google.com/translate?sl=de&tl=en&js=y&prev=_t&hl=de&ie=UTF-8&u=http%3A%2F%2Fwww.kh-gps.de%2Feasy_lora.htm&edit-text=


Abb.1 LoRa (TM) Logo

"LoRa" (TM) steht für "Long Range". Dabei handelt es sich um ein Funkübertragungsverfahren, mit dessen Hilfe sich beispielsweise Telemetriedaten im Rahmen des IoT ( Internet of Things )  über Distanzen übertragen lassen, die im Vergleich zur Nutzung von z.B. FSK- oder GMSK-Modulation bei üblicherweise mehr als dem Zehnfachen liegen. Erreicht wird das durch die Verwendung von Spread Spectrum Modulation. Der sich hierbei ergebende Systemgewinn von 20dB und mehr würde ansonsten nur durch Erhöhung der Sendeleistungen um den Faktor 100 erreichbar sein.

Bei "LoRa" handelt es sich um eine ursprünglich von der Firma SEMTECH eingeführte Technologie. Als weiterer Systemvorteil sei auch noch der selbst längere Batteriebetriebszeiten erlaubende geringe Energiebedarf genannt.


Abb.2   Vergleich zwischen "normalem" Schmalband- und einem unter dem Rauschpegel liegenden Spread Spectrum-Signal

Durch Verwendung sehr preiswert erhältlicher Transceiverbausteine [xx] lassen sich in der genannten Betriebsart Distanzen von ( natürlich antennen- und geländeabhängig ) bis zu 20 Km und mehr überbrücken. In Verbindung mit z.B. Ballonprojekten waren es mehrfach aber auch schon einige Hundert Kilometer.
Nicht geeignet ist "LoRA" allerdings für Übertragungen mit hohen Datenraten. Die Vorzüge des Systems kommen vor allem dort zum tragen, wo es um nur relativ geringe Datenmengen in nicht allzu häufigen Zeitfolgen geht. Klassische Anwendungen sind allgemeine Telemetriedatenübertragungen z.B. im Rahmen des "Internet of Things" oder auch Trackingsysteme für den Nahbereich. Ein klassischer Einsatzbereich ist beispielsweise auch die Übertragung von GPS-Standortdaten zur Verfolgung von Tieren oder auch allgemein zum Wiederauffinden von Personen oder Objekten.

LoRa-Nutzung im Rahmen von Allgemeingenehmigungen und durch Funkamateure

Für den Einsatz in Europa vorgesehene Transceiverbausteine arbeiten im Bereich um 434 MHz ( 70cm-Band ) oder auf Frequenzen um 868 MHz. Mögliche Werte für die Sendeleistung liegen zwischen etwa 2 und 100 mW. Ihr Einsatz ist auch im Rahmen von Allgemeingenehmigungen zulässig, wenn dabei die gesetztlichen Bestimmungen für SRD-Anlagen ( Short Range Devices) eingehalten werden. Im sog. 70cm-ISM-Bereich ( 433.05-434.79 MHz ) ist die max. zulässige Sendeleistung dabei in den meisten europäischen Ländern auf 10 mW begrenzt.

Lizensierten Funkamateuren steht zumindest in einigen Ländern ( incl. Deutschland ) ein 10 MHz breiter 70cm-Bereich ( 430-440 MHz ) zur Verfügung. Eine detailierte Aufteilung findet man in Bandplänen, so wie sie durch die IARU-R1 ( International Amateur Radio Union für  Region 1 ) erstellt werden. Auf der diesjährigen ( 2017 ) Konferenz dieser Organisation wurde nun gerade ein Teilbereich festgelegt, in dem sich offiziell auch breitbandige digitale Funkexperimente wie z.B. solche in LoRa-Technik durchführen lassen ( Abb.3 ). Er erstreckt sich von 433.600-434.594 MHz und deckt sich damit auch weitgehend mit dem allgemein zugelassenen ISM-Bereich. Im Vergleich zu ihm erlaubt er Funkamateueren aber die Verwendung auch höherer Sendeleistungen und gewinnbringender Richtantennen. Damit ergeben sich für diese Gruppe deutlich erweiterte Einsatzmöglichkeiten in einem noch weitgehend neu zu entdeckendem Experimetierbereich.


Abb.3  Auszug aus dem VHF-Handbook der IARU-R1  vom November 2017


Welche LoRa-Bausteintypen sind geeignet?

Bisher hatte ich mich vorzugsweise mit LoRa-Sender/Empfängerbausteinen beschäftigt, die sich über ihre SPI-Busanschlüsse von Mikrocontrollern steuern liessen [1]. Nun habe ich aber unlängst auch Typen "entdeckt", die stattdessen serielle TTL-UART-Schnittstellen bereitstellten, was in manchen Fällen ( siehe weiter unten ) ihre Verwendung sogar OHNE zusätzlichen Mikrocontrollereinsatz erlaubt. Erste Versuche hatte ich dabei mit Bausteinen des Typs "HM-TRLR-S443" der Firma Hope durchgeführt, wobei mir deren erfolgreiche Nutzung zumindest bis jetzt allerdings noch nicht gelungen ist. Völlig unkompliziert erwies sich dagegen die Verwendung eines ähnlichen Typs von Fa. Dorji mit der Bezeichnung: "DRF1278DM" [4]. 


Abb.4  Übersicht zum LoRa-Modul "DRF1278DM"


Die verschiedenen Betriebsparameter der Bausteine "DRF1278DM"
und ihre Konfiguration

Der Betrieb in LoRa-Technik erlaubt die Nutzung unterschiedlicher Modi, womit  sich  eine Auswahl über die Konfigurationseinstellungen der einzelen Bausteine  treffen lässt. Im Wesentlichen  geht es dabei um ein schwerpunktmäßiges Abwägen zwischen belegten Signalbandbreiten, unterschiedlichen Übertragungsgeschwindigkeiten und  sich daraus ergebender Signal-Empfindlichkeit. Mehr hierzu findet man auch im zugehörigen Datenblatt [4]. Defaultmäßig ( im Lieferzustand ) sind bei den "DRF1278DM" die folgenden wichtigsten Betriebsparameter voreingestellt:
UART-Datenrate     : 9600bps
Betriebsfrequenz      : 434.0 MHz
RF-Faktor                : 2048 ( = SF-11 )
RF-Bw                      : 125 KHz
RF-Power                 : 7 ( +20dbm = 100mW ) 

Anm.: Für Nutzungen mit allgemeiner Zulassung ist ein RF-Powerwert von max. 3 für  Sendeleistungen bis +10dbm entsprechend 10mW zu wählen


Mit dem RF-Faktor 2048 wird eine verhältnismäßig langsame Datenübertragung vorgewählt, was aber einer hohen Signalempfindlichkeit zugute kommt.

Bei einer benutzten Bandbreite von 125 KHz ergeben sich dabei folgende Zusammenhänge:

RF-Faktor     Datenrate (bps)  Empfindlichkeit (dbm ) :
4096 ( SF-12 )        183        -136
2048 ( SF-11 )        328        -133        ( default )   
1024 ( SF-10 )        733        -132
512   ( SF-9 )        1312        -129
256   ( SF-8 )        2375        -126
128   ( SF-7 )        4338        -123       

Die entsprechenden Zahlen bei Nutzung anderer Bandbreitenwerte können einer Tabelle entnommen werden, die u.a. hier [] zu finden ist. 


Abb.5  Windows-Tool zur Konfiguration der Dorji LoRa-Modems

Zur Änderung der Konfigurationseinstellungen hat die Lieferfirma ein über diese Seite [5| zu findendes Windows-Tool bereitgestellt ( Abb.5 ). Dazu muss vom PC aus auf die LoRa-Bausteine zugegriffen werden können, was das Zwischenschalten eines USB zu Seriell-TTL-Adapters erfordert. Versuche, hierzu den vom Lieferanten der DRF-Bausteine mitgelieferten Adapter zu verwenden, verliefen zumindest bei mir negativ. Stattdessen verwendete ich ein zufällig vorhandenes Exemplar "UM2102" von ELV, wobei ich von ihm allerdings nur die beiden ( überkreuzten ) Datenleitungen und die Masseverbindung zum LoRa-Baustein herstellte, ihn ansonsten aber aus einer LiPo-Zelle separat versorgte. Auf das Konfigurationstool konnte danach problemlos zugegriffen werden.

Textein- und -ausgaben mithilfe standardmäßiger Terminalprogramme

Zur Anzeige empfangener und Eingabe abzusendener Texte eignen sich herkömliche Terminalprogramme mit Bluetoothschittstelle. Eine entsprechende Auswahl ist im ANDROID PlayStore verfügbar.  Dabei hat sich allerdings herausgestellt, dass nicht alle bereitstehenden App's auch für den beabsichtigten Einsatzzweck geeignet sind. Auszusendende Texte werden üblicherweise vorgeschrieben und erst nach Betätigung einer SEND-Taste übertragen. Um auf der Empfangsseite auch das Ende übermittelter Nachrichten erkennen zu können, ist es wichtig, auf der Geberseite entsprechende Endzeichen hinzuzufügen. Dabei handelt es sich üblicherweise um den ASCII-Character 13 bzw. 0x0D in Hex-Schreibweise. In Programmcodes findet man dafür auch häufig die Zeichenfolge: '\r'. Leider tun sich einige Terminalprogramme nun aber schwer mit dem Anhängen dieser Zeichen, so dass sie danach für unsere Nutzung kaum noch infrage kommen.    
Ein Terminalprogramm, bei dem das genannte Problem nicht besteht und welches auch ansonsten alle meine Wünsche erfüllte, stammt von Kai Morich und ist unter dem Namen "Serial Bluetooth Terminal" aus dem Play-Store herunterladbar. Mit seinem gelben RS232-Stecker als Logo lässt es sich auch leicht finden.

Eine erste praktische Anwendung:
LoRa-Bausteine zur Textübertragung zwischen Smartphones/Tablets

Nachdem oben genannte Funkbausteine bereits standardmäßig mit seriellen asynchronen Datenschnittstellen ( TTL-UART ) ausgestattet sind, lassen sie sich direkt mit  z.B. Bluetoothbausteinen wie den "HC-06" zusammenschalten. Abb.6 zeigt eine entsprechende Anordnung. Da LoRa- und Bluetoothbausteine auch mit weitgehend identischen seriellen Schnittstellenparametern ausgeliefert werden, sind dabei auch keine weiteren Konfigurationsmaßnahmen zu treffen.


Abb.6  Blockschaltbild der Baugruppenanordnung zum Textaustausch von Smartphone zu Smartphone

Für einen bidirektionalen Kurztextaustausch ist jetzt lediglich noch jeweils ausgehend von den ANDROID-Endgeräten eine Bluetoothverbindung zum zugehörigen HC-06-Modul * aufzubauen. Dazu muss allerdings vorher ein einmaliges Pairing ( Kennenlernen ) zwischen beiden Einheiten stattgefunden haben.     
Wurden BT-Verbindungen auf beiden Seiten aufgebaut, kann unter Verwendung der uns schon bekannten Terminalprogramme mit dem Textaustausch begonnen werden.


Abb.7  Detailschaltbild zur Zusammenschaltung von LoRa- und Bluetoothmodul
 
*  Um mit Bluetoothmoduln arbeiten zu können, müssen diese in einem über das Menü der Smartphones erreichbaren Verzeichnis angemeldet worden sein. Melden wir dabei mehrere z.B. HC-06 an, so werden sich alle unter gleichem Namen identifizieren, was später zu Irritationen führen kann. Daher ist es dringend zu empfehlen, dass Namensgleichheiten vermieden werden.
Zur Umbenennung sind die BT-Moduln mit einem "USB zu Seriell-TTL-Adapter" zu verbinden, wobei RxD/TxD-Anschlüsse gekreuzt und dazu Masse, sowie Versorgungsspannung 3-5V anzuschliessen sind. Via USB sind die Adapter mit einem PC mit aktiviertem Terminalprogramm ( z.B. HTerm ) zu verbinden. In dessen Menü sind der verwendete Com-Port und die benutze Baudrate 9600bps anzuwählen. Anschliessend ist die CONNECT-Taste zu betätigen. Weiterhin ist sicherzustellen, dass folgende Datenaussendungen OHNE zusätzliche  CR- und  LF-Charaktäre erfolgen.
Bei funktionierender Datenverbindung werden die Bluetoothmoduln nach Empfang der Zeichenfolge "AT" mit "OK" antworten. Durch Aussendung von "AT+NAME und des ( nach einer Leerstelle )  gewünschten neuen Namens, lässt sich bewirken, dass sich die BT-Moduln fortan nur unter diesem Namen melden. Erfolgreiche Umbenennungen werden von den Moduln auch quittiert.


Abb.8  Versuche zum Kurztextaustausch von Smartphone zu Smartphone via LoRa


Mit LoRa erzielbare Funkreichweiten

An dieser Stelle kommt üblicherweise die Frage nach den mithilfe der LoRa-Funkbausteine erzielbaren Funkreichweiten. Dazu kann nur soviel gesagt werden, dass mögliche Werte von verschiedensten Faktoren bestimmt werden. Dazu gehören vorallem:
* gewählte Sendeleistungen
* Standorte der Endstellen
* Geländebeschaffenheit ( Stichworte: offenes Gelände, Hügel, Berge, enge Hausbebauung, Inhausnutzung ) 
* verwendete Antennen ( siehe dazu auch den folgenden Abschnitt )
Bei halbwegs freiem Gelände lassen sich mithilfe von LoRa ( im Rahmen der Allgemeinzulassungenn ) aber oftmals durchaus Distanzen von einigen Kilometern überbrücken

Auswahl geeigneter Antennen

Hochfrequenztechniker trauen sich zwar kaum noch, es noch einmal zu erwähnen, aber nach wie vor ist eine gut angepasste Antenne der beste ( und letztendlich auch preiswerteste ) HF-Verstärker. Beim Bezug von Funkbausteinen z.B. aus Fernost, werden nun aber oftmals in grosszügiger Weise auch kleine "Stummelantennen" beigelegt. Dabei darf man allerdings nicht automatisch davon ausgehen, dass es sich hierbei um Typen handelt, die frequenzmäßig auch zu den gelieferten Funkbausteinen passen!  Gerade aber, wenn man mit relativ geringen Sendeleistungen arbeiten will und dennoch akzeptabele Funkreichweiten erzielen möchte, ist es empfehlenswert, der Antennenfrage einige Aufmerksamkeit zu schenken.
Zusammen mit den Funkbausteinen "DRF1276DM" wurden z.B. kurze Stummelantennen geliefert. Zugegebenermaßen benutze auch ich sie für Übertragungsversuche über kurze  Entfernungen auch, aber ansonsten konnte bei ihnen nirgendwo im gesamten 70-cm-Bereich auch nur den geringsten Ansatz für eine Resonanzstelle finden. Die WSWR-Werte lagen hier bei etwa 1:7 !  Auch Antennen, die anderen LoRa-Bausteinen eines namhaften Lieferanten beigelegt waren, hatten als beste überhaupt einigermassen infragekommende Resonanzstelle eine solche bei etwa 500 MHz und waren damit auch nicht gerade optimal verwendbar.


Abb.9  Beispiele für Antennenstäbe

Daher verwende ich, auch wenn sie etwas unbequemer in der Handhabung sein sollten, inzwischen vorzugsweise Antennen mit ungekürzter 1/4-Wellenlänge, also mit etwa 18 cm langen Strahlern. Hierzu fand ich bei Ebay ein Angebot, bei denen der beste Resonanzpunkt nun  tatsächlich bei etwa 435 MHz lag ( Abb.9 ). Ihr Einsatz ist z.B. auch in Verbindung mit Magnetfüßen für die Dachmontage auf Fahrzeugen empfehlenswert. Für stationäre Anwendungen würde ich dagegen eine der Groundplanes vorziehen, so wie sie z.B.  im Amateurfunkhandel zur Nutzung im 70cm-Band angeboten werden.

Möglichkeiten  zur Ermittlung von Funkversorgungsbereichen

Oft besteht der Wunsch, mögliche Funkreichweiten auf einfache Weise ausloten zu können.
Hierzu wurde das Arduino-Programm "Tritest" [6] geschaffen, welches sich aus drei einzeln aufrufbaren Teilprogrammen zusammensetzt, wobei von ihnen allerdings immer nur eine Einheit aktiv sein kann. Näheres zur Hardwarebeschaltung kann Abb.10 entnommen werden.


Abb.10   Schaltbild der Baugruppenanordnung für Reichweitentss, Echobetrieb und GPS-Mode
( zur Darstellung in Originalgräße anklicken )

Programm 1  "BAKEN_MODE" ( Schalter "S1" = "ON" ) dient der seriellen Ausgabe kurzer ASCII-Zeichenfolgen für Kennungszwecke plus angefügtem dreistelligem Upcouter. Die benutzte Wiederholrate ist in der Variablen "interval" abgelegt, liegt derzeit bei 10 Sekunden, kann im Programmcode aber auch jederzeit abgeändert werden. Durch einen Empfang dieser Aussendungen an wechselnden Standorten lässt sich auf einfache Weise ein guter Eindruck über mögliche Funkversorgungsbereiche gewinnen.

Programm 2  "ECHO-MODE"  ( Schalter "S2" = "ON" ) liefert eine Echo-Funktion. Dabei wird auf serielle ASCII-Zeichenfolgen gewartet, die am seriellen Hard-UART-Eingang ( #0 ) mit 9600bps Datenrate eintreffen.  Bis zur Erkennung einer Zeilenendmarke ( Char 13 bzw. 0x0D  oder '\r' ) werden ankommende Zeichen in einen prozessorinternen Puffer geschrieben und anschliessend als Block sofort wieder über #1 seriell ausgegeben.
Für aktuelle Verbindungsprüfungen ist somit nur eine Message in Richtung der in diesem Modus betriebenen Einheit zu senden. Unmittelbar danach  sollte sie zurückkommen.

Weitere Einsatzmöglichkeiten ergeben sich durch Installation derartiger Echo-Einheiten an exponierten Standorten ( Hochhäusern, Bergen, Ballons ), was erheblich erweiterte Funkreichweiten ermöglicht.

Das Programm 3  "GPS-MODE"  ( Schalter "S3" = "ON" ) dient der Verarbeitung von GPS-Navigationsignalen  eines ggf. angeschlossenen GPS-Moduls ( mit 9600bps-TTL-Ausgang ) und ist somit vorzugsweise für den Einsatz an wechselnden Standorten gedacht. Besagte GPS-Moduln liefern üblicherweise im Sekundentakt eine grosse Menge verschiedenster sog. NMEA-Datensätze. Über den seriellen Eingang der "DFR1278DM" lassen sich diese Daten  allerdigs aufgrund ihres Umfangs nicht direkt verarbeiten Dazu kommt, dass von ihnen für die spätere Auswertung wirklich nur ein Bruchteil wirklich benötigt wird. Die Aufgabe von Programm 3 ist es deshalb, aus dem Angebot am Soft-UART-Eingang #2 nur die Datensätze der Typen GPGGA und GPRMC auszuwählen und diese in einem Zeitdtakt  gem. Inhalt von wiederum Variable "interval" ( also derzeit im 10 Sekudentakt ) wieder am Hard-UART-Ausgang in Richtung LoRa-Modul auszugeben.  
Bei Nutzung der voreingestellten LoRa-Parameter ergeben sich für die beiden ausgefilterten NMEA-Protokolle ( zusammen ca. 140 ASCII-Zeichen ) "ON-AIR-Zeiten" von mehreren Sekunden. Für bestimmte Anwendungen ( dabei ist zur späteren Kartenauswertung mit z.B.  MAPS_ME allerdings eine Bereitstellung BEIDER Protokolltypen erforderlich ) genügt aber auch eine Übertragung lediglich der GGA-Protokolldaten, was eine nahezu Halbierung der ON-AIR-Zeiten bringt. Wird Schalter "S4" in Stellung "ON" gebracht, bewirkt das eine Unterdrückung auch der RMC-Protokolldatenübertragungt.


Abb.11 Vom BT am Smartphone bereitgestellte NMEA-Datesätze gem. Programm 3 
( zur Darstellung in Originalgrösse aklicken )

Siehe im nächsten Abschnitt zur Nutzung der NMEA-Daten in Verbindung mit z.B. MAPS_ME.

Auswertung und Kartennutzung von GPS-Daten

Ziel war die Anzeige via LoRa empfangener Positionsdaten mithilfe eines Kartenprogrammes an Android-Smartphones bzw. Tablets. Vorher hatte ich schon verschiedene andere APP's getestet, aber dann machte mich ein Bekannter auf "MAPS_ME" aufmerksam, was mir sofort gefallen hat. Der Grund dafür war auch, dass mir das völlig unkomplizierte Nachladen der für bestimmte Regionen  jeweils benötigten Teil-OpenStreetMaps gefallen hatte.


Abb.12   APP  "Bluetooth GPS Mouse" mit Anzeige der via Bluetooth empfangenen GPS-Daten
( zur Darstellung in Originalgröße aklicken )

Der Haken dabei ist allerdings ( hierbei und bei allen ähnlichen Programmen ), dass es sich die Daten für die auf den Karten darzustellenden Positionsmarken von dem im Android-Gerät eingebauten GPS-Modul holt,  wir an dieser Stelle aber mit Daten arbeiten wollen, die wir via Bluetooth von extern zuführen.  Aber auch hierfür gibt es eine Lösung. Sie besteht in einer zusätzlichen Nutzung der aus dem PlayStore herunterladbaren App mit dem Namen "Bluetooth GPS Mouse". Sie ist zu starten und mit z.B. dem HC-06-Modul zu verbinden, welches an den LoRa-Baustein angeschlossen ist, an dem die übertragenen NMEA-Protokolle ankommen. Wurde die Verbindung erfolgreich hergestellt und werden Navigationsdaten empfangen, so erscheinen sie im Programmfenster ( Abb.12 ) und stehen damit fortan als Bezugspositionen für MAPS.ME ( und ggf. auch andere ähnliche Programme ) zur Verfügung.


Abb.13 Positionsdarstellung am Smartphone unter MAPS:ME

Um für entsprechende Kartenprogramme später auch wieder einmal auf eine Nutzung der Daten des internen GPS-Bausteins zurückgreifen zu können, muss über EINSTELLUNGEN die Liste der ausgeführten Programme aufgerufen ( bei meiner Android-Version z.B. erreichbar unter dem Namen:  ANWENDUNGSMANAGER ), dort die App "BLUETOOTH GPS MOUSE" gesucht und mit "STOP ERZWINGEN" beendet, aber nicht deinstallisiert werden.   

einfache Funktionskontrolle

Sollte eine LoRa-Übertragung einmal nicht wie gewünscht funktionieren, kann es sehr hilfreich sein, sich einmal das HF-Signal der Aussendung anzuschauen. Dazu hervorragend geeignet sind die für wenig Geld erhältlichen RTL-SDR-Sticks in Verbindung mit Windows-Programmen wie z.B. SDRSharp. Abb.14 zeigt dazu ein Beispiel.


Abb.14  Screenprint eines LoRa-Signals ( Bw=125KHz ) via RTL-SDR-Stick und Programm SDRSharp


was noch in der Pipeline ist

Damit via LoRa ankommende Informationen auch dann nicht verloren gehen, wenn aktuell  keine Bluetoothverbindung zum auswertenden Smartphone besteht, kann der serielle Datenausgang des verwendeten DRF-Moduls parallel auch noch an ein kleines Mikrocontrollermodul mit angeschlossenem TFT-Display geführt werden. Diese Anordnung ermöglicht das Festhalten der jeweils zuletzt eingetroffenen Textinformationen in Scrolldarstellung.

Eine selbsterstellte Android-App verarbeitet via Bluetooth zugeführte GGA-Protokolldaten mit Darstellung von Positions- und Höhenwerten. Darüberhinaus lassen sich unter Hinzuziehung der Daten des im Smartphone integrierten GPS-Bausteins auch die Werte von Distanz und Richtung zueinander berechnen und anzeigen. Auf Wunsch lassen sich diese Ergebnisse dabei auch im Sprachformat ausgeben.

Nur eine Idee, aber vielleicht einmal Wert, ernsthaft darüber nachzudenken: Eine mögliche Verwendung von LoRa für EME-Funkverbindungen.

Linkliste

[1]  http://www.kh-gps.de/lora.htm
[2]  http://www.kh-gps.de/lora_bt.htm
[3]  http://www.kh-gps.de/loratext.htm
[4]  http://www.dorji.com/docs/data/DRF1278DM.pdf
[5]  http://www.dorji.com/products-detail.php?ProId=34
[6]  folgt in Kürze

E-Mail contact via: