DHT11 a DHT22 – meranie teploty a vlhkosti

DHT11 a DHT22 - meranie teploty a vlhkostiNa 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.

Produkty


Dallas DS18B20 – meranie teploty

Dallas DS18B20 - meranie teplotyĎalší vynikajúci senzor na meranie teploty je Dallas DS18B20. V článku popisujem jeho parametre, dva spôsoby napájania, vnútornú pamäť (registre) a samozrejme zapojenie s Arduinom, jednoduchý program a nejaké fotky. Teplotný senzor (alebo tiež čidlo) DS18B20 od firmy Maxim (predtým Dallas) je v Arduino komunite veľmi obľúbené. Za veľmi dobrú cenu umožňuje merať teplotu v rozsahu od -55 …

EEPROM.h

knižnica pre Arduino EEPROM.hKniž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 a ATmega2560 má 4096 bajtov. Obsah tejto pamäte môže modifikovať len bežiaci program v …

BME280 a BMP280 – meranie tlaku, teploty a vlhkosti

BME280 BPM280 tlak teplota vlhkostNa meranie atmosférického tlaku Arduinom je vhodný senzor BME280 alebo BMP280 od firmy Bosch. Senzor ideálny do domácej meteostanici. V nasledujúcom článku popíšem rozdiely, zapojenie a ukážkový program z knižnice. Po vyskúšaní merania teplôt a vlhkosti so senzormi DHT a DS18B20, to chcelo tentokrát vyskúšať merať aj atmosférický tlak. Našiel som na to vhodný senzor BME280 a BMP280. Vyrába ich …

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Môžeš použiť tieto HTML značky a atribúty: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>