Samstag, 17. Juli 2021

Smarte Wetterstation selber bauen

Es ist mal wieder an der Zeit über die Änderungen meiner Wetterstation zu berichten. Neben neuen Außensensor hat meine Station auch einen Regenmesser bekommen. Wie man eine derartige Wetterstation zum Spottpreis nachbauen kann, erfährt ihr im folgenden Artikel.

Ich hatte ja schon einmal so eine "Art" Wetterstation gebaut (Link). Was mir aber immer dabei fehlte, war ein Regenmesser. Abgesehen davon, dass ich eine Netatmo Wetterstation völlig überteuert finde, versagte diese bei mir nach kurzer Zeit ihren Dienst. 

Sehr lange überlegte ich, wie ich mir einen Regenmesser selber bauen könne - dabei war die Lösung so einfach. Ich dachte einfach zu kompliziert. 

Der Regenmesser

Normale Regenmesser haben auf einer Wippe zwei Wasserschalen, welche abwechselnd mit dem Regenwasser befüllt werden. Ist eine Schale voll, kippt diese durch das Gewicht des Wassers nach unten, wobei selbige auch entleert wird. Gleichzeitig wird durch das Kippen die zweite Schalte unter  den Auslass des Regentrichters positioniert. Auch diese wird so lange mit Regenwasser befüllt, bis sie durch Übergewicht kippt und das Spiel beginnt erneut von vorne.
In der Wippe selbst befindet sich ein Dauermagnet, welcher beim Umkippen ein Reedrelais in der dahinter befindlichen Elektronikbox zum Schalten anregt.
Den Regenmesser gibt es fix fertig, als Ersatzteil für eine TFA Dostmann Wetterstation, online zu kaufen.
 Der Sensor hat zwar einen interne Auswerteelektronik, Batteriefach und 433MHz Sender, um mit der dazu passenden Wetterstation kommunizieren zu können, all das wird aber nicht benötigt. Rein der Reedkontakt ist interessant. 
Erfreulicherweise sind auch die Anschlüsse des Relais auf Lötaugen an den Platinenrand geführt worden. Hier kann ein Kabel angelötet werden, um die Impulse selbst auszuwerten. Batterien sollten keine eingelegt werden, da diese die interne Elektronik aktivieren würden. 
Der Regenmesser ist jetzt allerdings nicht mehr frei platzierbar, sondern kabelgebunden. Das hier verwendete Kabel ist ein dünnes geschirmtes SAT-Kabel, da Einkopplungen vermeidet werden sollten (Leitungslänge in meinen Fall ca. 10m).
 Die Auswertung beschreibe ich weiter unten.


Sensoren

Für eine reine Temperaturmessung würde ein simpler und unkaputtbarer DS18B20 Sensor ausreichen. Um auch die Luftfeuchtigkeit angezeigt zu bekommen, hatte ich in der vorigen Version meiner Wetterstation einen AM2301 Sensor verwendet, was im Nachhinein gesehen keine gute Idee war. Spätestens nach dem ersten Winter wird bei der Luftfeuchtigkeit nur mehr 99,9% angezeigt. Die Temperaturmessung funktioniert allerdings noch problemlos. 
Gleiches beim Si7021. Die Sensoren sind einfach nicht für den Außenbereich, bzw. für Bereiche mit stets hoher Luftfeuchtigkeit, geeignet. 

Anders soll das bei den Sensoren von Bosch sein, welche auch in der Arduino-Welt sehr gerne eingesetzt werden (Arduino = Microprozessoren für den Entwicklungs- /Bastelbereich). Ich habe mich hier für den BME280 entschieden, welcher neben Temperatur und Luftfeuchtigkeit auch eine Luftdruckmessung beinhaltet. Der größere Bruder BME680, welcher zusätzlich noch einen Gassensor (grob gesagt: ein Sensor für organische Gase wie zB. CO2) beinhaltet, wäre ein wenig Overkill gewesen (auch nur für den Innenbereich spezifiziert).

Und weil's nicht viel kostet hab ich auch noch einen Helligkeitssensor dazu gepackt. 

Beide Sensoren werden über den I²C ( Bus ausgelesen. I²C wird gefühlt in jeden Consumer Produkt für die unterschiedlichsten Aufgaben eingesetzt. Allerdings ist dieser Bus ursprünglich rein für die Kommunikation auf der Leiterplatte entworfen worden. Deshalb sollte es auch vermieden werden, I²C über lange Kabel hinweg zu betreiben. Genau das habe ich aber gemacht und die Sensoren über ein 10m langes Kabel an einen ESP8266 Mikroprozessor angebunden. Hier sollte dann auf ein geschirmtes Kabel zurückgegriffen werden. Zusätzlich habe ich die notwendigen Pull-up Widerstände niederohmiger gewählt. Mehr dazu weiter unten. 

Gehäuse

Die Sensoren müssen natürlich vor Regen geschützt werden. Durch Zufall bin ich vor einiger Zeit, wie beim Regenmesser, auf ein Ersatzteil einer TFA Dostmann Wetterstation gestoßen. Diese Gehäuse besitzt Lamellen wie sie auch von den Aussensensoren der Profi-Wetterstationen verwendet werden und soll auch bei direkter Sonneneinstrahlung plausible Werte liefern. Ich konnte allerdings 5°C Unterschied zwischen Schatten und direkter Sonne messen - weshalb ich das Gehäuse auch "schattiert" habe.  


Das Innenteil mit dem alten AM2301 Sensor:

Mit doppelseitigem Klebeband werden die Sensoren im Wetterschutzgehäuse fixiert.
Im Übrigen: Helligkeits- und Temperatursensor können am gleichen Bus parallel betreiben werden. 

Der Helligkeitssensor ist klarerweise nicht optimal verbaut, da das Gehäuse kein Sichtfenster hat. Noch dazu befindet sich der Sensor permanent im Schatten usw. Darum kann man in diesem Fall auch keine Absolutwerte ablesen. Man kann aber deutlich erkennen, wann die Dämmerung beginnt oder wann die Sonne scheint und wann nicht. Das reicht auch im Normalfall (Steuerung der Rollläden, Hühnertür, ...)


Ansteuerung

Da ich gerade dabei bin, meinen Wildwuchs an WLAN-Smarthome Devices zu reduzieren, habe ich darauf geachtet, so viele wie mögliche Funktionen in dem ESP8266 zu integrieren. Wer rein die Wetterstation mit dem ESP betreiben will, spart sich natürlich den nicht unerheblichen Aufwand. Mit diesem Aufbau konnte ich die Wetterstation, die Steuerung der Brunnenpumpe, die automatische Hühnertür und den Frostschutz des Pumpenraumes realisieren. 

Wie bereits bei der Hühnertür beschreiben wurde ein WLAN-fähiger ESP8266 mit 12V Eingang verwendet. Diesen habe ich zusammen mit einer Relaisplatine auf einer Lochrasterplatine befestigt.



An den zusätzlichen schwarzen Klemmen werden die Sensoren angeschlossen: 1x Regensensor (GND + Reedkontakt) 1x Senoren (GND + I²C_SCL +I²C_SDA + 3,3V), 1x Raumtemperatursensor (GND + OneWireBus + 3,3V). Eine Datenleitung wäre dann noch frei. 

Jede Datenleitung hat einen Pull-Up Widerstand auf die 3,3V Leitung erhalten. Bei dem Regensesor sind das 3,3kOhm, weil das Signal des Reedkontaktes langsam ist. Ebenso wurde auch beim Raumthermometer DS18B20 ein 3,3kOhm Widerstand aufgrund des kurzen Kabels verbaut. Bei den I²C Leitung sind allerdings 820 Ohm verbaut. 
Zusätzlich sind noch Schutzdioden (1N4148) eingebaut worden. 

So sieht es dann fertig in der Abzweigdose aus:


Den ESP8266 mit Tasmota programmieren und richtig parametrieren:

Counter/Zähler1 zählt die Impulse des Regenmessers. Bei diesem Typ ergibt sich bei einem Puls eine Regenmenge von 0,45 Liter pro Quadratmeter. Der Zähler wird via Webrequest von IoBroker täglich zu Mitternacht auf 0 rückgesetzt. 
Die Wippe "pendelt anscheinend bei Starkregen etwas und würde daher den Counter zu oft auslösen. Darum sollte mit dem Befehl in der Tasmota Konsole "CounterDebounce 5000" nur alle 5 Sekunden ein Änderung des Zählerstandes zugelassen und die Wippe "entprellt" werden.

Montage am Nebengebäude





4 Kommentare:

  1. Interessantes Projekt. Wieviel hast Du da bisher an Zei5 und Geld investiert?

    AntwortenLöschen
  2. Geld ist echt minimal und über die Zeit schweige ich lieber. Aber zählst du bei deinem Hobby echt die Stunden? 😉

    AntwortenLöschen
  3. Hi,
    wie würdest du als großer Bastler 10 bis 12 Außentemperatursensoren realisieren? Ein paar davon mit Luftfeuchtiggkeit?
    Ich hab ne gekaufte Wetterstation mit 8 Aussensensoren aber brauche tatsächlich mehr

    AntwortenLöschen
    Antworten
    1. Diese DS18B20 Temperatursensoren kannst du mehrere auf einen Eingang eines ESP8266 hängen (siehe http://www.holz-und-metall.eu/2018/12/smart-home-teil-6-von-x-holzvergaser.html). Dann sollten noch genug GPIO''s für die restlichen Sensoren übrig bleiben. Der gleich den ESP32 verwenden...

      Löschen