DHT22 - Wet­ter­sta­ti­on Anzei­ge auf einem LCD

Lese­zeit: 4 Minu­ten
Lösung
Seite als PDF
Navi­ga­ti­on

Die mit dem Tem­pe­ra­tur­sen­sor DHT22 gemes­se­nen Wer­te sol­len auf einem LCD ange­zeigt werden.

So sieht es aus:

Schlie­ße das LCD an:

LCD

Nor­ma­ler­wei­se wäre eine kom­ple­xe Ver­ka­be­lung zum Betrieb eines LCDs nötig. Der ➨I2C-Bus regelt über einen eige­nen Mikro­pro­zes­sor die Kom­mu­ni­ka­ti­on der Daten­lei­tun­gen unter­ein­an­der. Es wer­den des­halb nur vier Anschlüs­se benötigt.

Die Hel­lig­keit kann mit einem Poten­tio­me­ter auf der Rück­sei­te des LCDs ein­ge­stellt werden.

Pinbelegung DHT22

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 werden.

Benö­tig­te Bauteile:

  • Tem­pe­ra­tur­sen­sor DHT22
  • LCD 1602
  • Lei­tungs­dräh­te

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 verwalten

Bibliothek einbinden

Im Kopf des Pro­gramms wer­den die benö­tig­ten Biblio­the­ken ein­ge­bun­den und der Sen­sor definiert:

# include <SimpleDHT.h> 
# include <LiquidCrystal_I2C.h> 
int SENSOR_DHT22 = 7; 

// Sensor einen Namen zuweisen (dht22) 
SimpleDHT22 dht22(SENSOR_DHT22); 

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

Im setup-Teil wird das LCD gestartet:

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

Im loop-Teil wer­den die Varia­blen defi­niert, in denen die gemes­se­nen Wer­te für Tem­pe­ra­tur und Luft­feuch­tig­keit gespei­chert wer­den. Anschlie­ßend wer­den die Mess­wer­te ermittelt:

void loop()  
{ 
  float Temperatur;   
  float Luftfeuchtigkeit;  
  
  // Daten lesen  
  dht22.read2(&Temperatur, &Luftfeuchtigkeit, NULL);

Die Mess­wer­te ent­hal­ten als Dezi­mal­trenn­zei­chen einen Punkt, er wird mit replace durch ein Kom­ma ersetzt.
Zum Schluss musst du noch mit lcd.setCursor(); und lcd.print(); die Aus­ga­be auf dem LCD erstellen.

  // . duch , ersetzen
  String AnzeigeTemperatur = String(Temperatur);  
  AnzeigeTemperatur.replace(".", ","); 
  String AnzeigeLuftfeuchtigkeit = String(Luftfeuchtigkeit);   
  AnzeigeLuftfeuchtigkeit.replace(".", ",");   

  // Anzeige LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temperatur: ");
  lcd.setCursor(0, 1);
  lcd.print(AnzeigeTemperatur + " °C");
  
  lcd.setCursor(0, 2);
  lcd.print("Luftfeuchtigkeit: ");
  lcd.setCursor(0, 3);
  lcd.print(AnzeigeLuftfeuchtigkeit + " %");

  // mindestens 2 Sekunden Pause
  delay(2500);
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Aufgaben:


Letzte Aktualisierung: 24. Jul 2021 @ 10:54