Wetterstation


mit mechanischen standard- Komponenten für den Nachbau

Mir ist Klimaschutz sehr wichtig und um konkrete Aussagen treffen zu können ist es zuerst notwendig möglichst viele Daten an verschiedenen Standorten zu erfassen. Mehr Infos dazu am Schluss im Kapitel Referenzen. Wetterstationen gibt es bereits in allen Variationen, aber wenige mit der Möglichkeit auch CO2 , Feinstaub und Radioaktivität( ionisierende Strahlung, insbesondere Alpha-, Beta- und Gammastrahlung) zu messen. Diese professionellen Wetterstationen sind allerdings sehr teuer. Ich habe nun eine Möglichkeit gefunden, eine solche professionelle Wetterstation mit standard- Komponenten aus dem Baumarkt und auch aus dem Haushalt auf, bzw. nachzubauen. Eine Version ist im folgenden Bild zu sehen (Umweltstation-1). Die zweite Version (Umweltstation-2) ist überwiegend identisch, allerdings entfällt der Wind und Wasser Aufbau mit dem WS3 Kombi - Sensormodul und wird durch das Sensor Modul BME680 ersetzt.



Mechanischer Aufbau


Ich habe für den mechanischen Aufbau weiße Luftschacht Komponenten ( OBI Markt) für den Sensor Teil verwendet und für den Elektronik Teil eine Standard TUBA Box. Alle Teile sind sehr preiswert und erfüllen bestens die Voraussetzungen für den nötigen Außen-Betrieb, da diese 100% wasserdicht sind. Die TUBA Box ist im Überblick Bild zu sehen. Der gesamte Aufbau wurde mit einen Sonnenschirm Ständer realisiert. Den Geigerzähler zur Messung der
Radioaktivität betreibe ich nicht außerhalb, sondern ist auf einen Fensterbrett montiert, auch weil ich aus meiner Erfahrung weiß, dass der Geigerzähler ein eigenes Netzteil benötigt und ca. 1 Meter von den anderen Sensor Teilen entfernt sein sollte.



Elektronik Komponenten

Folgende elektrische Komponenten habe ich verwendet:

- Drei Generationen APRS WS1 WS3 Module für Wind, Wasser, Luft und Temperatur

- BME680 Sensor für Luft und Temperatur

- CO2 MH-Z19C-PH , Infrarot CO2-Sensor

- SDS011 , Feinstaub-Sensor Nova Fitness

- 3 mal Raspberry Pi Pico 2 W

- 3 mal OLED-Display SSD1306

- Im Server/Client Betrieb, bei Software Version-2 ist pro Wetterstation ein Server System zu
empfehlen: Ich habe mich für den Raspberry PI Zero 2W entschieden.

Für den Geigerzähler RadiationD-V1.1 (CAJOE) ist ein zusätzliches Pico mit OLED Display und ein eigenes Netzteil, +5V erforderlich. Außerdem sind noch für die Pegel-Anpassung weitere Komponenten erforderlich. Ich habe es mit einen 74ALS00 gelöst: 74ALS00 Pin 1 -> LED D23 , 74ALS00 Pin 2 -> +5V, 74ALS00 Pin 3 -> GP16



Elektronik: Sensor Modul-1

Links: Feinstaub , Rechts unten: CO2 , Rechts oben : WS3



Elektronik: Sensor Modul-2

Links: Feinstaub , Rechts unten: CO2 , Rechts oben : BME680



Elektronik: Geigerzähler RadiationD-V1.1 (CAJOE)


Der Geigerzähler, links im Bild, Typ: RadiationD-V1.1 (CAJOE) wird mit einen extra Raspberry Pico 2W angesteuert. Den Sensor DHT11 habe ich durch einen BMP280 ersetzt um auch den Luftdruck(+Temperatur) zu erfassen. Es soll ja eventuell einen Zusammenhang zwischen Luftdruck und Radioaktivität geben … und das will ich herausfinden. Derzeit ist der Geigerzähler noch nicht im Außenbereich eingesetzt. die Daten werden bereits auch zum Server übertragen.



Elektronik: Steuer Modul

Da fast alle von mir eingesetzten Sensoren eine serielle Schnittstelle haben ist die Verdrahtung sehr einfach und es gibt keine Probleme hinsichtlich Kabellänge bei 9600 Baud:
Sensor: TX -> PICO: GP1 / PIN2
Sensor: RX -> PICO: GP0 / PIN1
OLED - Anschluß (für alle Module): SDA -> GP14 / PIN19 , SCL -> GP15 / PIN20
Zusätzlich habe ich jeweils einen RESET button an PIN 30/Run gegen Ground an jeden PICO implementiert. Dieser Pin erzwingt bei Bedarf einen Restart.
Ausnahme:
Da bei meiner
Umweltstation-2 keine Messung von Wind und Wasser nötig war habe ich das WS3 Modul durch einen BME680 Sensor ersetzt. Dieser hat allerdings keinen UART sondern eine I2C Schnittstelle. Dadurch kann es allerdings Übertragungsprobleme bei längeren Datenkabel geben. Mit niedrigerer Frequenz und einer Kabellänge von ca. 60cm läuft es auch noch stabil. Die Verkabelung ist auch sehr einfach:
Sensor: BME680,SDA --> PICO GP0 / PIN 1
Sensor: BME680,SCL --> PICO GP1 / PIN 2
Ein gleichwertiges, funktionierende Sensor Modul mit UART Schnittstelle habe ich nicht gefunden, nur den SEN0501. Dieser funktionierte im UART Mode überhaupt nicht und im I2C Mode war er ungeeignet und hat sich nicht so verhalten wie im Datenblatt beschrieben. War für mich eher ein “Fake“ .



Software

Die Software , Version 1 und Version 2 steht komplett als zip-File zur Verfügung.

Die Programme wurden komplett(derzeit) mit der Programmiersprache Python entwickelt. Tja, was soll ich noch dazu sagen: KI lässt grüßen. Mehr Informationen in der Datei InfoStatus.pdf. Damit keine Probleme auftauchen hinsichtlich gegenseitiger Beeinflussung habe ich die Sensoren mit der dazugehörigen Software auf 3 Raspberry Pico 2W verteilt. Für jeden Sensor gibt es 3 Programm Varianten, erst mal nur zum Auslesen der Sensor Daten, dann mit Anzeige auf dem OLED Display und dann noch mit Datenübertragung via WLAN.



Software Version 1

Ordner: Version-1. Diese Version ist ideal für den Einstieg und für Testzwecke gedacht. Die Daten von jeden Sensor werden direkt im Mini-OLED Display angezeigt. Bei der WLAN Anbindung arbeitet jeder Raspberry Pico 2W hier quasi als “Mini-Webserver“. Der Geigerzähler RadiationD-V1.1 (CAJOE) ist noch nicht für das WLAN vorbereitet.
Das Konzept dieser Software Version hat allerdings viele Nachteile und ist für Dauerbetrieb eher nicht geeignet weil:
Mehrere Picos als „Mini-Webserver“ im WLAN → instabil bei Dauerbetrieb.
Jeder Pico = eigener Webserver , Browser greift direkt auf jeden Pico zu
Jeder Pico hat WLAN + Socket + HTML
-> Verbindungsabbrüche und Timeout
Ergänzungshalber noch ein Beispiel wie die Daten im Browser erscheinen:




Software Version 2

Ordner: Version-2 Für einen stabilen Dauerbetrieb ist eine Client/Server Architektur erforderlich. Ein zusätzliches Server System ist nun nötig. Ich habe mich für das Raspberry PI Zero 2W System pro Wetterstion entschieden. Hier die einzelnen Schritte für die Installation:
- Das Betriebssystem kann man sich leicht mit dem Raspberry PI Imager herunter laden und auf die Micro-SD installieren. . Ich habe mich für das Raspberry PI OS Lite (64-bit) entschieden. Bitte nicht vergessen ssh support zu aktivieren.
- Ich habe temporär einen Monitor angeschlossen, einen User(pi)
mit Password erstellt. In meinen Fall pi und musste ssh permanent aktivieren mit:
sudo systemctl enable ssh und sudo systemctl
start ssh . IP abfragen mit ifconfig -a . Ab jetzt war mein Server mit ssh ( auch von Windows ) zu erreichen, z.B. ssh pi@192.168.178.72
- python3 SW installieren mit: sudo apt update
sudo apt install python3-pip -y
pip3 install flask
bei Fehler: sudo apt install python3-flask -y
Die gesamte Client/Server Software befindet sich im Ordner
Version-2 . Die Wetterstation Server Software, server.py auf das Server System kopieren. Ab jetzt kann die Wetterstation gestartet werden: mit python3 server.py
Nun die Software für die Sensoren auf die dementsprechenden PICO‘s kopieren: Dazu muss vorher im Python Programm die WLAN ID mit Password gesetzt werden und auch die IP des Server System, wie z.B. bei CO2 Sensor: Wetter_V2/MH-Z19C-Client_V1.py : SERVER = "http://192.168.178.72:5000/data"
Nun kann das Programm unter Namen main.py auf das Ziel PICO kopiert werden. Sind alle Clients gestartet kann man im Browser mit der Adresse http://192.168.178.72:5000 die Daten wie folgt sehen:

Die Grenzwerte bei CO2 und Feinstaub werden mit Grün/Orange/Rot dargestellt.


Infos: Auf Anpassungen/Optimierungen im PI Betriebssystem will ich hier nicht weiter eingehen, da dies bereits anderweitig ausführlich dokumentiert ist .
Die Probleme beim gleichzeitigen Startup der PICO‘s , speziell beim CO2 Sensor sind
garantiert behoben. Probleme wie “System-hängt“ traten speziell beim Einwählen ins WLAN auf und wurden durch dementsprechende Watchdog Timer behoben. Alle Status Meldungen werden beim Start im OLED Display angezeigt.



Software Version 3
%
In Vorbereitung / (Arbeit)
Idee: Wetterstation außerhalb vom WLAN erreichbar mit Daten-Auswertung und Statistik
So wie es aussieht benötigt man Reverse-Proxy-Dienste, wie z.B. ngrok + iframe
und damit habe ich keine Erfahrung.
Über Hinweise würde ich mich freuen.



Referenzen

Inspiriert wurde ich durch folgende Seite: https://learn.pimoroni.com/article/enviro-plus-and-luftdaten-air-quality-station . Allerdings war die Lebensdauer des damals eingesetzten PMS5003 immer nur bei mir auf 1 Jahr begrenzt. Auch das damals eingesetzte Raspberry PI 3 hatte nach 3 Jahren ausgedient. Toll fand ich die Idee, die Sensordaten zu registrieren. Der dort veröffentliche Link https://meine.luftdaten.info/register funktioniert (bei mir) nicht mehr und ist wohl durch folgenden Link ersetzt: https://devices.sensor.community/login?next=%2Fmy-sensors Leider kann ich nicht herausfinden welches Datenformat auf dieser Seite erwartet wird. Die Idee mit vielen Sensordaten auf den Klimawandel hinzuweisen finde ich super. Vielleicht kann man diese Idee wieder neu beleben.

Für Anregungen und Hinweise bitte melden. Ich würde mich sehr freuen
Bitte Mail an info@pdp11gy.com