Home Weather Station: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 158: Zeile 158:
{|
{|
|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.
|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.  
|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.
|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.
|-
|}
|}



Version vom 9. Januar 2022, 23:10 Uhr

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.

Peppiges Bild

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
Abb1. Erste Idee für die Home Weather Station
Abb2. Systementwurf




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)

Abb3. Verschaltung der HWS
Abb3. Verschaltung der HWS
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.
Abb4. Verschaltung der LEDs
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.
Abb5. Programm (Teil 1 von 4)
Abb6. Programm (Teil 2 von 4)
Abb7. Programm (Teil 3 von 4)
Abb8. Programm (Teil 4 von 4)

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

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

Projektdurchführung

YouTube Video

Weblinks

Literatur


→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)