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.
MyAWOS-SDR
MyAWOS v10
Mein AWOS-Projekt hat sich inzwischen deutlich weiterentwickelt und ist erheblich gewachsen. Aktuell sind folgende Funktionen über Click implementiert:
Hardware & Infrastruktur
Der Click-Empfänger läuft mittlerweile in einer VM unter
Ubuntu Linux (zur not reicht ein altes Notebook mit Linux). Zur
Erkennung der Clicks wird inzwischen nicht mehr der
Lautsprecherausgang des Funkgerätes in Kombination mit einem
Ein-Bit-A/D-Wandler verwendet.
Stattdessen wird das Trägersignal direkt über einen SDR-Empfänger (USB) detektiert.
Dies ermöglicht eine deutlich zuverlässigere und sauberere Erkennung der
PTT-Signale, unabhängig von der Audio-Ausgabe des Funkgerätes.

Als Relais für den PTT-Taster kommt ein Shelly Uni Plus zum Einsatz.
Auf derselben VM ist auch ein ADS-B-Empfänger aktiv, der einen Geofence rund um unseren Flugplatz überwacht.

Geofence um den Flugplatz
Sobald ein am Platz stationiertes Flugzeug (Rufzeichen, ADS-B Signal) in den überwachten Bereich einfliegt, passiert Folgendes automatisch:
Auch der Rasenmäher lässt sich manuell per Klick über meinen
Click-Empfänger vom Platz verweisen.
Beide Funktionen sind in Betrieb in einer Ubuntu VM mit ADS-B Decoder und
funktionieren sehr zuverlässig.
Smart-Home-Integration
Auf einer weiteren VM-Instanz läuft Home Assistant, das die gesamte Infrastruktur am Flugplatz steuert:
Home Assistant bietet zudem eine komfortable Smartphone-App
für die mobile Steuerung.
Natürlich kann die Ampel und alle anderen Kontakte auch mit der HA App bzw. dem Web-Interface davon oder sogar zu Not mit
der Cloud Oberfläche von Shelly alleine gesteuert werden.
Nächste Schritte
Aktuell arbeite ich an der Spracherkennung, um das System noch intuitiver bedienbar zu machen.
My AWOS
Project – Current Status
during last
month, my AWOS project has matured and grown significantly. The following
functions are currently implemented via Click:
Hardware & Infrastructure
The Click
listener is now running in a VM under Ubuntu Linux. Click detection no
longer relies on the radio's speaker output combined with a one-bit A/D
converter. Instead, the carrier signal is detected directly via an SDR
receiver (USB). This enables significantly more reliable and cleaner
detection of PTT signals, independent of the radio's audio output.
A Shelly
Uni Plus is used as a relay for the PTT button.
An ADS-B
receiver is also running on the same VM, monitoring a geofence around our
airfield.
Airfield
Automation
As soon as
an aircraft stationed at the local airfield enters the monitored area, the
following happens automatically:
This
automation can also be triggered manually via a click through the Click
listener.
Smart Home
Integration
Home
Assistant is
running on a separate VM instance, controlling the entire infrastructure at the
airfield:
Home
Assistant also offers a convenient smartphone app for mobile control.
Next Steps
Speech
recognition is currently in development to make the system even more intuitive
to operate.