DHT22 - Kli­ma­an­la­ge

Lese­zeit: 4 Minu­ten

Kli­ma­an­la­ge mit BMP280

Navi­ga­ti­on

Der Sen­sor DHT22 misst die Tem­pe­ra­tur und die Luft­feuch­tig­keit. Das hier ver­wen­de­te Bau­teil besitzt drei Anschlüs­se. Die Ver­si­on mit vier Pins muss in der Rei­hen­fol­ge 5V → Daten (Pin) → leer → GND geschal­tet wer­den.

Der Lüf­ter soll ein­ge­schal­tet wer­den, wenn eine fest­ge­leg­te Tem­pe­ra­tur über­schrit­ten wird. Sinkt die Tem­pe­ra­tur wie­der unter die­sen Wert, schal­tet sich der Lüf­ter wie­der aus. Auf dem LCD wird die aktu­el­le Tem­pe­ra­tur und der Zustand des Lüf­ters ange­zeigt.

Der hier ver­wen­de­te Lüf­ter ist ein han­dels­üb­li­cher 5V-Lüfter.

Benö­tig­te Bau­tei­le:

  • Tem­pe­ra­tur­sen­sor DHT22
  • LCD I²C 1602
  • Lei­tungs­dräh­te
  • 5V Lüf­ter

Baue die Schal­tung auf:
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Benö­tig­te Biblio­the­ken:
Sketch → Biblio­thek ein­bin­den → Biblio­the­ken ver­wal­ten

Bin­de die benö­tig­ten Biblio­the­ken ein und defi­nie­re die Varia­blen.

# include <SimpleDHT.h>
# include <LiquidCrystal_I2C.h>

int SENSOR_DHT22 = 9;
// Sensor einen Namen zuweisen (dht22)
SimpleDHT22 dht22(SENSOR_DHT22);

// LCD einen Namen zuweisen
LiquidCrystal_I2C lcd(0x27, 20, 4);

// Pin des Lüfters
int LUEFTER = 8;

Der setup-Teil star­tet das LCD und legt den pin­Mo­de für den Lüf­ter fest.

void setup()
{
  // LCD einschalten
  lcd.init();
  lcd.backlight();

  pinMode(LUEFTER, OUTPUT);
}

Der loop-Teil. Beach­te die Kom­men­ta­re.

void loop()
{
  float Temperatur;
  
  // Daten lesen 
  // nur Temperatur lesen
  dht22.read2(&Temperatur, NULL, NULL);
  
  // in Strings umwandeln, . durch , ersetzen
  String AnzeigeTemperatur = String(Temperatur);
  AnzeigeTemperatur.replace(".", ",");
  
  // Anzeige LCD
  lcd.setCursor(0, 0);
  lcd.print("Temperatur: ");
  lcd.setCursor(0, 1);
  
  // \337C → ° 
  lcd.print(AnzeigeTemperatur + " \337C -> DHT22");
  
  // Lüfter einschalten
  // als Beispiel 25° 
  if (Temperatur > 25)
  {
    digitalWrite(LUEFTER, HIGH);
    lcd.setCursor(0, 3);
    lcd.print("L\365fter eingeschaltet");
  }
  // Lüfter ausschalten
  else
  {
    digitalWrite(LUEFTER, LOW);
    lcd.setCursor(0, 3);

    // \365 → ü
    lcd.print("L\365fter ausgeschaltet");
  }

  delay(2000);
}


Ver­wand­te Auf­ga­ben:



Letzte Aktualisierung: 24. Aug 2020 @ 10:02