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...

Eclipse Neon návod na inštaláciu
Eclipse Neon – návod na inštaláciu

Eclipse je ďalšie z mnoha IDE, v ktorom píšeme zdrojový kód a ladíme programy. Tento nástroj, ktorý okrem iného ponúka príjemné pracovné prostredie, debuger a nemalé množstvo rozširujúcich pluginov, je možné používať bezplatne. V tomto článku popisujem, ako sa ...

Čítať viac...

Fritzing
Fritzing

Software Fritzing je open-source hardware initiative (obdoba slobodného softvéru), ktorej cieľom je sprístupniť každému návrh a výrobu elektronických zariadení. K dispozícii je...

Čítať viac...

swDuino 2
swDuino 2

Aplikácia swDuino funguje ako webový server na stolnom PC so systémom Windows, cez ktorý môžeme interaktívne monitorovať a ovládať pripojené Arduino cez sériovú linku (Serial to Web). K dispozícii je i...

Čítať viac...

Obľúbené produkty...

Keyestudio Self-balancing Car

79.72 EUR

79.72 EUR

Keyestudio 4DOF Robot Arm

70.44 EUR

57.76 EUR

Keyestudio L298P Motor Shield

27.77 EUR

16.67 EUR

Keyestudio 1602LCD Keypad Shield

19.23 EUR

13.46 EUR

Vyhľadať články
Programovanie...
  • Dátové typy

    Celočíselné dátové typy môžu obsahovať modifikátory unsigned respektíve signed, čím môžeme požado...

  • Digitálne IO funkcie

    Keďže je Arduino určené k ďalšiemu rozširovaniu, obsahuje vstupy a výstupy (nazývané piny), ku kt...

  • Ostatné IO funkcie

    U Arduina je možné generovať i zvuk, ale iba v najjednoduchšej podobe. Neumožňuje totiž generovať...

  • Aritmetické operátory

    Aritmetické operátory vykonávajú matematické operácie dvoch výrazov jednej alebo viacerých typov ...

  • Terárne operátory

    Terárne operátory alebo označované aj ako podmienené operátory sú pomerne neobvyklé. Preto bude v...

Podpora webu
Na kávu už prispeli
Dátum Meno Suma
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