Die Ausgabe der Messwerte über die Serielle Konsole ist in vielen Fällen nicht ausreichend, da hierfür ein PC dauerhaft laufen müsste. Daher sollen nun drei LED (rot, grün und blau) verwendet werden, die den Temperaturbereich direkt auf dem Breadboard anzeigen können. Dabei soll die grüne LED den „Komfortbereich“ anzeigen. Ist es (zu) kalt, soll die blaue LED leuchten und wenn es (zu) warm ist, die rote.
|
Die rechte Darstellung zeigt, wie man das Breadboard bestücken könnte. Die LEDs sind dabei an GPIO02(rot), GPIO04(grün) und GPIO16(blau) angeschlossen. |
|
#include <Arduino.h>
/* -------------------------------------
Praxis 16
DHT11-Messung
Ausgabe über drei LEDs und
Seriellen Monitor
-----------------------------------*/
#include <DHT.h>
#define DHT_SENSOR_PIN 26 // ESP32 Pin GIOP26 führt zu DHT11 Sensor
#define DHT_SENSOR_TYPE DHT11 // Es ist ein DHT11
DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE);
int LEDrot = 2;
int LEDgru = 4;
int LEDbla = 16;
const float kalt = 19; // Schwelle zum Einschalten der blauen LED
const float warm = 22; // Schwelle zum Einschalten der roten LED
void setup() {
pinMode(LEDrot, OUTPUT);
pinMode(LEDgru, OUTPUT);
pinMode(LEDbla, OUTPUT);
Serial.begin(115200);
dht_sensor.begin();
}
void loop() {
float humi = dht_sensor.readHumidity();
float tempC = dht_sensor.readTemperature();
if ( isnan(tempC) || isnan(humi)) {
Serial.println("Fehler beim Lesen der Sensordaten!");
} else {
Serial.print("Feuchtigkeit: ");
Serial.print(humi);
Serial.print("% | Temperatur: ");
Serial.print(tempC);
Serial.println("°C ");
if (tempC <= kalt) {
digitalWrite(LEDrot, LOW);
digitalWrite(LEDgru, LOW);
digitalWrite(LEDbla, HIGH);
} else {
if (tempC <= warm) {
digitalWrite(LEDrot, LOW);
digitalWrite(LEDgru, HIGH);
digitalWrite(LEDbla, LOW);
} else {
digitalWrite(LEDrot, HIGH);
digitalWrite(LEDgru, LOW);
digitalWrite(LEDbla, LOW);
}
}
}
delay(2000);
}
Sollte beim Kompilieren zu einem Fehler kommen, der sich auf die Datei „DHT.h“ bezieht, findet man auf den vorherigen Seiten den Hinweis, wie zusätzliche Bibliotheken in die IDE eingebunden werden können.
| Temperaturbereich | Anzeige |
| (zu) kalt | ![]() |
| Komfort | ![]() |
| (zu) warm | ![]() |