Zpět na články

ESP32 + DHT11 / DHT22: měření teploty a vlhkosti v Arduino IDE (kompletní návod)

V tomto návodu si ukážeme, jak připojit senzor DHT11 nebo DHT22 k ESP32 a měřit teplotu a vlhkost vzduchu pomocí Arduino IDE.

ESP32 + DHT11 / DHT22: měření teploty a vlhkosti v Arduino IDE (kompletní návod)

Pokud pracujete s ESP32 a chcete měřit teplotu a vlhkost vzduchu, jedním z nejjednodušších řešení jsou senzory DHT11 nebo DHT22. Jsou levné, snadno se připojují a mají připravené knihovny pro Arduino IDE.

V tomto návodu si krok za krokem ukážeme:

  • jak zapojit DHT11 nebo DHT22 k ESP32
  • jak nainstalovat potřebné knihovny
  • jak napsat program pro čtení dat ze senzoru
  • jak zobrazit naměřené hodnoty v Serial Monitoru

Na konci článku budeš mít funkční základ pro vlastní IoT meteostanici nebo projekt chytré domácnosti.

Co je senzor DHT11 a DHT22

DHT11 a DHT22 jsou digitální senzory, které dokážou měřit:

  • 🌡️ teplotu
  • 💧 relativní vlhkost vzduchu

Uvnitř senzoru se nachází:

  • teplotní senzor
  • kapacitní senzor vlhkosti
  • integrovaný převodník signálu

Díky tomu se data přenášejí digitálně přes jeden datový pin, což výrazně zjednodušuje zapojení.

ESP32 Blog image

Rozdíl mezi DHT11 a DHT22

Senzory DHT11 a DHT22 se liší především přesností a rozsahem měření. Zatímco DHT11 je levnější a vhodný pro jednodušší projekty, DHT22 nabízí větší rozsah teplot i vlhkosti a výrazně lepší přesnost. Konkrétně DHT11 měří teplotu v rozsahu 0 až 50 °C s přesností přibližně ±2 °C, zatímco DHT22 zvládne rozsah -40 až 80 °C s přesností kolem ±0,5 °C. U vlhkosti dokáže DHT11 měřit hodnoty 20–90 %, zatímco DHT22 pokrývá téměř celý rozsah 0–100 % relativní vlhkosti. Rozlišení měření je také rozdílné – DHT11 pracuje s krokem 1 °C, zatímco DHT22 dokáže měřit s rozlišením 0,1 °C. Rozdíl je i v rychlosti měření: DHT11 může odesílat data přibližně každou sekundu, zatímco DHT22 potřebuje asi 2 sekundy mezi jednotlivými měřeními.

👉 DHT22 je přesnější a vhodnější pro serióznější projekty, zatímco DHT11 je levnější.

Co budete potřebovat

Pro tento projekt budete potřebovat:

  • ESP32 vývojovou desku
  • senzor DHT11 nebo DHT22
  • 10kΩ rezistor
  • breadboard
  • propojovací vodiče

Tyto komponenty jsou běžně dostupné v každém obchodě s elektronikou.

ESP32 Blog image

Mezi VCC a DATA je nutné zapojit 10kΩ pull-up rezistor.

Pokud používáte DHT modul na destičce, rezistor bývá už součástí modulu.

Instalace knihoven v Arduino IDE

Než začnete programovat, je potřeba nainstalovat knihovny.

Postup:

  1. Otevřete Arduino IDE
  2. Klikněte na Tools → Manage Libraries
  3. Vyhledejte a nainstalujte:
  • DHT sensor library by Adafruit
  • Adafruit Unified Sensor

Tyto knihovny zjednodušují komunikaci mezi ESP32 a senzorem.

ESP32 Blog image

Program pro ESP32 a DHT11/DHT22

Níže je jednoduchý program, který čte hodnoty ze senzoru a vypisuje je do Serial Monitoru.

1#include "DHT.h" 2 3#define DHTPIN 4 4#define DHTTYPE DHT22 // změňte na DHT11 pokud používáte DHT11 5 6DHT dht(DHTPIN, DHTTYPE); 7 8void setup() { 9 Serial.begin(9600); 10 Serial.println("Test senzoru DHT"); 11 12 dht.begin(); 13} 14 15void loop() { 16 17 delay(2000); 18 19 float humidity = dht.readHumidity(); 20 float temperature = dht.readTemperature(); 21 22 if (isnan(humidity) || isnan(temperature)) { 23 Serial.println("Chyba čtení ze senzoru!"); 24 return; 25 } 26 27 Serial.print("Teplota: "); 28 Serial.print(temperature); 29 Serial.print(" °C "); 30 31 Serial.print("Vlhkost: "); 32 Serial.print(humidity); 33 Serial.println(" %"); 34}

Program každé 2 sekundy přečte hodnoty ze senzoru a vypíše je do sériového monitoru.

Zobrazení dat v Serial Monitoru

Po nahrání programu:

  1. otevřete Serial Monitor
  2. nastavte rychlost 9600 baud

Měli byste vidět výstup například:

1Teplota: 23.4 °C Vlhkost: 45.2 % 2Teplota: 23.5 °C Vlhkost: 45.1 %

ESP32 nyní pravidelně měří teplotu a vlhkost.

Nejčastější problémy

ESP32 nečte data ze senzoru

Pokud se zobrazí chyba:

Failed to read from DHT sensor

zkontrolujte:

  • správný typ senzoru (DHT11 / DHT22) v kódu
  • zapojení vodičů
  • přítomnost pull-up rezistoru
  • interval měření (DHT22 potřebuje cca 2 s)

Jak projekt rozšířit

Tento projekt můžeš snadno rozšířit například o:

  • ESP32 web server s meteostanicí
  • ukládání dat do InfluxDB
  • odesílání dat přes MQTT
  • integraci do Home Assistant

ESP32 je velmi výkonný mikrokontrolér a umožňuje stavět pokročilé IoT projekty.

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.