Wetterstation Die Wetterstation ist als Projekt angelegt und wird daher laufend erweitert und optimiert. Um eine zuverlässige Erfassung der Weterdaten zu gewährleisten, bedarf es einer Technik die einerseits solide aufgebaut den Wetterbedingungen trotzen kann, andererseits aber auch präzise und störungsfrei arbeitet. An dieser Stelle möchte ich technische Details der Wetterstation aufzeigen aber auch aktuelle Projektvorhaben und umgesetzte Erweiterungen oder Verbesserungen. Das sind einerseits Informationen zu Hard- und Software, andererseits aber auch Erfahrungen und Modifikationen der Anlage.
|
erste Modifikation In der kalten Jahreszeit besteht die Gefahr, dass der Niederschlagssensor einfriert oder durch den Schnee völlig überfüllt wird und damit keine Messwerte mehr liefert.
|
Abhilfe soll hier eine Niedervolt-Heizfolie (12V) schaffen. Kosten: 7,35€/Stück
|
Heizung Damit der ganze trichter beheizt werden kann, sind 2 Heizfolien erforderlich. Die Folien sind selbstklebend und werden wie gezeigt auf der Unterseite des trichters aufgeklebt. Anschließend werden die Drähte verlötet und mit Schrumpfschlauch (mit Innenkleber) geschützt. |
Ein Heizelement gibt ca. 13Watt an
Heizleistung ab. Dies ist jedoch deutlich mehr als erforderlich
und daher werden die Elemente in Reihe geschaltet. Daraus folgt: Halbe Betriebsspannung
je Element -> also 25% der Leistung. In Zahlen ausgedrückt
etwa 3Watt pro Element. Dies reicht aus um den trichter vor Vereisung zu schützen.
Lose Drähte werden mittels Heißkleber so fixiert, dass sie keinesfalls die Regenwippe
berühren bzw. blockieren können.
|
für die Steuerung Ein Thermostat im benachbarten Anschlußkasten schaltet die Versorgungsspannung ein, sobald die Außentemperatur unter +3°C fällt.
|
Messwerte erfassen, archivieren und darstellen Was bietet uns hier der Hersteller an? Mittlerweile ist es gängige Praxis, dass Hersteller neben dem Verkauf ihrer Geräte auch Portale für deren Nutzung betreiben. Ziel ist es dem Kunden ein kostenpflichtiges Abo zu verkaufen, sodass dauerhafte Umsätze generiert werden.:-( So ist es leider auch beim hier vorliegenden Hersteller. Die Messwerte der Wetterstation können zwar live auf dem PC/Smartphone mitverfolgt werden, eine Speicherung der Daten ist jedoch nicht ohne Weiteres möglich. Bei der angebotenen kostenlosen Plattform sind die Auswertemöglichkeiten eher bescheiden. Die Darstellung der Messwerte wird vom Hersteller größtenteils fest vorgegeben und die deutsche Übersetzung ist mangelhaft. Die komfortable Darstellung der Messwerte ist kostenpflichtig. Diese Lösung kommt definitiv nicht in Frage. Was liegt nun näher, als die eigene Verarbeitung und Speicherung der vorliegenden Messdaten? Mal überlegen, was ist zu tun???
- Daten aus der Wetterstation auslesen
- Ein Mini-PC für die Ablaufsteuerung
|
Kommunikation mit der Wetterstation Eine Abfrage der Daten kann nun unter: http://192.168.178.116/v1/current_conditions erfolgen. |
Beispiel hier: Temperatur 36,9 F entspricht 2,7°C
|
Datenbank Auch die Bezeichnung der Messwerte wird 1:1 in die Spaltenüberschrift übernommen. z.B. "temp", "hum", "dew_point"... Nachdem die Messwerte empfangen und umgerechnet wurden, erfolgt die Ablage in der Datenbank. Die Datenbank speichert hierzu jeweils die zugehörige Uhrzeit mit Datum. Damit ist gewährleistet, dass Auswertungen über beliebige Zeiträume möglich sind. |
Beispiel: Tagestemperaturverlauf, incl Auswertung der min / max Werte sowie deren Uhrzeit |
Damit die Abfrage und Speicherung automatisiert werden kann ist ein wenig
Programmieraufwand notwendig. Ich habe ein php-Skript geschrieben, welches genau diese
Aufgaben erledigt.
Hierzu ist allerdings ein lokaler Webserver erforderlich, welcher den php-Code versteht
und ausführen kann.
Beispiel: Apache (freeware)
Dieses Skript ist vom Prinzip her eine Webseite, welche beim Aufruf einen vorgegebenen
Programmcode startet.
Die folgenden Ausschnitte zeigen die wichtigsten Funktionen des Skripts. |
Datenbank einrichten Die Userdaten stehen in der externen Datei inc/db.php |
Die Struktur aus dem Antwortstring bleibt grundsätzlich erhalten. Die Kenntnis dieser Struktur hilft sehr beim Verständnis dieser Funktion. |
Temperatur: Grad Celsius = 5/9*(Farenheit-32) Windgeschwindigkeit: km/h = 1,609*mph Luftdruck: hPa = 33.86*inHG |
Datenbank beschreiben Zuletzt folgt die Speicherung der der SQL-Datenbank. */3 * * * * /usr/bin/wget -O - -q -t 1 http://192.168.178.12/wetterstation.php |
|
Datenbank auslesen und Webseite erstellen Die zuvor erfassten Daten können nun zur Darstellung auf einer Webseite aus der Datenbank abgefragt werden. Bei der Gestaltung der Seite sind der Kreativität keine Grenzen gesetzt. Ich zeige hier ein einfaches Beispiel, wie sämtliche Messwerte übersichtlich in einer Tabelle dargestellt werden können. Schauen wir uns zunächst noch einmal die Struktur der aufgezeichneten Messwerte an: Die Tabelle in der Datenbank enthält für jeden Messwert jeweils eine Spalte; also Temperatur, Luftfeuchtigkeit, Niederschlagsmenge usw. Die Überschriften der Spalten wurden nach dem Format von Davis benannt. Temperatur heißt dort 'temp', Luftfeuchtigkeit heißt 'hum' usw.... Wir selbst wissen zwar was damit gemeint ist, aber für eine allgemein verständliche Darstellung auf der Webseite sollen die ausführlichen Begriffe verwendet werden. Außerdem soll zu jedem Messwert die zugehörige Einheit dargestellt werden. Daher wird in der Datenbank eine weitere Tabelle mit dem namen 'Struktur' angelegt, welche die Zuordnung der namen und der jeweiligen Einheiten beinhaltet. Beispiel: temp -> Temperatur -> °C Wenn wir nun eine Anfrage an unsere Wetterdatenbank stellen, so erhalten wir beispielsweise: 'hum, 83.6' Mit der Antwort 'hum' fragen wir bei der zweiten Tabelle nach und bekommen als Antwort 'Luftfeuchtigkeit, % rel.' Mit beiden Antworten können wir nun auf der Webseite den Messwert 'Luftfeuchtigkeit: 83,6% rel.' darstellen. |
Wetterkamera Die tabellarische Darstellung der Messwerte und die Darstellung in Diagrammform vermitteln einen präzisen Eindruck über die aktuelle Wetterlage bzw. deren Verlauf. Häufig kann aber eine visuelle Information viel mehr über die aktuelle Wetterlage aussagen als zahlreiche Messwerte. Wie heißt es so schön? "Ein Bild sagt mehr als tausend Worte". Daraus entstand die Idee einer Wetterkamera. Umgesetzt wird dieses Projekt mit dem bereits vorhandenen Minicomputer (hier: Raspberry pi). Um das einfache Bild der Kamera mit den gewünschten Informationen zu versehen, sind folgende Aufgaben zu erfüllen: 1.) ein aktuelles Foto von der Außenkamera anfordern 2.) Fotobearbeitung (Auflösung optimieren und Größe ändern) 3.) Die Wetter-Messwerte aus der Datenbank abfragen 4.) Prüfen ob Wetterwarnungen beim DWD vorliegen 5.) Größe und Position des Windpfeils berechnen, Größe ändert sich je nach Windstärke 6.) Icons, Warnmeldungen und farbige Hintergrundflächen ins Foto einblenden 7.) Die Messwerte und andere Informationen ins Foto einblenden 8.) Diesen Ablauf jede Minute wiederholen und somit ein neues Foto auf den Webserver hochladen 9.) die letzten 60 Fotos werden auf dem Webserver gespeichert und können als Animation abgespielt werden. Danach werden die Fotos gelöscht. Info: Die Aufnahmerichtung schwenkt einmal pro Stunde über den Ortskern hin und her. (seit Version 5.0) Sämtliche Einblendungen sind dynamisch und werden in Abhängigkeit der Wetterdaten, Tageszeit und Warnmeldungen erzeugt. Folgende Informationen können aus dem Bild der Wetterkamera entnommen werden: - optischer Eindruck der aktuellen Wetterlage - Windrichtung, Windstärke - Temperatur, Taupunkt, Luftdruck, Luftfeuchte - Niederschlagsintensität und Menge - Sonnenaufgang/-untergang - Sichtweite über Markierungen im Bild zu bewerten ist die Horizontlinie, die unmittelbar unten an die Markierung angrenzt. Foto links und mitte : Sichtbedingung erfüllt, Foto rechts: Sichtbedingung nicht erfüllt - aktuelle Wetterwarnungen (seit Version 4.3) - Werte des Regensensors (seit Version 6.5) |
Niederschlagssensor Im laufenden Betrieb der Anlage war immer wieder festzustellen, dass bei leichtem Regen die Regenrate mit 0mm/h angezeigt wird. Wie kommt das? Um dies zu verstehen müssen wir uns einmal die Funktionsweise der Messung genauer anschauen: Die Wetterstation erfasst die Niederschlagsmenge über einen sogenannten Kipplöffelsensor. Hierbei wird der Niederschlag über einen Trichter gesammelt und dem Kipplöffel zugeführt. Beim Erreichen einer bestimmten Füllmenge wird der Kippvorgang ausgelöst. Der Löffel entleert sich. Durch das Zählen der Kippvorgänge wird die tatsächliche Regenmenge ermittelt. Was bedeutet dies für die Praxis? Bei kleinen Niederschlagsraten kommt es nicht, bzw. sehr stark verzögert zur Auslösung. Die Wetterstation nimmt geringe Niederschläge folglich nicht wahr. Abhilfe schafft hier ein zusätzlicher Sensor: Zum Beispiel der Regensensor m152k von Kemo, er arbeitet nach dem kapazitiven Erkennungsprinzip und kann bereits wenige tropfen auf der Sensorfläche erkennen. Vorteil: die Sensorfläche ist elektrisch isoliert und kann daher nicht oxidieren. Der Relaisausgang des Sensors wird mittels Microcontroller (ESP8266) erfasst und die Information an den zentralen Webserver weitergeleitet. Dort erfolgt der Eintrag der Messwerte in die bereits beschriebne mySQL Datenbank. Durch die schräge Montage kann das Wasser schneller ablaufen. Die Kabelbinder sollen verhindern, dass sich Vögel auf den Sensor setzen. Was wurde damit erreicht? Ergebnis: bei leichtem Regen wird nun in der Tabelle (Menupunkt Messwerte) und im Bild der Wetterkamera der Hinweis "Sprühregen" angezeigt. Beachte: Da wir nun das Messprinzip kennen, wissen wir, warum die Regenrate mit 0mm/h angezeigt wird. |
SmartHome Anbindung - hier mit dem ioBroker Im Zeitalter von IoT und SmartHome werden auch in Privathaushalten immer mehr Geräte vernetzt. Wieso also nicht auch die Wetterstation? Welche Möglichkeiten bietet die SmartHome Anbindung und wie wird sie umgesetzt: Im smarten Wohngebäude können elektrische Verbraucher (wie z.B. Lampen, Rollläden, Heizung usw.) über das lokale Netzwerk gesteuert werden. Dabei erfolgen die Schaltvorgänge durch eine frei definierbare Logik. Das heißt, elektrische Verbraucher können aufgrund ganz unterschiedlicher Ereignisse oder Zustände je nach Bedarf ein- oder ausgeschaltet werden. Dies können auch Wetterereignisse oder Wetterzustände sein. Je mehr unterschiedliche Arten von Sensoren im SmartHome verfügbar sind, umso vielfältiger sind die Möglichkeiten von deren Verknüpfung. Damit unser Haustechnik Server (ioBroker) nun auf aktuelle Wettersituationen reagieren kann, benötigt er einen Zugang zur Wetterstation. Die Abfrage erfolgt wie bereits oben im Kapitel "Kommunikation mit der Wetterstation" beschrieben. Nur dass in diesem Fall ein blockly Skript des ioBroker die gesamte Aufgabe übernimmt. Mit den nun verfügbaren Wetterdaten ist der ioBroker in der Lage z.B. - einen Wetterbericht zu erstellen und ihn über smarte Lautsprecher auszugeben. - Wetterwarnungen auf das Smartphone zu versenden. - Hinweise über smarte Lautsprecher auszugeben, wenn bei Sturm oder Regen noch Fenster oder Türen offen stehen. - bei Dunkelheit und gleichzeitigem Regen die IR-Scheinwerfer der Außenkameras zu deaktivieren, um so Fehlalarme zu verhindern. - bei Starkregen den Mähroboter zu pausieren und zurück zur Garage zu fahren. Wie sieht das zugehörige Blockly Skript aus? Der Trigger startet das Skript alle 10 Sekunden und startet damit die Anfrage an die Wetterstation: Die Antwort der Wetterstation als JSON-String muss entsprechend aufbereitet werden. Die Ergebnisse schreiben wir in eigens angelegte Datenpunkte: Da die Wetterstation amerikanische Grundeinheiten verwendet müssen wir einige Messwerte noch eben konvertieren. Beim Niederschlag wird die Anzahl der Kippvorgänge des Kipplöffelsensors übermittelt. Der Sensor zählt in 0,2mm Schritten. Daher wird der Messwert hier durch 5 dividiert, um somit den Niederschlag in mm zu erhalten. Die Luftfeuchte wird auch in Amerika in Prozent angegeben, daher ist hier keine Konvertierung erforderlich: |
Messwerte verarbeiten und darstellen |