Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/itstreet/public_html/classes/CMySQL.php on line 22

Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/itstreet/public_html/classes/CMySQL.php on line 24
ITstreet -DHT22, 1602 LCD i Arduino UNO
Preskoči na sadržaj

ITstreet postovi

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:


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.



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.



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
O samom povezivanju nema šta puno da se kaže. Potrebno je samo ispratiti obeležene pinove na modulu i pravilno ga povezati.



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.



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.



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.

Ostavite poruku

Vaša mejl adresa neće biti objavljena.Označena polja su obavezna*