Die mit dem Temperatursensor DHT22 gemessenen Werte sollen auf einem LCD angezeigt werden.
So sieht es aus:
Schließe das LCD an:
⇒LCD
Normalerweise wäre eine komplexe Verkabelung zum Betrieb eines LCDs nötig. Der ⇒I2C-Bus regelt über einen eigenen Mikroprozessor die Kommunikation der Datenleitungen untereinander. Es werden deshalb nur vier Anschlüsse benötigt.
Die Helligkeit kann mit einem Potentiometer auf der Rückseite des LCDs eingestellt werden.
Beispiele für DHT11/DHT22 Sensoren
Die Pinbelegung kann sich von der hier gezeigten unterscheiden. Achte auf die Beschriftung des Sensors!
Benötigte Bauteile:
- Temperatursensor DHT11/DHT22
- LCD 1602
- Leitungsdrähte
Schaltpläne
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Board installieren:
Benötigte Bibliotheken:
Im Kopf des Programms werden die benötigten Bibliotheken eingebunden und der Sensor definiert. Der Kopfteil sieht je nach verwendeten Board unterschiedlich aus.
#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);
#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);
#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 setup-Teil wird das LCD gestartet:
void setup()
{
// LCD einschalten
lcd.begin();
// Cursor "verstecken"
lcd.setCursor(false);
// Sensor DHT starten
dht.begin();
}
Im loop-Teil werden die Variablen definiert, in denen die gemessenen Werte für Temperatur und Luftfeuchtigkeit gespeichert werden. Anschließend werden die Messwerte ermittelt.
Die Messwerte enthalten als Dezimaltrennzeichen einen Punkt, er wird mit replace durch ein Komma ersetzt.
Zum Schluss musst du noch mit lcd.setCursor(); und lcd.print(); die Ausgabe 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);
}
Verwandte Anleitungen:
- BME280 -Messdaten anzeigen
- DHT11/DHT22 - Durchschnittstemperatur berechnen und auf einem OLED-Display anzeigen
- DHT11/DHT22 - Wetterdaten aufzeichnen
- DHT11/DHT22 - Wetterdaten mit Bluetooth-Modul übermitteln
- DHT11/DHT22 - Wetterstation LAN
- DHT11/DHT22 - Wetterstation WiFi
- Messdaten mit BME680 und ESP32 anzeigen
- BMP280 - Temperatur und Luftdruck messen
- Temperaturanzeige auf einem LCD mit einem ESP32-Wroom
- TMP36 - Temperatur messen
- Wetterstation mit CO2-Messung
- Wetterstation mit Nano ESP32, ESP32-Wroom, NodeMCU, DHT11/DHT22 und OLED
- Wetterstation mit UNO R4 WiFi und LCD
- DHT11/DHT22 - Wetterstation LAN Daten speichern
letzte Aktualisierung: