DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
Komponenten
- 1× Arduino UNO
- 1× DHT11 Sensor (4-Pin, Temperatur & Luftfeuchte)
- 3× LED (1× grün, 2× rot)
- 3× 220 Ω Vorwiderstände
- 1× Piezo-Summer
- Jumper-Kabel, Breadboard
Benötigte Bibliotheken
Adafruit_Sensor(GitHub: adafruit/Adafruit_Sensor)DHT-sensor-library(GitHub: adafruit/DHT-sensor-library)
Schaltung
- DHT11 Data → Pin 5 (Pull-Up 4,7–10 kΩ auf Board meist vorhanden)
- Grüne LED (Perfect) → A1
- Rote LED (Too Cold) → A0
- Rote LED (Too Hot) → A2
- Piezo-Summer → Pin 9
- Alle LEDs mit 220 Ω zu GND
Funktionsweise
Alle 2 Sekunden werden Temperatur (°C) & Luftfeuchte (%) eingelesen. Drei Bereiche:
- ≤ 20 °C: „Too cold!“ → Rote LED (A0) + Piezo 1 s an
- 21–26 °C: „Perfect temperature!“ → Grüne LED (A1) 2 s an
- ≥ 29 °C: „Too hot!“ → Rote LED (A2) + Piezo 1 s an
Werte werden auf Serial Monitor ausgegeben (9600 Baud).
Vollständiger Code
#include <Adafruit_Sensor.h>
#include <DHT.h>
int speakerPin = 9;
#define DHTPIN 5
#define DHTTYPE DHT11
#define LED_TOO_COLD A0
#define LED_PERFECT A1
#define LED_TOO_HOT A2
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHT11 test!");
dht.begin();
}
void loop() {
pinMode(speakerPin, OUTPUT);
pinMode(LED_TOO_COLD, OUTPUT);
pinMode(LED_PERFECT, OUTPUT);
pinMode(LED_TOO_HOT, OUTPUT);
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true); // Fahrenheit
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t");
Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C");
if (t <= 20) {
Serial.println("Too cold!");
digitalWrite(LED_TOO_COLD, HIGH);
digitalWrite(speakerPin, HIGH);
delay(1000);
digitalWrite(speakerPin, LOW);
digitalWrite(LED_TOO_COLD, LOW);
}
else if (t < 27) { // 21..26
Serial.println("Perfect temperature!");
digitalWrite(LED_PERFECT, HIGH);
delay(2000);
digitalWrite(LED_PERFECT, LOW);
}
else if (t >= 29) {
Serial.println("Too hot!");
digitalWrite(LED_TOO_HOT, HIGH);
digitalWrite(speakerPin, HIGH);
delay(1000);
digitalWrite(speakerPin, LOW);
digitalWrite(LED_TOO_HOT, LOW);
}
// Hinweis: Bereich 27–28 °C bleibt ohne Aktion (kann ergänzt werden)
}
Hinweise
- Der DHT11 ist langsam (1 Hz max) & ungenau (±2 °C, ±5 % RH). Für präzisere Messungen DHT22/AM2302 verwenden.
- Die Schwellenwerte (20/27/29 °C) sind im Code leicht anpassbar.
- Pin-Modes in
loop()sind nur zu Demonstrationszwecken – besser insetup()setzen.
Herstellungsprozess
- Erstes IoT-Projekt mit Raspberry Pi, DHT11 und ThingSpeak bauen
- Automatisiertes Aeroponik-System mit Raspberry Pi und Feuchtigkeitssensor bauen
- Thermofühler (Thermocouple) mit Arduino Portenta H7 über MAX6675 IC integrieren
- Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
- K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
- Unopad: Nahtloser Arduino MIDI-Controller für Ableton Live
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
- Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial
- DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden