DHT11 (Feuchtigkeit & Temperatur) – ESP32 Tutorial

 


 

Einleitung

In diesem Artikel erfährst du, wie du einen DHT11 Feuchte- und Temperatursensor mit einem ESP32 Mikrocontroller verbindest und ausliest. Wir führen dich Schritt für Schritt durch den gesamten Prozess, von den benötigten Komponenten bis zur fertigen Anwendung. Du lernst den Schaltungsaufbau kennen und erhältst eine detaillierte Code-Erklärung, programmiert in der Arduino IDE. Am Ende dieses Tutorials bist du in der Lage, eigene Umweltmessungen durchzuführen und die Grundlagen für weitere Projekte mit dem ESP32 und Sensoren zu legen.

 

 

Verschaltung

Teile

1x ESP32
1x DHT11
3x Verbindungskabel

Bibliotheken

Code

 



 

Übersicht

Bevor wir mit dem eigentlichen Aufbau und der Programmierung starten, werfen wir einen kurzen Blick auf die Komponenten, die du für dieses Projekt benötigst. Die Beschaffung dieser Teile ist in der Regel unkompliziert und kostengünstig.
Hier ist eine Liste der benötigten Hardware:

1x ESP32
1x DHT11 Feuchte- und Temperatursensor
3x Verbindungskabel (Dupont-Kabel)

 

Pinout DHT11 Modul

Der DHT11 Sensor ist erfreulich einfach aufgebaut und kommt mit nur drei Pins aus, was die Verkabelung mit dem ESP32 besonders unkompliziert macht. Es handelt sich hierbei um die Anschlüsse für die Stromversorgung (Plus und Minus) und einen Datenpin, über den die Messwerte gesendet werden. Die genaue Belegung der Pins ist oft direkt auf dem Sensor oder dem Breakout-Board vermerkt.
Hier siehst du die Pinbelegung des DHT11:

+ (VCC): Dies ist der Pluspol für die Spannungsversorgung des Sensors.
Out (Data): Über diesen Pin werden die digitalen Messdaten (Temperatur und Luftfeuchtigkeit) an den ESP32 übertragen.
– (GND): Dies ist der Minuspol, also die Erdung, für die Spannungsversorgung.

Der tatsächliche DHT11 Sensor besitzt 4 Anschlüsse. Davon ist allerdings ein Pin nicht belegt. Das Sensor-Modul besitzt entsprechend 3 Anschlüsse.
Auf der Rückseite des DHT11 Moduls befindet sich ein Pullup-Widerstand und ein Filterkondensator.

 



 

Hardware Aufbau / Verkabelung / Schaltungsaufbau

Der Anschluss des DHT11 Sensors an deinen ESP32 ist denkbar einfach und schnell erledigt. Du verbindest den VIN-Pin des ESP32 mit dem +-Pin des DHT11. Der GND-Pin des ESP32 kommt an den –Pin des DHT11. Zuletzt wird der Out-Pin des DHT11 mit dem D5-Pin deines ESP32 verbunden. Achte darauf, dass alle Verbindungen fest sitzen, damit es später zu keinen Problemen bei der Datenübertragung kommt.

ESP32 VIN → Ultraschallsensor + Pin

ESP32 GND → Ultraschallsensor – Pin

ESP32 D5 → Ultraschallsensor out Pin

Eine sorgfältige und korrekte Verdrahtung ist entscheidend dafür, dass dein ESP32 die Signale des DHT11 einwandfrei erfassen kann. Wenn diese Verbindungen erfolgreich hergestellt wurden, bist du bereit für die Programmierung. Im nächsten Abschnitt gehen wir detailliert darauf ein, wie du die benötigte Bibliothek einbindest und den Code für den DHT11 programmierst.

 



 

Software Programmierung

Sobald der Hardware-Aufbau erfolgreich abgeschlossen ist, widmen wir uns der Arduino-Programmierung. In diesem Abschnitt behandeln wir die essenziellen Schritte zur Codeerstellung und erläutern die Schlüsselfunktionen, die du verwenden wirst.

 

Schritt 1: IDE Projekt
Zuerst öffnest du die Arduino-IDE und erstellst ein neues Projekt. Um mit der Arduino-IDE zu arbeiten, startest du die Anwendung auf deinem Computer. Falls du die Arduino-IDE noch nicht installiert hast, findest du unter folgendem Link eine Anleitung dazu: [Link zur Arduino-IDE Installationsanleitung, falls vorhanden]. Nachdem du die Arduino-IDE geöffnet hast, legst du ein neues Projekt an, indem du auf „Datei“ und dann auf „Neu“ klickst. Daraufhin öffnet sich ein neues Sketch-Fenster, in das du deinen Code eingeben kannst.

 

Schritt 2: Bibliothek einbinden
Um die Daten des DHT11 auszulesen, musst du eine geeignete Bibliothek in deine Arduino-IDE einbinden. Gehe dazu in der Menüleiste auf „Sketch“ und wähle „Bibliothek einbinden“ aus. Klicke dann auf „Bibliotheken verwalten…“.
In der Bibliotheksverwaltung suchst du nach „dht11“ und installierst die entsprechende Bibliothek. Diese Bibliothek ist unerlässlich, da sie alle notwendigen Funktionen bereitstellt, um die Temperatur- und Feuchtigkeitsdaten des DHT11 zu erfassen und auszulesen.

[Code2]

 

Schritt 3: Initialisierung
Vor dem void setup() Bereich des Codes definieren wir globale Variablen und initialisieren Objekte, die im gesamten Programm verwendet werden. Hier inkludieren wir die dht11 Bibliothek und erstellen ein dht11 Objekt. Außerdem legen wir den Pin fest, an den unser DHT11 Sensor angeschlossen ist, in unserem Fall Pin D5. Diese Initialisierungen sind wichtig, damit der Mikrocontroller weiß, wie er mit dem Sensor kommunizieren und welche Ressourcen er dafür verwenden soll.
[Code3]

 

Schritt 4: Void Setup
Im void setup() Block konfigurieren wir die grundlegenden Einstellungen, die einmalig beim Start des ESP32 ausgeführt werden. Hier starten wir die serielle Kommunikation mit einer Baudrate von 9600. Das ist wichtig, damit wir die vom DHT11 ausgelesenen Werte auf unserem Computer im seriellen Monitor sehen können. Alle Anweisungen in diesem Bereich werden nur ein einziges Mal beim Einschalten oder Reset des ESP32 abgearbeitet.
[Code4]

 

Schritt 5: Loop Setup
Der void loop() Block ist das Herzstück deines Programms, denn der Code darin wird fortlaufend wiederholt, solange der ESP32 mit Strom versorgt wird. In diesem Bereich liest du die Daten vom DHT11 Sensor aus und gibst die gemessene Luftfeuchtigkeit und Temperatur über den seriellen Monitor aus. Nach jeder Messung gibt es eine kurze Pause von zwei Sekunden, damit der Sensor Zeit hat, neue Werte zu erfassen, und der serielle Monitor nicht mit zu vielen Daten überflutet wird. So erhältst du kontinuierlich aktualisierte Messwerte.
[Code5]

 

Gesamter Code

Hier findest du zur besseren Übersicht den gesamten Programmier-Code zusammengefasst.
[Code6]

 

Ausführung / Anwendung

Nachdem du den Code in die IDE eingegeben hast, muss dieser noch ausgeführt und auf den ESP32 übertragen werden.
Gehe dazu wie folgt vor:

Schritt 1: Kompilieren (Haken)
Klicke auf das Häkchen-Symbol in der Arduino-IDE. Dies kompiliert deinen Code und prüft ihn auf Fehler. Sollten Fehler auftreten, werden sie dir angezeigt und du kannst sie beheben, bevor du den Code hochlädst.

Schritt 2: Hochladen (Pfeil)
Ist der Code fehlerfrei, klicke auf das Pfeil-Symbol. Damit wird der kompilierte Code auf deinen ESP32 Mikrocontroller hochgeladen. Achte darauf, dass der richtige ESP32 Board-Typ und der korrekte COM-Port in der IDE ausgewählt sind.

Schritt 3: Serieller Monitor öffnen
Nachdem der Upload erfolgreich war, öffne den seriellen Monitor in der Arduino-IDE (oft ein Lupen-Symbol oben rechts).

Schritt 4: Werte ablesen
Auf dem seriellen Monitor werden dir nun die aktuelle Temperatur und die aktuelle Luftfeuchtigkeit angezeigt, die dein DHT11 Sensor misst.