Kako se koristi DHT11 ili DHT22 Arduino Senzor
Želite li voditi bazu podataka temperature i vlage u svom stakleniku ili pratiti podatke o temperaturi i vlažnosti za projekt meteorološke stanice? DHT11 senzor mogao bi Vam savršeno odgovarati.
U ovoj lekciji ćemo objasniti:
- Šta je to DHT11 i DHT22 Arduino senzor?
- Šema povezivanja i kod za kontrolu DHT11 i DHT22 Arduino senzora
- Kod za kontrolu DHT11 i DHT22 Arduino senzora
- Specifikacija materijala
Šta je to DHT11 i DHT 22 Arduino senzor?
DHT11 i DHT22 su digitalni senzor temperature i vlažnosti. Koristi kapacitivni senzor vlage i termistor za mjerenje i šalje podatke putem 1-wire protokola. DHT22 može mjeriti temperaturu od -40°C do +125°C s točnošću od ±0,5°C, dok DHT11 može mjeriti temperature od 0°C do 50°C s točnošću od ±2°C. Verzije senzora koje ćemo mi koristiti u ovoj lekciji nisu vodootporane! Svaki DHT11 i DHT22 senzor je strogo kalibriran u laboratoriji što je izuzetno precizno u kalibraciji vlažnosti. Kalibracijski koeficijenti pohranjuju se kao programi u OTP memoriji, koje koristi unutarnji proces detekcije signala senzora.
DHT11 koristi samo jednu signalnu žicu za prijenos podataka na Arduino. Napajanje dolazi iz odvojenih žica od 5V i GND. Jedan od najvećih razloga zašto su DHTxx senzori najzastupljniji i zašto se najviše koriste u Arduino projektima je taj što koriste svega 2,5mA!
Postoje dvije različite verzije DHT11 i DHT22 na koje biste mogli naići. Jedan tip ima četiri pina, a drugi tip ima tri pina i montiran je na malu PCB (modul verzija). Modul verzija montirana na PCB ploču i zgodna je jer na sebi ima SMD otpornik od 10K Ohma za signalnu liniju. Na slici ispod možete vidjeti razlike između senzora sa tri i četiri pina. Senzori su uvijek isti, ali PCB izvedbe mogu biti malo drugačije od proizvođača do proizvođača. Neki proizvođači stavljaju sa na prednjem dijelu modula otpornike, dok neki na zadnjem dijelu. Često se na prednjoj strani stavlja i SMD led didoda kako bi označi pravilnu polariziranost senzora.
Ako se odlučite koristiti verziju senzora bez modula, oba senzora i DHT11 i DHT22 se jednako povezuju tj. otpornik od 10k Ohm ide između pina 1 i pina 2. Na svakoj PCB modul verziji imate označeno VCC(+), GND(-) i OUT(signal) i bitno je da pravilno povežete module kako ne bi došlo do oštećenja senzora.
Na slici ispod možete vidjeti dvije verzije senzora.
Na slici ispod možete vidjeti tehničke razlike između DHT11 i DHT22 senzora:
Šema povezivanja i kod za kontrolu DHT11 i DHT22 Arduino senzora
U gornjem dijelu lekcije objasnili smo sta su to DHT11 i DHT22 senzori i koje su tehničke razlike, tako da cemo se u ovom dijelu malo više fokusirati na šemu i kod.
Šema povezivanja DHT11 i DHT22 senzora sa 4 pina (bez modula):
Šema povezivanja DHT11 i DHT22 senzora sa 3 pina (modul verzija):
Kod za kontrolu DHT11 i DHT22 Arduino senzora
Kao što možete vidjeti na slici ispod verzija Arduino IDE-a u ovom primjeru je 2.0.4. Bilo koju stariju verziju da koristite postupak nalaženja i naziv biblioteke je isti. Sve što trebate je da nađete Library Manager – označeno polje br. 2, ukucate dht sensor i izaberete jednu od ponuđenih biblioteka – označeno polje br. 1. Obzirom da je Adafruit ozbiljan proizvođač modula i da imaju čitav tim stručnjaka za izradu biblioteka, tim odabirom ne možete pogriješiti – označeno polje br. 3.
Klikom na INSTALL, intalirajte biblioteku. Nakon što ste instalirali biblioteku u gornjem dijelu Arduino IDE-a izbaberite File -> Examples -> DHT Sensor Library -> DHTTester. Kako bi sve stalo u na jednu sliku, na slici ispod je izbrisano nekoliko linija koda kao i prikaz Heat index.
Ono na šta treba da obratite pažnju je:
- označeno polje br.1 gdje se definiše koji Pin ćete koristiti za očitavanje senzora,
- označeno polje br.2 gdje se Uncomment liniju koda u kojoj je označen senzor koji koristite (DHT11 ili DHT22)
- napomena: samo 1 senzor moze biti Uncomment,
- označeno polje br.3 gdje se provjerava da li senzor ispravno radi,
- napomena: ovaj dio koda možete izbrisati, ali ga je poželjno imati.
Nakon što je kod Upload-ovan senzor DHT11 (u ovom primjeru), na slici iznad, očitao je vlažnost 47 % i temperaturu 25.3 C. Kao što možete vidjeti nakon što sam uzeo senzor u ruku i počeo puhati, temperatura i vlažnost ste naglo popela.
U ovoj lekciji naučili ste kako koristiti DHTxx senzor.
Zadatak: iskoristite varijablu temperature i postavite sljedeće uslove:
- Uslov br. 1: Ako je temperatura manja od 30 upali crvenu Led diodu
- Uslov br. 2: Ako je temperatura veća od 35 upali crvenu Led diodu
- Uslov br. 3: Ako je temperatura između 30 i 35 i crvena i zelena Led dioda su ugašene
Specifikacija materijala:
1x Arduino Uno
1x Breadboard
3x Otpornik 10kΩ
5x Komunikacijski kablovi