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.