MyAWOS
[Automated Weather Observing System]
von Dennis Cox und Johann Wiesheu, Nov. 2022
Nachdem nun endlich „Fliegen ohne Flugleiter“ in Deutschland möglich ist, kann es vorkommen, dass sich keine „fachkundige“ Person am Flugplatz befindet, die Empfehlungen zur Landung per Funk geben kann.
Die Lösung: Ein AWOS System
Entweder als sehr teures professionelles Kaufgerät oder als kostengünstige DIY-Lösung mit einer lokalen Wetterstation (mit Internetanbindung), einem (evtl. vorhandenem) Funkgerät, einem Raspberry Pi Computer (rPi) und einem Arduino Prozessor, sowie etwas Geschick.
Die Basis dafür stammt von Dennis Cox. Ich habe mir erlaubt, das System etwas zu optimieren: Anbindung einer vorhandenen Ecowitt Wetterstation, online Sprachumwandlung per gTTS, Kommandozeilen Parameter, Steuerung des Triggerlevels am Arduino per serieller Schnittstelle vom rPi, RTS/CTS Steuersignale, 3-, 5- 7 Klickerkennung und einiges mehr.
Die Bauanleitung und der Source Code ist auf der Webseite von Dennis Cox zu finden: https://www.myawos.com/.
So funktioniert es:
Der Raspberry Pi holt sich regelmäßig Wetterdaten von der Wetterstation und wandelt diese in eine Audiodatei um. Das kann mit einer computergenerierten Stimme in mehreren Sprachen geschehen oder per eigener Stimmaufzeichnung. Der Lautsprecher des Funkgerätes ist mit einem Analog-Eingang des Arduinos verbunden. Der Arduino zählt die Anzahl von Klicks binnen einer vorgegebenen Zeit von z.B. 5 Sekunden und informiert den rPi darüber. Dieser führt die gewünschte Aktion aus und spielt z.B. bei 5 Klicks das aktuelle Wetter über seinen Audio-Ausgang (welcher mit dem MIC -Eingang des Funkgerätes verbunden ist) ab.
Es können mehrere Aktionen für die Anzahl der erkannten Klicks konfiguriert werden. Wenn Sie z. B. nur den Wind prüfen möchten, können Sie dies mit 5 Klicks tun und das vollständige Wetter mit 7 Klicks abrufen. Mein System aktiviert bei 3 Klicks eine Ampel/Blitzlicht (via funkferngesteuerter Schaltsteckdose), die die Benutzer eines Feldweges am Flugplatz über Flugaktivität informiert.
Aktuell ist das System angepasst für Yaesu und Icom Handfunksprechgeräte. Demnächst erfolgt die Adaption für ein KRT2 Funkgerät (CoPilot). Als Wetterstation dient eine Ecowitt Wetterstation mit Internet-Anbindung und API.

Ein wesentliches Problem bei der Umsetzung im Zusammenhang mit einem alten Icom Handfunkgerät sind die von Klick zu Klick stark unterschiedlichen Signalpegel am Lautsprecher-Ausgang. So muss geeignetes Trigger-Level zur Erkennung der Klicks gefunden werden. Erschwerend kommt hinzu, dass die fallende Flanke eines Klicks nur sehr langsam abfällt und dabei evtl. die Triggerschwelle vor Eintreffen des nächsten Klicks noch nicht unterschritten wurde.

Das Urheberrecht für MyAWOS liegt bei Dennis Cox. Sie dürfen den Code und die Dokumentation nach eigenem Ermessen verwenden, solange Sie sich darüber im Klaren sind, dass alle Rechte vorbehalten sind und Sie das Produkt nicht weiterverkaufen oder den Code in einem anderen Produkt ohne schriftliche Genehmigung von Dennis Cox und/oder Johann Wiesheu verwenden dürfen. Wir übernehmen keine Gewähr, dass der Aufbau in Ihrer Umgebung erwartungsgemäß funktioniert und haften nicht für eventuelle Störungen.
MyAWOS 2.0
Eine weitere Optimierung stellt der Ersatz des Arduino
Controllers durch einen Adafruit ADS1115 A/D Wandler direkt am rPi dar. Durch den Wegfall des Arduinos wird der Aufbau
wesentlich vereinfacht. In diesem Fall erkennt der rPi
die Klick-Signale am Funkgerät und führt wie oben erwähnt die gewünschten
Aktivitäten aus. Eine Flankenerkennung verbessert die Trennschärfe der
einzelnen Klicks. Ein weiterer Fortschritt ist die gänzlich umgestaltete
Übersetzung von Text in Sprache ein einem Python Modul und lokale
Sprachbibliotheken. Das Messaging Modul sendet Informationen und Nachrichten an
ein optionales OLED-Display oder an einen Email-Empfänger.
Verschiedene LEDs informieren über den aktuellen Status. Ergänzt wurde einen
433 MHz Sender und -Empfänger zur Steuerung einer Ampel/Blitzlicht (via
funkferngesteuerter Schaltsteckdose), die die Anrainer bei der Benutzung eines
Feldweges am Platz bei Flugbetrieb warnt.
Die PTT-Taste des Funkgerätes wird nicht über ein mechanisches Relais bedient,
sondern durch ein Solid State Relais (AQY211EH), welches nicht mehr klemmen
kann.
Der Source-Code und weitere Dokumentation von MyAWOS2.0 steht als Version 2 auf Dennis‘ Seite bzw. Github repository zur Verfügung.
Erforderliche Teile:
|
Wetterstation
mit Ecowitt API |
ca. 140 € (besser ist eine Davis Wetterstation mit LAN Schnittstelle) |
|
Raspberry Pi3B oder Pi4B |
ca. 45 – 70 €, momentan kaum verfügbar und teuer |
|
SD-Karte 32GB |
ca. 8 € |
|
ADS1115 A/D Wandler |
ca. 5 € |
|
Gehäuse |
ca. 15 € |
|
OLED (nicht erforderlich) |
ca. 8 € |
|
Kleinteile und Kabel |
ca. 8 € |
|
und natürlich ein Funkgerät |
z.B. Yaesu FTA250 für ca. 250 € oder vorhandenes |
Wir wünschen viel Spaß beim Aufbau und würden uns über Feedback freuen - noch mehr, wenn dieses AWOS System an einem Fluplatz eingesetzt wird!
Das Urheberrecht für MyAWOS 2.0 liegt bei Dennis Cox und Johann Wiesheu. Sie dürfen den Code und die Dokumentation nach eigenem Ermessen verwenden, solange Sie sich darüber im Klaren sind, dass alle Rechte vorbehalten sind und Sie das Produkt nicht weiterverkaufen oder den Code in einem anderen Produkt ohne schriftliche Genehmigung von Dennis Cox und/oder Johann Wiesheu verwenden dürfen. Wir übernehmen keine Gewähr, dass der Aufbau in Ihrer Umgebung erwartungsgemäß funktioniert und haften nicht für eventuelle Störungen.
MyAWOS 4.0
Reduziert auf das Minimum: Der rPi wertet das Vorhandensein eines Trägersignals aus - digital.
Der elektrische Aufbau wird mit dem Ersatz des ADS1115 A/D
Wandlers durch den 1-bit A/D Wandler LM393 erheblich reduziert. Der LM393 ist
ein Komperator und vergleicht zwei Eingangssignale
(Referenz-Spannungspegel und das zu prüfende Lautsprechersignal) und gibt bei Überschreiten
der Referenzspannung den Spannungspegel der Versorgungsspannung Vss am Ausgang aus. Am GPIO Eingang
des rPi müssen diese Pulse nur noch gezählt werden.
In diesem Aufbau wurde eine weitere Herausforderung gemeistert: Als Funkgerät
soll das bei uns am Flugplatz verwendeten Einbaufunkgerätes KRT2 (Copiloten
Seite) verwendet werden. Besonders dabei ist der am Speaker+ Ausgang
abzugreifende Signalpegel. Dieser beträgt 6 bis 8 Volt und ist LOW-Aktiv. D.H.
bei einem empfangenen Signal sinkt dieser Pegel auf ca. 3 Volt ab. Auch musste
der Schutzwiderstand im Stromkreis der PTT Taste
entfallen, da am KRT2 ein höherer Strom zur Aktivierung von PTT erforderlich
ist.
Der Source-Code wurde auf ein Minimum reduziert. Der Code des Click_Listeners wurde im Kern neu erstellt und enthält
ebenfalls eine Flankenerkennung. Längere Klicks/Funksprüche (>1 sec.) werden
ignoriert. Neu ist die Option, dass das zu erkennende Signal
auch LOW-aktiv sein kann. Das Wetter-Modul aus der Version 2 wurde optimiert,
so dass der Wetterabruf und die Transcodierung als Python Funktion aus dem
Click-Listener heraus aufrufbar sind. Weiterhin
verbaut bleibt der 433 MHz Sender und -Empfänger zur Steuerung einer Ampel. Sobald
im nächsten Winter Zeit ist, werden all die Erweiterungen aus der Version 2
ergänzt.
Im Labor wurde der 1-bit-A/D Wandler diskret auf einem Breadboard
aufgebaut. Folgende Schaltung wurde erfolgreich getestet:

In der Produktionsumgebung ist momentan ein „ready to use“ LM393 Modul eingesetzt, das es für 2 bis 3 Euro zu kaufen gibt:

Da der zu erfassende Signalpegel sehr viel höher ist als 5 Volt und auch die Referenzspannung bei ca. 4,5 Volt liegt, ist die Versorgung des LM393 mit der am rPi verfügbaren Spannung von 5 V nicht ausreichend. Weil am KRT2 12 Volt zur Verfügung stehen und das LM393 Modul für eine Versorgungspannung von bis zu 24 Volt ausgelegt ist, kann einfach diese Versorgungsspannung verwendet werden. Dabei ist allerdings zu beachten, dass das Ausgangssignal des LM393 der Versorgungsspannung (also 12 Volt) entspricht. Eine Spannung von mehr als 3,3 Volt am GPIO-Eingang des rPi kann diesen beschädigen oder zerstören. Ein einfacher Spannungsteiler, der die Eingangsspannung am GPIO auf z.B. 2,5 bis 3 Volt begrenzt schützt den Raspberry. Nun muss nur noch die invertierte Signallage (LOW-Aktiv) entweder am Source-Code oder durch einen weiteren, invertierenden LM393 Baustein angepasst werden.
Der Aufbau gestaltet sich wie folgt:

Mein Gerät wurde um den zusätzlichen digitalen Eingang erweitert:

In der aktuellen Konfiguration sind folgende Aktionen definiert:
· 7 Klicks: Wetteransage komplett
· 5 Klicks: Ampel ROT für 200 Sekunden
· 3 Klicks Ansage der aktuellen Windverhältnisse
Während der Rotphase der Ampel reagiert das System nicht auf weitere Klicks
Der Source-Code und weitere Dokumentation von MyAWOS4.0 steht als Version 4 (v4) auf Dennis‘ Seite bzw. Github repository zur Verfügung.
Das Urheberrecht für MyAWOS 4.0 liegt bei Dennis Cox und Johann Wiesheu. Sie dürfen den Code und die Dokumentation nach eigenem Ermessen verwenden, solange Sie sich darüber im Klaren sind, dass alle Rechte vorbehalten sind und Sie das Produkt nicht weiterverkaufen oder den Code in einem anderen Produkt ohne schriftliche Genehmigung von Dennis Cox und/oder Johann Wiesheu verwenden dürfen. Wir übernehmen keine Gewähr, dass der Aufbau in Ihrer Umgebung erwartungsgemäß funktioniert und haften nicht für eventuelle Störungen.
MyAWOS 6.0
In der Version 6.0 werden die Vorzüge der Version 2
(Ansteuerung OLED Display und Email-Versand mit der im
Feld sehr gut funktionierenden Minimal-Version 4 vereint.
Zusätzlich wurde die Kommunikation zwischen dem click_listener
Modul und dem Messenger-Modul umgebaut und auf der Basis MQTT realisiert. Ein MQTT Broker erlaub jetzt den Datenaustausch zwischen
verschiedenen Modulen, sogar Standortübergreifend. Dies erlaub auch den Einsatz
einer MQTT fähigen Steckdose (smart plug), welche
sich am MQTT-Broker anmeldet und angesteuert wird, bzw. dort ihren Status
abliefert. Der Verkabelungsaufwand wird dadurch erheblich verringert: die RF433
Sender und Empfänger am rPi können entfallen.
Der bisherige (Queue basierende) Messaging Modul wurde durch den
mqtt_messenger.py ersetzt. Die Module zum email Versand
und Ansteuerung des OLED Displays werden weiterverwendet.
Es wurde eine neue Option zur Aufnahme des Startlogs (Flugplatzkladde) ergänzt, welche bei 6 Klicks die Startmeldung des Piloten aufnimmt und per email versendet. Diese Opiton ist noch experimental.
Ein paar kleine Hürden gab es beim neuen Aufbau zu
überwinden:
Die am rPi standardmäßig installiert und
konfigurierte Firewall „firewalld“ verhinderte die
Verbindung der smarten Steckdose am Port 1883. Die Firewall wurde durch UFW
ersetzt und benötigte Regeln für TCP 22 und TCP1883 igres
konfiguriert.