|
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 bis
Version
4 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
Ordner:
Version-3
Wetterstation
außerhalb vom WLAN erreichbar, SSD Disk für
Datenspeicherung und Einbindung der Geigerzähler
Modul.
Realisiert mit dem Reverse-Proxy-Dienst ngrok
(open
source)
realisiert.
Installation
einfach durchzuführen:
wget
https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-arm.zip
unzip
ngrok-v3-stable-linux-arm.zip
sudo mv ngrok
/usr/local/bin
Dann im Browser:
https://dashboard.ngrok.com/signup
und
hier bekommt man den TOKEN :
https://dashboard.ngrok.com/get-started/your-authtoken
Dann
Token aktivieren: ngrok config add-authtoken TOKEN
Start:
ngrok http 5000 ,
es kommt dann folgende Meldung:
Forwarding :
https://stony-outlying-unaltered.ngrok-free.dev ->
http://localhost:5000
Den Zugriff auf die Daten kann man
auch mit einen Password steuern. Im Order /Version-3 habe ich das
Serverprogramm server(_V3).py
als
Beispiel hinterlegt. Wichtig bei Password Schutz ist die Zeile
@requires_auth am Ende des
Server
Programm.
Den Auto Start habe ich wie beim server Programm
mit systemctl implementiert
---->Meine
Stationen sind
nun auch von außerhalb zu erreichen.
Bitte E-Mail
senden an info@pdp11gy.com
falls
Zugriff erwünscht ( ab 17.5.2026) . Ich sende dann gerne den
Link mit Account und Password.
Externe
SSD Disk
Der
Raspberry PI Zero hatte bei der Implementierung mit externer SSD
Disk ein komisches Verhalten. Letztendlich ist es abhängig
von der Qualität des Netzteils. Bei mir hat auch der
Eintrag: program_usb_boot_timeout=2
in
der Datei: /boot/firmware/config.txt
geholfen.
Die
eigentlich Anbindung/Installation einer externen Disk ist
mehrfach beschrieben. In meinem Fall habe ich die Ordner
/mnt/ssd/data , /mnt/ssd/logs und /mnt/ssd/cam erstellt.
Folgenden Befehl nicht vergessen: sudo chown -R pi:pi /mnt/ssd .
Um Data logging zu aktivieren muss im server.py
Programm
folgendes eingefügt werden ( ist bereits im Beispiel
server.py Programm eingefügt):
DATA_PATH =
"/mnt/ssd/data/"
DATA_FILE = DATA_PATH +
"data.json"
Geigerzähler
RadiationD-V1.1 (CAJOE)
Dieses
Sensormodul hat nun auch WLAN Anbindung, zusammen mit einen
BMP280 Sensor um einen eventuellen Zusammenhang mit
Luftdruck/Luftfeuchtigkeit zu ermitteln.
|
|
Software
Version 4
Ordner:
Version-4
:
Beide Wetterstationen. Station 2 noch nicht ganz fertig gestellt.
Voraussichtlich fertig gestellt und erreichbar ab Mitte Mai
2026.
|
|
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
|