Wetterstation

Eine Projektarbeit von Patrick Geiger & Lukas Huida, TGI-J1, Schuljahr 2018-19.

 

Motivation

Mit diesem Projekt möchten wir das aktuelle Wetter analysieren und daraufhin das Wetter auch protokollieren, um den Klimawandel zu beobachten. Dazu beziehen wir uns nicht nur auf die Temperatur, sondern auch auf Luftfeuchtigkeit, Windgeschwindigkeit und die Helligkeit.

Auftrag

Das Projektziel ist es eine funktionierende Wetterstation mit Hilfe des 8051 und einem Raspberry Pi 3 zu bauen. Temperatur und Helligkeit sollen mit dem ADC des µC 8051 ausgewertet und anschließend auf dem GLCD dargestellt werden. Weiterhin sollen die ausgewerteten Daten an den Raspberry Pi gesendet werden. Diese Daten sollen über ein Netzwerk in Diagrammform abgerufen werden können. Um dies zu realisieren benutzen wir das Opensource Framework OpenHAB . Außerdem misst der Raspberry Pi auch die Luftfeuchtigkeit und eine zweite Temperatur. Wir haben uns im Laufe des Projektes dazu entschieden, dass ein ESP32 die Messungen des Raspberry übernimmt, somit sind wir nicht am gleichen Standort wie der µC 8051.

Systemarchitektur

Systemarchitektur Wetterstation

 

Der Temperatursensor LM35 übergibt dem µC eine Spannung, abhängig von der Temperatur (10mV pro 1°C), welcher dann mit Hilfe eines Analog-Digital-Wandler in einen digitalen Wert an den µC übergibt. Ähnlich wie beim LM35, übergibt der Helligkeit Sensor TEMT6000 eine Spannung, welche dann über den Analog-Digital-Wandler in einen digitalen Wert an den µC übergibt. Der µC wertet die Werte aus und stellt diese auf dem GLC 128x64 Display dar. Da die Daten an den Raspberry Pi übertragen werden sollen, haben wir unser eigenes Protokoll entwickelt. Dieses sendet für die Temperaturdaten auf P1.1 eine Flanke. Diese Flanke gibt den Raspberry Pi das Signal die nachfolgenden Daten auszulesen. Die aufzuzeichnenden Daten werden vom µC an P3 auf die GPIOs des Raspberry Pi übertragen. Nachdem die Temperaturdaten erfolgreich an den Raspberry Pi übertragen wurden, wird die Flanke wieder auf null gesetzt. Danach sollen die Daten des Helligkeitssensor übertagen werden. Hierzu setzen wir wieder eine Flanke auf P1.3 und senden die Daten von P3 an die GPIOs des Raspberry Pi. Nach dem Senden wird die Flanke wieder auf null gesetzt. Mittels OpenHAB2 werden die Daten visualisiert. Der Raspberry Pi erstellt beim Booten ein eigenes Wifi Netzwerk mit einem DHCP Server, womit sich weitere Geräte verbinden können. Allerdings ist das Wifi Netzwerk nicht mit dem kabelgebundenen Netzwerk verbunden, das heißt man hat in diesem eigenen Wifi kein Internet.
Der ESP32 verbindet sich beim Start mit dem vom Raspberry Pi erstellten Wifi Netzwerk. Danach loggt er sich auch auf dem MQTT Broker des Raspberry Pis ein. Der ESP32 misst die Außentemperatur und die Luftfeuchtigkeit mittels des DHT11 welche er digital übergibt. Diese Daten werden dann in den MQTT ChannelTemperatur“ und „Luftfeuchtigkeit“ gesendet. Der Raspberry empfängt die Daten mittels MQTT . Um die Windgeschwindigkeit zu messen, nutzen wir ein Hall Sensor der einen digitalen Wert an den ESP32 sendet. Der ESP32 hat einen vorkonfigurierten Interrupt auf dem Port 27, an dem der Sensor angeschlossen ist. In diesem Interrupt wird für eine bestimmte Messzeit gezählt, wie oft ein Magnet neben dem Sensor rotiert. Daraus wird die genaue Geschwindigkeit berechnet. Die Windgeschwindigkeit wird in den MQTT Channel „Windgeschwindigkeit“ gesendet. Als Stromversorgung des ESP32 dient ein 5V USB Netzteil.

 

  

Tags