DHT22, 1602 LCD i Arduino UNO
Pravi je izazov napraviti mini meteorološku stanicu sada kada temperature idu preko tridesetog podeoka i to noću. Takođe, nije baš prijatno očitati 32 stepena u plusu u 10 sati uveče. U svakom slučaju biće reči o jednom krajnje zanimljivom modulu za očitavanje temperature i relativne vlažnosti vazduha.
Za ovaj projekat ćemo iskoristiti već postojeći projekat 1602 LCD-a i Arduino UNO-a, zajedno sa postojećim skečom. Dakle, ovo će biti svojevrsna ekspanzija. Smatram da je tako najlakše, jer uvek je lakše nešto nadograditi nego ići iz početka. Šta nam sve treba:
- Arduino UNO (može i neki drugi)
- LCD 1602
- Breadboard
- muško/muške Dupont žice
- 1 otpornik od 220 oma
- 1 potenciometar 10 kilooma
- DHT22 modul
- Arduino IDE softver
Da kažem koju reč o modulu pošto sam o ostalim komponentama ovog projekta već pisao. DHT22 se može naći u dve varijante: kao senzor sa četiri pina gde se prilikom povezivanja mora koristiti otpornik i kao modul sa tri pina gde su otpornici već zalemljeni na samom modulu. Ja sam uzeo modul sa tri pina i već postavljenim otpornicima.
![](http://i.imgur.com/Et0LOZn.jpg?1)
Aosong AM2302 je naziv senzora unutar ovog modula. DHT22 modul se jasno razlikuje od DHT11 preko rupe na plastičnom kućištu koja služi za pričvršćivanje. Otvor je ∅3mm što je standard u svetu mikroračunara. Skoro sve se spaja šrafovima M3. Plastično kućište modula je po pravilu bele boje. Sa donje strane su tri pina i njihova uloga može da varira u zavisnosti od proizvođača. U principu su svi jasno obeleženi. U slučaju mog primerka pinovi su označeni s leva na desno: plus(+), out i minus(-). Negde će možda stajati VCC, DATA i VSS što je u suštini isto a negde će biti drugačiji redosled. Mi svakako moramo prilikom povezivanja da ispratimo pinove i njihovu ulogu. Pinovi su inače razmaka 2,54mm (0,1") i pogodni su za postavljanje na prototipsku ploču. Dimenzije ovog modula su 25x15x7mm plus nekih desetak milimetara koliko izlazi PCB ispod njega.
DHT22 modul je relativno precizan. Preciznost u merenju temperature je ±0,5 stepeni Celzijusa, dok je u merenju relativne vlažnosti vazduha to ±2% na temperaturi od 25 °C. Modul radi na DC naponima od 3,3V do 5V a maksimalna potrošnja pri tom je 2,5mA. Rezolucija i za temperaturu i za vlažnost vazduha iznosi 0,1. Raspon merenja temperature je od -40°C do + 80°C a relativne vlažnosti vazduha od 0 do 99,9%. Kalibracija je fabrički podešena i nalazi se u mikrokontroleru unutar modula. DHT22 ima učestalost semplovanja (slanja podataka) od 0,5Hz, što će reći da padatke pošalje na svake 2 sekunde. Takođe vredno pomena je da senzor može biti udaljen od Arduina i do 100m, tj. toliko maksimalno može biti povezan žicama a da ne gubi na preciznosti.
![](http://i.imgur.com/TMZ7yBB.jpg?1)
Možemo da nastavimo tamo gde smo stali na prethodnom projektu. U prototipsku (breadboard) ploču ubadamo DHT22 modul i povezujemo ga prema Fritzig šemi:
- siva žica ide sa plus pina na plus polje
- bela žica ide sa OUT pina na pin broj 7 na Arduinu
- crna žica ide sa minus pina na minus prototipske ploče
![](http://i.imgur.com/Ix2KE1r.jpg?1)
Prvo što treba da uradimo je da dodamo neophodnu biblioteku da bi UNO znao šta da radi sa modulom. Neophodnu biblioteku možemo preuzeti ovde. Nakon preuzimanja biblioteku treba raspakovati i prekopirati u folder Arduino->libraries i preimenovati je u DHT22 (arduino-DHT-master u DHT22). Zatim biblioteku treba instalirati tako što idemo na Sketch->Include Library->Manage Libraries i tu u polje kucamo DHT. Sve ponuđene biblioteke instalirati ili im instalirati najnovije verzija.
![](http://i.imgur.com/OczKkVy.jpg?1)
Na redu je skeč. Kao i u prethodnom projektu, skeč nakon par prepravki prebacujemo na Arduino UNO.
-----------------------------------
#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTPin 7
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
DHT dht;
void setup() {
// put your setup code here, to run once:
dht.setup(DHTPin);
lcd.begin (16, 2);
}
void loop() {
// put your main code here, to run repeatedly:
float temp = dht.getTemperature();
float vlaga = dht.getHumidity();
lcd.setCursor (0, 0);
lcd.print ("Temp: ");
lcd.print (temp);
lcd.print (" C");
lcd.setCursor (0, 1);
lcd.print ("Vlaga: ");
lcd.print (vlaga);
lcd.print (" %");
delay (2000);
}
-----------------------------------
Prvi red ostavljamo jer je u pitanju biblioteka vezana za LCD. drugi red je uključivanje biblioteke vezano za DHT senzor. Treći red je definisanje pina na Arduinu, u našem slučaju je to pin 7. Zatim deklarišemo promenljivu dht. U setup funkciji pokrećemo DHTPin, tj. pin na koji ćemo vezati out sa modula a ispod nje pokrećemo ekran. U void funkciji prikupljamo očitavanja sa senzora i pravimo dve promenljive: temp i vlaga. Dalje formatiramo tekst gde će se u prvom redu (setCursor 0, 0) ispisati vrednosti temperature i (setCursor 0, 1) vrednosti relativne vlažnosti vazduha. Nakon toga osvežavamo očitavanje svake dve sekunde funkcijom delay.
![](http://i.imgur.com/Ql5oTrP.jpg?1)
Prebacimo skeč na Arduino i ekran bi trebalo da ispiše očitavanja. DHT22 je jedan krajnje zanimljiv modul i odličan je izbor za kućnu meteorološku stanicu.
0 Poruka/e