Arduino UNO: Temperatur & Luftfeuchte mit DHT22 & 16×2 I²C LCD
Komponenten und Materialien
| Arduino UNO R3 | 1× |
| DHT22 Temperatursensor | 1× |
| 16×2 LCD mit I²C-Backpack (Weiß auf Blau, 5 V) | 1× |
| Steckbrett (Full Size) | 1× |
| 9 V-Batterie + Clip mit 5,5/2,1 mm Stecker | 1× |
| USB-A auf Mini-USB Kabel | 1× |
| Jumper-Kabel (M/M, M/F) | je 1× |
Projektbeschreibung
Auslöser war ein Terrarium für Schlangen meines Sohnes. Temperatur und Luftfeuchte müssen konstant gehalten werden. Ein analoges Hygrometer/Thermometer war ungenau – also wurde ein Arduino-basiertes System mit DHT22 und I²C-LCD gebaut. Dieses Tutorial zeigt die Grundlagen ohne Automatisierung.
Benötigte Bibliotheken
Adafruit_SensorDHTNewliquidCrystal
Vor dem Start
Ein I²C-LCD spart Pins (nur 4 Kabel: VCC, GND, SDA, SCL). Die I²C-Adresse muss bekannt sein – hier 0x3F. Falls Ihr Display eine andere Adresse nutzt, im Code anpassen.
Aufbau auf dem Steckbrett
5 V und GND vom Arduino auf die Power-Rails des Breadboards legen. DHT22: VCC an 5 V, GND an GND, Data-Pin an Digitalpin 4. LCD I²C: GND, VCC, SDA an A4, SCL an A5 (Uno).
Code
Der Code nutzt Adresse 0x3F. Bibliotheken in den Libraries-Ordner legen, dann hochladen.
/* DHT22 mit I²C LCD 16x2
Basierend auf Beispiel von Michalis Vasilakis (ardumotive.com) */
#include <DHT.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define I2C_ADDR 0x3F
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
float hum, temp;
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);
}
void loop() {
delay(2000);
hum = dht.readHumidity();
temp = dht.readTemperature();
// Serial Monitor
Serial.print("Luftfeuchte: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.println(" °C");
// LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" ");
lcd.print((char)223); // Grad-Zeichen
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Feuchte: ");
lcd.print(hum);
lcd.print(" %");
delay(2000);
}
Schaltplan
Fritzing-Schema (schema_UcHE1qRu2t.fzz) und Schaltplan als Bild verfügbar.
Herstellungsprozess
- Nahtlose Arduino–Raspberry Pi 2 I2C-Integration für IoT-Sensorprojekte
- Arduino Nano Flight Simulator 2020 Kontrollpanel – LCD & CDI Display
- Wassertropfen-Hochgeschwindigkeitsfotografie mit Arduino Nano – DIY Setup
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- Bilder auf 1,17-Zoll-TFT-LCD mit Arduino UNO anzeigen
- BME280 Temperatur, Luftfeuchte & Druck auf Nextion Touchscreen anzeigen
- DIY-Oszilloskop mit Arduino Nano (10 Hz–50 kHz) und 128×64-LCD
- u-blox LEA-6H 02 GPS-Modul: Arduino & Python Integrationsanleitung
- Zuverlässigen Wecker mit DS1302 RTC und Arduino UNO bauen