Ein einfacher LoRa-APRS-Monitor
mit Option zur Sprachausgabe
In Bearbeitung
Status:  28. November 2020
NEU:  aktuelle Softwareversionen am 28. November

  Automatic translation by GOOGLE:
http://translate.google.com/translate?sl=de&tl=en&u=http%3A%2F%2Fwww.kh-gps.de%2Faprs_monitor.htm


   Beispiel für Sprachausgabe  ( in reduzierter Aufnahmequalität ) mit Begrüßungsmessage ( einmalig nach Programmstart ) und jeweils nach Eintreffen gültiger LoRa-APRS-Messages
http://www.kh-gps.de/LoRa_Monitor.mp3  und hier ist auch noch ein kurzes Video von Peter, DG3SMA:  https://youtu.be/a403I2zsOzI


In letzter Zeit habe ich mich hauptsächlich mit der Beobachtung von Aktivitäten auf der LoRa-APRS-Frequenz beschäftigt. In diesem Zusammenhang wurde auch schon der in [1] beschriebene Decoder realisiert. Darüber hinaus schwebte mir aber auch noch eine einfachere und vor allem preiswerter zu erstellende Version vor, wonach der hier zu beschreibende kleine "LoRa-APRS-Monitor" entstanden ist. Ausschlaggebend dafür war auch die Verfügbarkeit kompakter ESP32-Prozessorboards incl. OLED und LoRa-Chip. Die bei den ESP32-Prozessoren von Haus aus bereitgestellte Bluetooth-Funktionalität erlaubte dabei zusätzlich noch die sehr einfache Möglichkeit zur Übertragung empfangener Daten zur weiteren Verarbeitung mithilfe externer Geräte wie z.B. PC's, aber auch Smartphones oder Tablets.
Verwendet wurde ein ESP32-Board des Typs "HELTEC LoRa32",  für das es auch baugleiche Ableger von z.B. "ICQUANZX" gibt. Mit leicht abgewandelter Firmware ist auch eine Verwendung der sehr ähnlichen TTGO LoRa32-Bausteine möglich. Hinzu kommt lediglich noch jeweils eine geeignete Antenne. Wie sich dann als Option auch noch ein Baustein zur Sprachausgabe adaptieren lässt, wird weiter unten noch aufzuzeichnen sein.


Abb.1   Versuchsaufbau des APRS-Decoders mit Sprachausgabezusatz

Decodiert werden sowohl unkomprimierte APRS-, als auch BASE91 komprimierte Daten. Auf dem OLED-Display mit seiner begrenzten Anzeigekapazität werden dabei nur die Calls absendender Stationen, sowie Werte von SNR ( Signalqualität ) und RSSI ( Empfangsfeldstärke ) angezeigt. Zusätzlich erfolgt die Darstellung der Anzahl erfolgreich decodierter Blockeinlesungen ( siehe Abb.2 ). Für die Momente der Dateneinlesungen leuchtet auf den Prozessorboard kurz eine LED. Speziell bei Betrieb ohne Sprachbaustein kann ihr zugehöriger Steuerpin benutzt werden, um hierüber einen externen Summer anzusteuern ( ggf. mit zwischengeschaltetem Transistor ) um damit eine akustische Signalisation eintreffender Daten zu bewirken. Die entsprechenden Ports sind "G2" bei den HELTEC- und "G25" bei den TTGO-Boards.  

 
Abb.2  Monitor-Basisversion mit Baustein "TTGO LoRa32"

Um ggf. eine Weiterverarbeitung empfangener Daten am PC oder mithilfe von z.B. ( ANDROID- )  Smartphones oder Tablets zu ermöglichen, werden sie zudem via Bluetooth im unkomprimierten APRS-Format bereitgestellt. Komprimiert eintreffende Daten werden dazu vorher entsprechend gewandelt. Zur Auswertung besonders geeignet ist dabei beispielsweise die APP: "APRSDROID", die u.a. auch eine Visualisierung übertragener Positionsdaten in Kartendarstellung ( Abb.3b ) ermöglicht.   


Abb. 3a und 3b   Beispiel für die Auswertung via Bluetooth übertragener Daten mit der APP "APRSDROID"   

Ein besondere Funktion ergibt sich nach Anschluss eines DFPlayer-Bausteins ( mögl. Bezugsquelle [3] ) von Fa. DFRobot ( Abb.4 ). Dieser wird mit einer Micro-SD-Speicherkarte betrieben, auf der benötigte Sprachsegmente vorher im MP3-Format abzulegen sind. Gesteuert vom ESP32-Prozessor lässt sich damit eine Sprachausgabe empfangener Rufzeichendaten bewirken ( höre Sprachbeispiel am Seitenbeginn ).  


Abb.4   Anschaltung eines DFPlayers an einen LoRa32-Prozessorbaustein
(  Die Zusammenschaltung ist auch für TTGO-Boards gültig )


NACHBAU
Zum Download [2] steht je eine Programmversion für LoRa32-Boards von HELTEC und Baugleiche, sowie für TTGO-Boards bereit.
Darüberhinaus gibt es auch Versionen für den Betrieb OHNE Sprachbaustein. Erkennbar sind sie daran, dass in ihren Namen der Zusatz "DFPLAYER" fehlt.

Ebenfalls verfügbar ist ein Satz der zur Sprachausgabe benötigten MP3-Dateien. Auf der in Verbindung mit dem DFPlayer zu benutzenden Micro SD-Speicherkarte sind sie in einen ggf. neu anzulegenden Subordner mit dem Namen "Mp3" zu kopieren.

Zur Steuerung der LoRa-Transceiverbausteine ( Serie: RFM9x ) wird eine aktuelle Library von Stuart Robinson, GW7HPW benutzt. Eine LINK zu ihr ist jeweils in den oberen Zeilen des Quellcodes zu finden. Den einzelnen unter [2] herunterladbaren Firmwareversionen ist dabei auch immer noch ein File mit Namen "Settings.h" beigefügt. Darin enthalten sind die Angaben zur benötigten ESP32-Portauswahl für die SPI-Steuerung der LoRa-Bausteine, sowie solche zur Einstellung der LoRa-Betriebsparameter. Weiterhin wird hier u.a. auch noch die ( für den LoRa-APRS-Betrieb normalerweise nicht zu verändernde  ) 70cm-Band-Arbeitsfrequenz bestimmt. Die "Settings.h" sind in den gleichen Ordner zu kopieren, in dem auch die jeweiligen INO-Files abgelegt werden.

Wer mit Arduino-Programmierung und der Weiterverarbeitung von Daten vertraut ist, der sollte mit dem Hochladen der Programmcodes keine Probleme haben. Ggf. sind allerdings auch noch vorher  die benutzten #Includes von z.B. ADAFRUIT ( für die Displaydarstellung ) und auch "BluetoothSerial" z.B. via GOOGLE zu finden und im Library-Ordner der Arduino-IDE abzulegen.

Zum Kompilieren und Hochladen benutzte ich ansonsten eine neuere, auf ESP32-Nutzung erweiterte Version der ARDUINO-IDE. Während für HELTEC- und baugleiche Boards dabei unter "Werkzeuge" das Board "HELTEC WiFi LoRa 32" zu wählen ist, lautet der Name zur Anwahl der TTGO-Boards: "TTGO LoRa32-OLED V1".


LINKLISTE
[1]  http://www.kh-gps.de/Lora-Decoder_OE.htm
[2]  http://www.kh-gps.de/LoRa_Monitor_5.zip
 
[3]  https://www.reichelt.de/arduino-dfplayer-mini-mp3-wav-microsd-karte-ard-dfpayer-mini-p289897.html