Gymnasium Himmelsthür

Projekt 5 - Wetterstation

Luftfeuchtigkeits- und Temperatursensor

Schaltung

Hinweis: Die Verkabelung wird übersichtlicher, wenn man etwas längere Kabel verwendet. Im Kasten sind aber nur wenige längere Kabel vorhanden. Sie können sich behelfen, indem Sie ein Kabel und eine Verlängerung zu einem langen Kabel verbinden.

Da sehr viele Kabel benötigt werden, hilft es, unterschiedliche Farben zu verwenden. Außerdem verwendet man standardmäßig rot für 5V und blau/schwarz für 0V(Masse).

Programm und Aufgaben

Für das Programm werden 3 Bibliotheken benötigt. Bibliotheken sind eigenständige Programmteile, die sich getrennten Dateien befinden und durch eine „include“-Anweisung eingebunden werden. Danach sind alle Befehle dieser Bibliotheken im Programm bekannt und können genutzt werden.

Es wird die LiquidCrystal-, die DHT- und die Adafruit-Bibliothek benötigt.

Bibliothek einbinden

#include <LiquidCrystal.h>              // Hier wird eine LCD-Bibliothek in den Hintergrund geladen. Sie vereinfacht das Beschreiben des LCDs.
#include <DHT.h>                        // Hier wird die Bibliothek für den Temperatur-Feuchtigkeitssensor eingebunden.

LiquidCrystal lcd(4, 5, 6, 7, 8, 9);    // Hier werden die Pins am Arduino definiert, die mit dem Display kommunizieren sollen.

#define DHTTYPE DHT11                   // Hier wird der Sensortyp festgelegt, die Bibliothek unterstuetzt verschiedene Sensoren.
DHT dht(3, DHTTYPE);                   // Der Ausgabekontakt des Sensors ist an Pin 11 angesschlossen.

float T = 0;                            // Variable für die Temperatur
float F = 0;                            // Variable für die relative Luftfeuchtigkeit


void setup() {

  lcd.begin(16, 2);                     // Hier wird das Display genauer definiert. Das Display am Shield hat 16 Spalten und 2 Zeilen.   
  
  pinMode (12, OUTPUT);                 // PIN 12 wird als Ausgang definiert. Über den PIN 12 kann später die LCD-Hintergrundbeleuchtung an und ausgeschaltet werden. 
  digitalWrite (12, HIGH);              // Hintergrundbeleuchtung HIGH = an
  
  dht.begin();                          // Der Sensor wird initialisiert.
  
  }     // Ende Setup


void loop() {
  
  T = dht.readTemperature();            // Der Befehl liest die Temperatur in °C als Dezimalzahl ein.
  F = dht.readHumidity();               // Der Befehl liest die relative Luftfeuchtigkeit als Dezimalzahl zwischen 0 und 90(90%) ein.
            
  lcd.clear();                          // Befehl, der alle Positionen auf dem Display löscht.
  lcd.setCursor(0,0);                   // Befehl, der festlegt, wo auf dem Display fortlaufend geschrieben werden soll.
                                        /* Die Klammer ist wie folgt zu deuten: (Spalte,Zeile)
                                            Die Nummerierungen der Spalten und Zeilen fangen bei 0 an. 
                                             (0,0) bedeutet somit, dass ab der Spalte ganz links in der oberen Zeile geschrieben wird. */
  lcd.print("Hallo");                   // Befehl, der festlegt, was auf dem Display geschrieben werden soll. Texte kommen in Anführungszeichen.
  lcd.setCursor(0,1);
  lcd.print ("Welt!");
  delay (500);                          // Eine halbe Sekunde warten. Achtung: Zu schnelles Neubeschreiben des Displays lässt es flackern, ab ca. delay (<60).

}                                       // Ende Loop




/*  P5_Wetterstation_01.10.2018
 
    **********************************************************
    AUFGABEN (Hinweise und Lösungen finden Sie am Ende!)
    **********************************************************

    1   VORBEREITUNG - Laden Sie dieses Programm unverändert auf den Arduino hoch. Wenn alles geklappt hat, steht "Hallo Welt!" auf dem Display. 


    2   NAME AUF DEM LCD AUSGEBEN - Ändern Sie das Programm so, dass in der oberen Zeile Ihr Vor- und in der unteren Zeile Ihr Nachname steht.
        Ordnen Sie mittels lcd.setCursor() Ihren Namen mittig an.

    3   WERTE AUF LCD AUSGEBEN - Ändern Sie das Programm so, dass in der oberen Zeile linksbündig die Temperatur und in der unteren Zeile die 
        Luftfeuchtigkeit einschließlich Einheiten ausgegeben wird.

    4   VERLAUF AUFZEICHNEN - Ändern Sie das Programm so, dass zusätzlich auf dem seriellen Monitor die Werte für Temperatur und
        Luftfeuchtigkeit einmal pro Minute ausgegeben werden.

    5   EXPORT IN CALC - Exportieren Sie die Messwerte für 15 Minuten in eine Calc-Tabelle und erstellen Sie ein Diagramm,
        das die Temperatur und die Luftfeuchtigkeit in Abhängigkeit von der Zeit anzeigt.
    
    6   TECHNISCHE ANWENDUNG - Computer besitzen Temperatursensoren, um die Leistung zu reduzieren, wenn die Temperatur des Prozessors zu hoch wird.
        Simulieren Sie diese Regelung, indem Sie die Hintergrundbeleuchtung des LCDs in Abhängigkeit von der Temperatur ein- und ausschalten.
        Die Hintergrundbeleuchtung lässt sich über den digitalen Pin 12 steuern.

    
    **********************************************************
    LÖSUNGSHINWEISE
    **********************************************************

    2+3 Ändern Sie lediglich die Texte im vorgegebenen Programm und lassen Sie ggf. die Anführungszeichen weg.


    6   TECHNISCHE ANWENDUNG IM ALLTAG
        - Nutzen Sie eine if-Bedingung

        if (T > 24) {
        ... ; 
        }
        else {... ; }
*/
Anmelden