DHT11 a DHT22 – meranie teploty a vlhkosti

DHT11 a DHT22 – meranie teploty a vlhkosti

Na meranie teploty a vlhkosti v interiéry som vyskúšal známe senzory DHT11 (modrý) a DHT22 (biely).

V článku som spomenul rozdiely, zapojil senzory s Arduinom Nano, vyhľadal vhodnú knižnicu, vyskúšal nejaké tie programy a samozrejme niečo som i nafotil.

V tomto článku sa pozrieme na senzory DHT11 (modrý) a DHT22 (biely). Rozdiel medzi nimi je v rozsahu merania a citlivosti, kde:

  • DHT11 - meria teplotu v rozsahu 0 - 50 stupňov Celzia s presnosťou ±1 °C a vlhkosť v rozmedzí 20 - 90% s presnosťou ±4%
  • DHT22 - umožňuje merať teplotu v rozsahu -40 až +80 stupňov Celzia s presnosťou ±0,5 °C a vlhkosť vzduchu v rozsahu 0 - 100% s presnosťou ±2%.

Senzor má štyri vývody, z toho jeden je nezapojený, dva sú použité na napájanie v rozsahu 3V až 5V a jeden je dátový. Medzi tento dátový výstup a Vcc je doporučené pripojiť pull up rezistor v rozsahu 4,7kΩ - 10kΩ. Dĺžka kábla môže byť až 20 metrov.

senzor čidlo DHT11 DHT22 pinout biely modrý 4 vývody pre Arduino projekt

K dispozícii je aj verzia ako modul na malom plošnom spoji s tromi vývodmi. U tohto modulu je už pull up rezistor integrovaný a netreba ho použiť. Ja som ho tam tiež nedával a funguje to. Je tam dokonca na vetve napájania i malý kondenzátor.

Senzor čidlo modul DHT11 a DHT22 pre Arduino projekt na meranie teploty a vlhkosti s 3 vývodmi

Koho by zaujímalo, tak pod tým modrým krytom je 8-bitový mikrokontrolér. Každý snímač tohto modelu je výrobcom teplotne kompenzovaný a kalibrovaný v presnej kalibračnej komore. Kalibračné koeficienty sú uložené ako programy v pamäti OTP, ktoré sa používajú v procese detekcie interného signálu snímača. Snáď to platí i pre senzory nakúpené na čínskych e-shopoch.

DHT11 inside otvorený rozobraný modrý senzor čidlo DHT22 pre Arduino projekt na meranie teploty a vlhkosti so 4 vývodmi

Pripojenie senzora k Arduinu je pomerne jednoduché. Použil som Arduino Nano a k tomu DHT22 (ten na PCB doske). Vodičmi som prepojil napájanie a dátový vodič som pripojil na pin D2. Miesto pinu D2 na Arduino doske môžeme samozrejme využiť iný voľný dátový pin, ale je nutné túto voľbu vykonať aj v programe.

Fritzing zapojenie biely senzor čidlo DHT-22 a Arduino Nano pre projekt na meranie teploty a vlhkosti s 3 vývodmi
Fritzing zapojenie biely senzor čidlo DHT-22 a Arduino Nano pre projekt na meranie teploty a vlhkosti so 4 vývodmi a pripojeným pull-up rezistorom

Ďalej bolo potrebné stiahnuť a naimportovať vhodnú knižnicu DHT do Arduino IDE (návod na knižnice je uvedený tu). Knižníc na obsluhu DHT senzorov je samozrejme viac, mne sa najviac pozdávala táto. Program z príkladu je veľmi jednoduchý, namerané hodnoty posiela na sériovú linku v čo najkratších meracích intervaloch.

#include "DHT.h"

DHT dht;

void setup()
{
  Serial.begin(9600);
  Serial.println();
  Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");

  dht.setup(2); // data pin 2
}

void  loop()
{
  delay(dht.getMinimumSamplingPeriod());

  float humidity = dht.getHumidity();
  float temperature = dht.getTemperature();

  Serial.print(dht.getStatusString());
  Serial.print("\t");
  Serial.print(humidity, 1);
  Serial.print("\t\t");
  Serial.print(temperature, 1);
  Serial.print("\t\t");
  Serial.println(dht.toFahrenheit(temperature), 1);
}

Najkratší merací interval je podľa typu DHT senzora a rieši to funkcia dht.getMinimumSamplingPeriod(), ktorá vráti hodnotu v milisekundách. Pre DHT11 je to najmenej 1000ms a pre DHT22 je to zas 2000ms. Pri reálnom nasadení dávame čas merania samozrejme väčší, napr. každých 5 až 15 min alebo raz za hodinu.

Výstup z DHT22 na sériovom monitore a zapisovači mám tu:

výstup zo senzora čidla DHT22 na sériovom monitore v Arduino IDE pre projekt na meranie teploty a vlhkosti výstup zo senzora čidla DHT22 na sériový plotter v Arduino IDE pre projekt na meranie teploty a vlhkosti

Červená je teplota v °C, modrá je vlhkosť a zelená je teplota vo Fahrenheitoch.

Ako ste si určite v programe všimli, tak u tejto knižnici sa nezadáva konkrétny typ DHT senzora. Štandardne je prednastavená na automatickú detekciu senzora, ktorá prebehne pri spustení dht.setup(2). Výhodu to možno má v tom, že keď vymením DHT senzor za iný model, stačí Arduino len reštartovať (resetovať) a meranie funguje ďalej bez potreby upraviť zdrojový program.

Ďalej som vyskúšal pripojiť naraz oba senzory k Arduinu. DHT22 je pripojený na pin 2 a DHT11 na pin 3. Program som poupravil nasledovne:

Program na sériovom monitore zobrazí nasledovné namerané hodnoty pre oba senzory:

výstup zo senzora čidla DHT-11 a DHT-22 na sériovom monitore v Arduino IDE pre projekt na meranie teploty a vlhkosti

Ako vidieť, teplotu ukazujú rovnakú, len tá vlhkosť je u DHT11 nižšia. Odskúšal som to i na druhý deň a rozdiel bol ten istý. Že by blbý kus?

Taktiež presnosť u DHT22 je na desatinné miesto, ale u DHT11 je to len na celé číslo.

fotka fotografia projektu Arduino Nano na meranie teploty a vlhkosti zo senzora čidla DHT-11 a DHT-22 zapojený na nepájivom kontaktnom poli breadboard s prepojovacími vodičmi

Fotka projektu

Na záver len toľko, že DHT22 mi príde lepšia a vhodnejšia ako DHT11, i keď je o málinko drahšia, doporučil by som a použil radšej DHT22. V pláne ju mám použiť do bezdrôtového batériou napájaného Arduino senzora v rámci projektu Home Automation na Raspberry Pi 3. Samozrejme som vyskúšal aj ďalšie senzory ako napr. DS18B20 alebo BME280.

Výber na čítanie...

Arduino MEGA 2560
Arduino MEGA 2560

Arduino MEGA 2560 je navrhnutý pre komplexnejšie projekty. Má väčší priestor pre program, takže sa využíva pre 3D tlačiarne a projekty robotiky. To dáva projektom dostatok priestoru. K tejto doske nájdete aj rôzne shieldy. Medzi najpoužívanejšie patrí napr. ...

Čítať viac...

ThingSpeak
ThingSpeak

Pri vytváraní projektov pre Arduino narazíme na problém, kedy chceme sledovať stav napr. teplotu, tlak, vlhkosť či akékoľvek iné hodnoty z miesta mimo našu domácu sieť. Riešenie môžeme nájsť u už hotových webových...

Čítať viac...

Knižnica pre Arduino EEPROM.h
EEPROM.h

Knižnica pre Arduino EEPROM.h sa využíva na čítanie a zápis dát do internej pamäte EEPROM. To je tá časť pamäte, ktorá si zachová uložené dáta aj po vypnutí napájania Arduina. Veľkosť tejto pamäte je daná mikrokontrolérom, napr. ATmega328 má 1024 bajtov, ATmega1280 ...

Čítať viac...

Obľúbené produkty...

Keyestudio Sensor Starter Kit MEGA 2560 V2

74.85 EUR

53.89 EUR

Keyestudio ESP32 Learning Starter Kit

109.65 EUR

51.54 EUR

Keyestudio 4DOF Robot Arm

70.21 EUR

51.26 EUR

Vyhľadať články
Programovanie...
  • Goniometrické funkcie

    Goniometrické funkcie v matematike označuje termín používaný pre jednu zo šiestich funkcií veľkos...

  • Globálne premenné

    Premenné aj funkcie majú svoj rozsah platnosti, čiže oblasť, v ktorej fungujú a v ktorej nie. Vid...

  • Funkcie náhodných čísiel

    Náhodné čísla zvyčajne pozostávajú zo zložitých sérií algoritmov, ktoré sú štatisticky predvídate...

  • Logické operátory

    Logické operátory sú && || ! (and or a not). Vykonávajú výpočet logických výrazov tvorených ich o...

  • Konštanty

    Konštanty sú symboly reprezentujúce nemennú číselnú alebo inú hodnotu. Prekladač jazyka im prirad...

Podpora webu
Na kávu už prispeli
Dátum Meno Suma
20.10.2024 Radovan Nosáľ 20€
02.10.2024 Milan Durkoš 10€
08.01.2024 Veres Dusan 10€
15.05.2023 Ivan Danis 10€
28.09.2022 Ivan Vrab 7€
14.05.2022 Nemcic Marian 10€
04.02.2022 Robert Bilko 5€
29.01.2022 Peter Buffa 5€
19.11.2021 Rastislav Rehak 5€
16.09.2021 Anton Strela 5€
13.09.2021 Juraj Jedlak 5€
02.09.2021 Michal Marek 7€
08.08.2021 František Uhrík 5€
21.07.2021 Juraj Hrdina 5€
25.03.2021 Jan Nemec 10€
16.03.2021 Igor Pavlov 5€
25.02.2021 Lukas Lacuch 5€
06.11.2020 Pavol Balint 5€
05.11.2020 Marek Horečný 5€
05.10.2020 Jan Kusnir 5€
27.04.2020 Jan Zuskin 15€
26.04.2020 Dušan Sojka 5€
24.02.2020 Juraj Lackanič 5€
22.01.2020 František Žilinec 10€
20.05.2018 Tomáš F. 2€
17.12.2018 Pavol P. 5€
QR Donate 10Eur