Home Weather Station
Autoren: Dennis Kononenko & Markus Belsch
Betreuer: Prof. Göbel & Prof. Schneider
→ zurück zur Übersicht: Kategorie:ProjekteET_MTR_BSE_WS2021
Einleitung
Die "Home Weather Station (HWS)" ist ein Projekt, welches im Rahmen des GET Fachpraktikums im 5. Semester des Studiengang Mechatronik erstellt wurde. Das Ziel der HWS ist es lokale Wetterdaten, wie Windgeschwindigkeit, Temperatur, Niederschlag, und Luftfeuchtigkeit zu sammeln und auf einem Bildschirm anzuzeigen.
Anforderungen
ID | Inhalt | Ersteller |
---|---|---|
1 | Messung von Windgeschwindigkeit, Niederschlag, Temperatur, Luftfeuchtigkeit | Dennis Kononenko & Markus Belsch |
2 | Auswertung und Umrechnung der gemessenen Daten | Dennis Kononenko & Markus Belsch |
3 | Anzeigen von Windgeschwindigkeit, Regenmenge, Temperatur, Luftfeuchtigkeit auf Display | Dennis Kononenko & Markus Belsch |
4 | Wetterfeste Konstruktion (Gehäuse) | Dennis Kononenko & Markus Belsch |
Funktionaler Systementwurf/Technischer Systementwurf
Sensor | Funktion | ||
---|---|---|---|
Anemometer | Eingebauter Gleichstrommotor erzeugt messbare Spannung, je schneller die Drehbewegung, desto mehr Spannung | ||
Tropfensensor | Wasserkontakt verbindet Leiterbahnen auf Sensor, dadurch erhöht sich der Stromfluss | ||
Temperatursensor | Messung über temperaturabhängigen Widerstand | ||
Luftfeuchtigkeit | Erhöhte Luftfeuchtigkeit sorgt für veränderte Eigenschaften des Dielektrikums, und als Folge ändert sich die Kapazität des Kondensators | ||
Komponentenspezifikation
Komponente | Beschreibung | Bild | |
---|---|---|---|
Arduino Uno | Standard Arduino-Uno | ||
Breadboard | Es wurden 2 Breadboards benötigt. Das Erste befindet sich im Gehäuse und dient als Anschluss für die +/- Eingänge der verschiedenen Sensoren, sowie als Verschaltung für das Anemometer. Das Zweite Breadboard befindet sich auf der HWS und birgt die 3 LEDs. | ||
Anemometer | Das Anemometer stammt vom Hersteller Froggit (Modellnummer: WD321). Das Anemometer liefert keinen direkten Messwert in m/s. Dieser muss vielmehr mittels Software umgerechnet werden. (siehe Kapitel Umsetzung-SW) | ||
Tropfensensor | Der Tropfensensor entspricht demjenigen aus dem Funduino-Baukasten. Er gibt Messwerte im Bereich von 0 bis 1023 aus, je nach Menge an Wasser auf dem Sensor. Auf dem Sensor befinden sich parallel verlaufende Kontaktstellen. Sobald ein Wassertropfen auf dem Sensor gelandet ist, ist eine leitende Verbindung zwischen den Kontaktstellen hergestellt. Daraus wird dann ein analoges Signal abgeleitet. | ||
Temperatursensor | Der Temperatursensor entspricht demjenigen aus dem Funduino-Baukasten. ACHTUNG: Der Sensor muss unbedingt richtig herum angeschlossen werden: Von der flachen Seite des Sensor aus gesehen: links - 5V / mitte - Signal / rechts - GND. Bei umgekehrtem 5V/GND kann der Sensor (wie bei Durchführung dieses Projektes) durchbrennen. | ||
I2C-LCD | Das LCD-Display entspricht demjenigen aus dem Funduino-Baukasten. Auf der Rückseite kann ein Potentiometer (dient der Einstellung vom Kontrast) mittels Kreuz-Schraubendreher eingestellt werden. | ||
Widerstand | Für das Projekt wurden 2x 220Ohm Widerstände benötigt | ||
Kondensator | Ein 100nF Kondensator wurde benötigt, um das Messsignal vom Anemometer zu glätten und dadurch etwas verlässlichere Werte zu erhlaten. | ||
LEDs | 3 LEDs (grün, gelb, rot) sollten den "Gefahrengrad" der jeweiligen Messung (Regen, Temperatur, Wind) anzeigen. |
Umsetzung (HW/SW)
Die Verschaltung wurde im obigen Bild mit dem Fritzing-Tool dargestellt. | |
Das Anemometer besitzt 1 Eingang und 1 Ausgang. Der Eingang ist direkt mit 5V verbunden, der Ausgang geht in einen Parallel-Schaltkreis aus einem 220Ohm Widerstand und 100nF Kondensator. Dies sollte verlässlichere (und geglättete) Messwerte liefern. | |
Das I2C-LCD-Display musste natürlich ebenfalls mit 5V/GND verbunden werden. Zudem gibt es einen SCL-(Serial-Clock)-Pin und einen SDL-(Serial-Data)-Pin. Diese beiden Pins wurden an die entsprechenden Pins am Arduino angeschlossen. Somit konnte das Display Text, Zahlen und Messwerte ausgeben. | |
Die 3 LEDs (rot, gelb, grün) wurden über einen Vorwiderstand von 220 Ohm und auf die DIGITAL-Pins 4,5 und 6 gelegt. Dies machte die Programmierung entsprechend einfach: Der jeweilige Pin wurde auf HIGH gesetzt, damit leuchtete die zugehörige LED dann. | |
Der SIGNAL-Ausgang vom Temperatursensor ging auf ANALOG-0, der SIGNAL-Ausgang vom Tropfensensor wurde auf ANALOG-1 gesetzt. | |
Als Spannungsquelle dient eine 9V-Batterie. | |
Die Software wurde in Arduino (bzw. C) programmiert. Das Programm beinhaltete die Einbindung von Bibliotheken für das LCD-Display, sowie das Setup für das Display und die verschiednenen PinModes. | |
Die measure() Funktion sorgt dafür, dass das Anemometer über eine Zeitmessung auf die jeweilige Windgeschwindigkeit kommt. Innerhalb der Loop-Funktion erfolgt dann das Auslesen von Tropfensensor und Temperatursensor, sowie das Beschreiben des Displays. Außerdem erfolgt hier das setzen des HIGH-Signals auf PIN 4/5 oder 6. Je nachdem, welche Kondition wahr ist (if-Abfrage) wird ein anderer PIN auf HIGH gesetzt und eine andere LED leuchtet auf. Die jeweiligen Grenzen für die verschiedenen Konditionen wurden durch systematisches Testen festgelegt. | |
Das Programm wurde insgesamt so gehalten, dass man bestimmte (kommentierte) Teile aus,- und einkommentieren kann, sodass die LEDs auf 3 verschiedene Messgrößen (hier Temperatur, Regen und Wind) reagieren können. | |
Komponententest
Alle benötigten Bauteile wurden auf ihre Funktion hin untersucht. Dazu wurde jeder Sensor einzeln (und allein) an den Arduino Uno angeschlossen, und mit einem einfachen Test,- bzw. Ausleseprogramm getestet. |
Dies erwies sich im nachhinein als sehr sinnvoll. Beim ersten Anschließen des Temperatursensors vertauschten wir unwissentlich den 5V/GND Pin, und der Sensor brannte tatsächlich durch. Hier musste ein neuer Temperatursensor bestellt werden. |
Außerdem konnten durch dieses systematische Austesten die Sensorwerte für verschiedene Szenarien (z.B. starker Wind, schwacher Regen) bestimmt werden. Ebendiese Sensorwerte sollten als Basis für die if/else-if/else Abfragen für die Ansteuerung der LEDs dienen. |
Ergebnis
Das Ergebnis unseres Projektes ist eine Wetterstation, die Windgeschwindigkeit, Regenstärke und Temperatur anzeigt. Je nach gewähltem Programm werden LEDs angesteuert, die Anzeigen, ob ein Messwert im grünen - gelben - oder roten Bereich liegt. |
Zusammenfassung
Lessons Learned
Das Fachpraktikum Elektrotechnik (5. Semester) lehrte uns einige wichtige Dinge, darunter fallen: |
Projektunterlagen
Projektplan
Projektdurchführung
YouTube Video
Weblinks
Literatur
→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)