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

Lese­zeit: 3 Minu­ten

Lösung
Seite als PDF

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.

Bei­spie­le für DHT11/DHT22 Sensoren

Die Pin­be­le­gung kann sich von der hier gezeig­ten unter­schei­den. Ach­te auf die Beschrif­tung des Sensors!

Benö­tig­te Bauteile:

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

Schalt­plä­ne

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

Ardui­no UNO

Wemos D1 Mini

ESP32-Wroom

Board instal­lie­ren:

Benö­tig­te Bibliotheken:

Im Kopf des Pro­gramms wer­den die benö­tig­ten Biblio­the­ken ein­ge­bun­den und der Sen­sor defi­niert. Der Kopf­teil sieht je nach ver­wen­de­ten Board unter­schied­lich aus.

Ardui­no UNO

#include "DHT.h"
#include "LCDIC2.h"

// Pin des DHT-Sensors
int SENSOR_DHT = 7;

// Sensortyp festlegen
// DHT22 oder DHT11
#define SensorTyp DHT22

// Sensor DHT einen Namen zuweisen
DHT dht(SENSOR_DHT, SensorTyp);

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

Wemos D1 Mini

#include "DHT.h"
#include "LCDIC2.h"

// Pin des DHT-Sensors
int SENSOR_DHT = D3;

// Sensortyp festlegen
// DHT22 oder DHT11
#define SensorTyp DHT22

// Sensor DHT einen Namen zuweisen
DHT dht(SENSOR_DHT, SensorTyp);

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

ESP32-Wroom

#include "DHT.h"
#include "LCDIC2.h"

// Pin des DHT-Sensors
int SENSOR_DHT = 19;

// Sensortyp festlegen
// DHT22 oder DHT11
#define SensorTyp DHT22

// Sensor DHT einen Namen zuweisen
DHT dht(SENSOR_DHT, SensorTyp);

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

Im set­up-Teil wird das LCD gestartet:

void setup() 
{ 
  // LCD einschalten 
  lcd.begin(); 

  // Cursor "verstecken"
  lcd.setCursor(false);

  // Sensor DHT starten
  dht.begin();
}

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 ermit­telt.
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.

void loop()  
{ 
  // Daten lesen
  float Temperatur = dht.readTemperature();
  float Luftfeuchtigkeit = dht.readHumidity();

  // . durch , 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);

  // \337  -> °
  lcd.print(AnzeigeTemperatur + " \337C");
  
  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 Anleitungen:

letz­te Aktua­li­sie­rung: Nov 18, 2024 @ 11:28