Lekcija 10 – DHT11 i DHT22 senzor vlage i temperature

Na Arduino pločicu spojimo DHT11 senzor vlažnosti i temperature, LCD 16×2 i potenciometar od 10 KΩ za upravljanje pozadinskim osvjetljenjem kao što je prikazano na slici ispod. Napišimo program koji će u prvom redu ispisati izmjerenu vrijednost vlažnosti izraženu u postocima a u drugom redu izmjerenu temperaturu izraženu u stepenima celzijusa.

Komponente:

  • 1 * Arduino UNO R3 mikrokontroler,
  • 1 * USB kabal,
  • 1 * Eksperimentalna pločica,
  • 1 * DHT11 senzor vlažnosti i temperature,
  • 1 * LCD 1602,
  • 1 * Potenciometar 10 KΩ,
  • 19 * Kratkospojničke žice (muško-muške)

DHT11 i DHT22 senzor vlažnosti i temperature

DHT11 i DHT22 su iste vrste senzora s nekim razlikama u izvedbi. Oba koriste kapacitivne senzore vlažnosti i termistore za mjerenje relativne vlažnosti i temperature okoline.

Senzor

DHT11

DHT22

 

Izgled

Raspon temperature

0 – 50o C

-40 – 80o C

Tačnost temperature

±2o C

±0,5o C

Raspon vlažnosti

20 – 90%

0 – 100%

Tačnost vlažnosti

5%

2%

Rezolucija

Vlažnost: 1%
Temperatura: 1o C

Vlažnost: 0,1%
Temperatura: 0,1o C

DHT22 je skuplji, što znači da je sposobniji od DHT11. DHT22 može mjeriti temperature od -40o do +80o C s ±0,5o tačnosti, dok DHT11 može mjeriti od 0o do 50o C s ±2o tačnosti.

Također, senzor DHT22 ima bolji senzor vlažnosti koji može mjeriti relativnu vlažnost od
0 do 100% s 2% tačnosti, dok DHT11 može mjeriti od 20 do 80% s 5% tačnosti.

Za očitavanje vlažnosti, DHT11 ima otpornu komponentu koja ima dvije elektrode i supstrat koji zadržava vlagu između njih. Kada podloga koja apsorbuje vodenu paru prisutnu u zraku, oslobađa ione koji povećavaju provodljivost između dvije elektrode.

Promjena otpora između dvije elktrode obrnuto je proporcionalna relativnoj vlažnosti. Kada se vlažnost u zraku poveća, otpor između elektroda se smanjuje, a kada se vlažnost smanji, otpor između elektroda se poveća.

DHT11 ima NTC termistor za mjerenje temperature. Termistor je toplotni otpornik čiji je otor jako ovisi o temperature. Izraz “NTC” znači “negativan temperaturni koeficijent” što znači da njegova otpornost opada s povećeanjem temperature.

Senzor dolazi s 14-pinskim, 8-bitnim mikrokontrolerom koji pretvara analogne podatke sa senzora vlažnosti i termistora u digitalne vrijednosti. Generiše digitalni signal koji sadrži vrijednosti relativne vlažnosti, tempearature i bajt kontrolne sume.

Apsolutna vlažnost naspram relativne vlažnosti

DHT11 i DHT22 mogu mjeriti samo relativnu vlažnost. Apsolutna vlažnost je ukupna masa vodene pare prisutna u  određenom volumenu ili masi zraka. Ne uzima u obzir temperature. S druge strane, relativna vlažnost je omjer količine vodene pare u zraku i količine vodene pare koju zrak potencijalno može sadržavati na određenoj temperaturi.

Formula za izračunavanje relativne vlažnosti je:

Gdje je:

RH-relativna vlažnost,
pw-gustoća vodene pare pri određenoj temperaturi,
ps-gustoća vodene pare pri zasićenju na toj temperature.

Relativna vlažnost se izražava u postocima, tako da 0% relativne vlažnosti znači da je zrak potpuno suh, a 100% relativne vlažnosti znači da dolazi do kondenzacije.

Pinovi DHT11 i DHT22

VCC pin osigurava napajanje senzora. Unatoč činjenici da se napon napajanja kreće
od 3,3 V do 5,5 V, preporučuje se napajanje od 5 V. Uz napajanje od 5 V, senzor se može postaviti do 20 metara udaljenosti. Uz napon napajanja od 3,3 V, senzor se može postaviti do 1 metar udaljenosti, inače će pad napona uzrokovati greške u mjerenju.

Data pin služi za komunikaciju između senzora i mikrokontrolera.

NC  pin nije spojen.

GND je kontakt za uzemljenje.

Postupak

1. Izgradite sklop

2. Program

lekcija10
C++
/***********************************************************
Senzor vlažnosti i temperature DHT11 i LCD 1602
STEM Lab
***********************************************************/

#include <dht11.h>                               // Biblioteka DHT11
#include <LiquidCrystal.h>                       // Biblioteka LCD 1602

dht11 DHT11;

#define DHT11PIN 5                               // Inicijalizacija senzora DHT11 (pin 5)

LiquidCrystal lcd(6, 7, 8, 9, 10, 11);

void setup() {
    lcd.begin(16, 2);                           // Postavite broj kolona i redova na LCD-u
    lcd.clear();                               // Izbrišite LCD displej i postavite kursor u gornji lijevi ugao
    delay(1000);                               // Kašnjenje 1000 ms
}

void loop() {
    int chk = DHT11.read(DHT11PIN);

    lcd.setCursor(0, 0);                       // Postavite kursor na kolonu 0, red 0
    lcd.print("Vlaznost:");                    // Ispišite poruku "Vlaznost:" na LCD-u
    lcd.print((float)DHT11.humidity, 2);       // Ispišite vrijednost izmjerene vlažnosti
    lcd.print(" % ");                          // Ispišite jedinicu za izražavanje postotka vlažnosti (% - postotak)

    lcd.setCursor(0, 1);                       // Postavite kursor na kolonu 0, red 1
    lcd.print("Temp:    ");                    // Ispišite poruku "Temp:" na LCD-u
    lcd.print((float)DHT11.temperature, 2);   // Ispišite vrijednost izmjerene temperature
    lcd.print(" C ");                          // Ispišite jedinicu za izražavanje temperature (C - Celzijus)

    delay(1000);                               // Kašnjenje 1000 ms    
}

3. Prenesite program na Arduino UNO pločicu.

Udruženje STEM Lab osnovano je početkom 2021. godine udruživanjem nastavnog osoblja OŠ „Huso Hodžić“ Tešanj koje je učestvovalo u osnivanju STEM kabineta tokom realizacije dijela „EGG projekta“ koji je finansirala vlada Kraljevine Norveške preko UNDP-a za BiH, uz uslov sufinansiranja Ministarstva za obrazovanje, nauku, kulturu i sport Ze-do kantona i Općine Tešanj.

74260 Tešanj
+387 61 616 067