Arduino Wetterstation

Auf dieser Seite zeigen wir, wie eine professionelle Arduino Wetterstation gebaut wird. Die Wetterstation kann folgende Parameter erfassen: Temperatur, Luftdruck, Feuchtigkeit und Windgeschwindigkeit. Über das Ethernet Shield werden die Wetterdaten jede Minute mittels HTTP/HTTPS POST Request an den Server gesendet. Am Server läuft ein PHP Script, der die empfangenen Daten in ein Textfile speichert. Am Ende des Beitrags gibt es eine genaue Materialliste.

Das Gehäuse und der Messkopf

Das Grundgerüst der Arduino Wetterstation besteht großteils aus Metall. Dazu werden Aluprofile verwendet, welche in jedem Baumarkt erhältlich sind. Der Messkopf mit den BME280 Sensor besteht aus einer Wandkapsel und einem Wandfutter Ofenrohr. Das Windrad wir auf ein rundes Alu-Profil mit 25 mm Durchmesser gesteckt. Mit dem flachen Alu-Profil wird das Rohr für das Windrad auf dem Vierkantrohr befestigt. Das gesamte System ist genietet und wird ganz zum Schluss weiß lackiert. Als Werkzeug sind eigentlich nur ein Metall-Bohrer, Metallsäge und eine Nietzange notwendig. Eine genaue Materialliste mit den richtigen Maßen findet man hier. Für die wichtigsten Arbeitsschritte haben wir am Ende des Beitrags noch eine Fotogalerie.

Kabel einziehen

Nachdem die Alu-Konstruktion fertig gebohrt ist, und noch nicht vollständig zusammen genietet ist, werden die Kabel eingezogen. Als Erstes wird ein 2-poliges Kabel vom Rohr für das Windrad durch das Vierkantrohr bis in den Kunststoff-Zylinder eingezogen. Zwischen den Messkopf und den Kunststoff-Zylinder wird ein 8-poliges Kabel (übliches LAN-Kabel) eingezogen. Die Kabel sollten an jedem ende mindestens 30 cm herausragen, dadurch hat man genug Freiraum. Anschließend wird das 8-polige Kabel im Kunststoff-Zylinder so weit abisoliert, dass die Doppeladern mindestens 15 cm frei sind. Danach wird das Kabel so weit hinterzogen, dass nur die Adern des LAN-Kabels im Zylinder sind. Jetzt kann die Bohrung mit der Heißklebepistole wetterfest abgedichtet werden.

Das Mainboard

Das Mainboard besteht aus einem Arduino Uno Board mit einem aufgesteckten Ethernet-Shield und einer Lochrasterplatine. Auf der Lochrasterplatine befindet sich die Vorschaltung für das Windrad sowie ein Vorwiderstand für die LED-Leuchte und die restlichen 4 Drähte für den BME280. Den Schaltplan findet man hier. Die Stromversorgung und das Netzwerkkabel werden über den passiven POE-Adapter verbunden. Dadurch kommt die Stromversorgung sowie die Internetverbindung über eine Leitung.

Hardware Check

Das Mainboard befindet sich im Zylinder. Stromversorgung und LAN-Kabel werden direkt vom POE-Adapter verbunden. Die LED wird neben den POE-Adapter platziert und ebenfalls mit der Heißklebepistole fixiert. Die Library und weitere Informationen zum BME280 gibt es hier. Jetzt sollten alle Komponenten (Windrad, BME280, LED) verbunden sein. Der Hardware-Check kann durchgeführt werden. Dazu wird das Arduino-File auf das Board geladen. Über den Serial Monitor sollten jetzt alle Sensor-Daten angezeigt werden und die LED blinkt. Falls die Daten des BME280 nicht angezeigt werden, ist möglicherweise die I2C-Adresse falsch. Diese kann mittels Scanner gefunden werden. Den I2C-Scanner findet man hier. Damit das Projekt richtig funktioniert, müssen jetzt alle Werte richtig angezeigt werden. Ist dies der Fall, kann das Projekt weiter fortgesetzt werden.

Wetterstation Software

Wenn der Hardware-Check erfolgreich war, kann die eigentliche Software installiert werden. Auch hier muss gegebenenfalls die Adresse des Sensors im Code geändert werden. Die wichtigsten Einstellungen werden unter "---BASIC SETTINGS---" erstellt. Weiter unten im Code muss noch die Domain des PHP Servers geändert werden. Auch der Serverpfad ist zu ändern. Wurde der Quellcode richtig editiert, so kann der Code an den Arduino gesendet werden. Ab sofort muss auch das LAN-Kabel angeschlossen werden. Die Station versucht jetzt eine IP-Adresse zu bekommen und das Ethernet-Shield zu konfigurieren. Sollte ein Fehler bei der Netzwerkkarte sein, so fängt die LED nach etwa einer Minute dauerhaft zu blinken an. Hat die Wetterstation eine IP-Adresse bekommen, so wird versucht, nach etwa 30 Sekunden die Wetterdaten an den Server zu senden. War die Datenübertragung erfolgreich, so blinkt die LED alle 30 Sekunden zweimal kurz auf. Es besteht auch die Möglichkeit, vorerst keine Änderungen an der Serverkonfiguration vorzunehmen. Die Station wird dann die Wetterdaten an unseren Testserver (testserver.aeq-web.com) senden. Hier können Sie auch sofort testen, ob die Daten am Server ankommen. Unser Server hostet fast den gleichen PHP-Script wie der, der unten als Download zu Verfügung steht.

Der PHP Server

Der PHP-Server für die Arduino Wetterstation ist ein einfaches Beispiel, wie die Daten über den HTTP-POST Request an einen Webserver gesendet werden. Kommen die Daten beim PHP-Script (uplink.php) an, so erstellt dieser ein Textfile mit den Wetterdaten und der Uhrzeit, wann die Daten am Server angekommen sind. Die Index-Datei liest nur das Textfile aus und zeigt es an. Wird also die Domain des Scriptes aufgerufen, so werden die Wetterdaten angezeigt. Der ganze PHP-Code wurde unter PHP7 entwickelt und getestet. Ganz wichtig ist es, dass die Daten für den Server auch im Arduino-Sketch geändert werden!

Datenauswertung

Falls man keinen eigenen Server haben will, gibt es exklusiv die Möglichkeit, die Wetterdaten an ein fertiges System mit Apps und Auswertungstools zu senden. Einer unserer Partner stellt ein solches System kostenlos für unsere Leser zur Verfügung. Bei Interesse melden Sie sich bitte über das Kontaktformular bei uns. In späterer Folge haben wir vor, auch ein kleines eigenes CMS-System zu schreiben, was die Wetterdaten in eine Datenbank speichert und auswertet. Mit diesem System wird es auch möglich sein, Verlaufskurven und Grafiken zu erstellen und zu speichern.

Wetterstation lackieren

Damit die Wetterdaten auch recht genau sind, muss die gesamte Wetterstation weiß lackiert werden. Eine einfache Spraydose aus dem Baumarkt ist ausreichend. Bevor lackiert wird, muss der BME-Sensor abgedeckt werden, sowie die LAN-Buchse und LED abgeklebt werden, damit der Lack hier keine Schäden verursacht. Anschließend muss die Wetterstation einige Stunden trocknen. Danach werden die Abdeckungen entfernt und die Wetterstation mit dem POE-Kabel verbunden. Jetzt können noch die Bohrungen für Halterungen gemacht werden. Es ist vom Vorteil, wenn die Lackierung erst ganz zum Schluss gemacht wird, damit keine unnötigen Kratzer entstehen.

Bauteilliste (Elektronik)

Fotogalerie Arduino Wetterstation