Kazalo:

Arduino senzor temperature in vlažnosti: 7 korakov
Arduino senzor temperature in vlažnosti: 7 korakov

Video: Arduino senzor temperature in vlažnosti: 7 korakov

Video: Arduino senzor temperature in vlažnosti: 7 korakov
Video: Подключим к Arduino Датчик температуры DS18B20 2024, Julij
Anonim

Avtor ThundertronicsSledi še avtorja:

PIC16F877A Analogno -digitalni pretvornik (ADC)
PIC16F877A Analogno -digitalni pretvornik (ADC)
PIC16F877A Analogno -digitalni pretvornik (ADC)
PIC16F877A Analogno -digitalni pretvornik (ADC)
LCD vmesnik z mikrokrmilnikom PIC16F877A
LCD vmesnik z mikrokrmilnikom PIC16F877A
LCD vmesnik z mikrokrmilnikom PIC16F877A
LCD vmesnik z mikrokrmilnikom PIC16F877A
DIY modularni napajalnik za klop
DIY modularni napajalnik za klop
DIY modularni napajalnik za klop
DIY modularni napajalnik za klop

V tej vadnici bom razložil izdelavo senzorja temperature in vlažnosti z uporabo mini plošče Arduino pro s senzorjem DHT11 (ali DHT22).

Korak: Oglejte si video

Pomembno je, da si videoposnetek najprej ogledate, preden se premaknete na naslednji korak. Video posnetek razlaga vse in prikazuje, kako se to naredi. Vendar bom v tem prispevku napisal več tehničnih podatkov in podrobnosti.

www.youtube.com/watch?v=56LKl7Xd770

Korak: Potrebni deli

Za ta projekt so potrebni naslednji deli:

1- Arduino pro mini plošča (ali kateri koli Arduino).

2- Senzor temperature in vlažnosti DHT11 (ali DHT22).

3- 16x2 LCD zaslon.

4- Ohišje po vaši izbiri, po možnosti enako kot v videu.

Potenciometer 5-10K.

6- Vijačne sponke.

7- Upori različnih vrednosti.

8- 9v baterija.

potrebna orodja pa so:

1- ročni vrtalnik kot Dremil.

2- različni nastavki za vrtalnik, saj bomo uporabili zglajevalne in rezalne nastavke.

3- roke za pomoč.

poleg tega običajna elektronska orodja, kot je multimeter itd.

3. korak: Shematsko oblikovanje

Shema
Shema

V tem projektu sem se odločil, da bom zanj izdelal tiskano vezje, namesto da bi ga ožičil sam. Zato sem za delo uporabil spletno orodje EasyEDA, kar je bila lepa izkušnja.

To je stran projekta na spletnem mestu easyEDA:

Razlaga sheme je naslednja:

1- Za programiranje Arduino pro mini sem uporabil 6-polni ICSP adapter, ker ni priložen. na shemi je J2.

2- R2 je 100 ohmov in nastavi svetlost LCD zaslona. V bistvu bi lahko dali večji upor kot 100R, če želite, da je osvetlitev ozadja LCD slabša. Ali še bolje, naj potenciometer deluje kot spremenljiv serijski upor.

3- JP1 je samo priključek, ki ima lep odtis tiskanega vezja. Nikoli nisem dal pravega priključka, ampak sem spajkal žice. Naredi, kot ti je všeč.

4- U2 so priključki za baterije. Tukaj imam raje lepe vijačne sponke, da dobim trdno povezavo. Lahko bi spajkali žice, vendar ne pozabite vstaviti dovolj spajkanja, da bo povezava dovolj trdna, da prenese vsa tresenja.

5- LCD1 je komponenta LCD v easyEDA. Ima osnovno povezavo z Arduino pro mini. Prepričajte se, da so nožice tukaj enake tistim v programski opremi.

6- RV1 je 10K potenciometer za nastavitev kontrasta LCD. Uporabiti ga je treba le enkrat in to je, ko prvič vklopite LCD.

4. korak: Oblikovanje PCB -ja

Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB

Ko končate shematično zasnovo in razumete, kaj vse pomeni, je zdaj čas, da zanjo izdelate PCB.

V EasyEDA -i pritisnite "Pretvori v tiskano vezje", da ustvarite tiskano vezje v urejevalniku tiskanih vezij. Nato začnite postavljati dele in popravljati kot običajno. Predlagam, da samodejnega usmerjevalnika nikoli ne uporabljate.

Za premikanje od zgoraj navzdol sem uporabil veliko vias, saj je prostora tako malo.

5. korak: Izdelajte tiskano vezje

Zdaj je načrtovanje PCB končano. Vse smo preverili in težav ni bilo. Oblikovalske datoteke (gerberje) moramo poslati podjetju za izdelavo tiskanih vezij po naši izbiri, da lahko to naredi namesto nas.

Moje izbrano podjetje je JLCPCB. Za take projekte in izdelavo prototipov so najboljši in ponujajo le 2 USD cene za celih 10 kosov vašega dizajna!

Zdaj kliknemo (…) in izberemo JLCPCB. Usmerjeni smo na spletno stran JLCPCB, saj sta partnerja z EasyEDA. Zdaj izpolnite vse in oddajte naročilo. Zdaj počakajte, da prispejo PCB -ji.

Omeniti velja, da JLCPCB nima le EasyEDA -e, ampak ima tudi veliko trgovino s komponentami! Prednost tukaj je, da sta naročilo PCB in naročilo komponent poslana skupaj! Da, ni treba čakati, da 2 paketa prispeta ločeno, ampak sta združena v enem paketu. Toplo priporočam uporabo tega.

6. korak: Montaža

Zdaj imamo samo PCB -je z vsem. Čas je, da vse sestavite skupaj.

Najprej moramo spajati elektroniko po shemi. Za ta projekt je to lahka naloga.

Po končanem spajkanju izrežite potrebne luknje v plastičnem ohišju in nato s pištolo za vroče lepilo dobro pritrdite tiskano vezje z drugimi komponentami.

Zdaj bi morali s potenciometrom prilagoditi kontrast LCD -ja, pri izbiri potrebnega upora za svetlost pa sem izbral 100R.

7. korak: Koda

Koda za ta projekt je priložena temu koraku, razlaga pa je naslednja:

// vključite kodo knjižnice: #include #include "DHT.h" // nastavite pin DHT #define DHTPIN 2

Vključite potrebne knjižnice in določite pin 2 Arduino pro mini kot podatkovni pin za senzor. Če teh knjižnic nimate, jih namestite.

// inicializiramo knjižnico s številkami vmesniških zatičev LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Zdaj inicializirajte knjižnico LCD s temi zatiči v skladu s shemo. Uporabite tudi knjižnico DHT in za senzor izberite DHT11, zato ga morate spremeniti, če imate DHT22.

Zadnja vrstica pravi, da imamo tipalo DHT11 in njegov podatkovni pin je na pin "DHTPIN", ki je pin 2, kot smo ga definirali prej.

void setup () {// nastavite število stolpcev in vrstic LCD -ja: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Temperatura in"); lcd.setCursor (0, 1); lcd.print ("senzor vlažnosti"); zamuda (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); zamuda (3000); }

Zdaj je čas za nastavitev! in tukaj se dogaja:

LCD je tipa 16 x 2.

Za zagon vrednosti zaženite ukaz DHT.

Natisnite "Senzor temperature in vlažnosti" v dveh vrsticah.

Zamuda 3 sekunde.

Čist zaslon

Natisnite "THUNDERTRONICS" v prvi vrstici, nato natisnite "Hossam Moghrabi" v drugi vrstici.

Zamuda 3 sekunde.

^To sem naredil kot pozdravni zaslon, ki traja približno 6 sekund, preden se prikažejo vrednosti.

void loop () {// branje vlažnosti int h = dht.readHumidity (); // temperatura branja v c int t = dht.readTemperature (); if (isnan (h) || isnan (t)) {lcd.print ("NAPAKA"); vrnitev; }

Zdaj smo v naši večni zanki, ki se bo ponavljala.

Shranite odčitke vlažnosti znotraj spremenljivke "h" in odčitke temperature znotraj spremenljivke "t".

Nato imamo stavek if. To v bistvu vrne sporočilo o napaki, ko pride do napake. Pustite, ne da bi ga spreminjali.

Zdaj imamo vse vrednote, ki jih potrebujemo.

lcd.setCursor (0, 0); lcd.print ("Temp. ="); lcd.tisk (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Vlažnost ="); lcd.tisk (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); zamuda (2000);

Na koncu te vrednosti prikažemo na LCD zaslonu. Lahko ga spremenite tako, kot želite, ker preprosto tiska vrednosti znotraj spremenljivk "h" in "t". 2 -sekundna zamuda je sicer neobvezna, vendar hitrejšega dejanja ne boste imeli veliko, saj sam senzor ni tako hiter, pa čeprav se fizične vrednosti nikoli ne spremenijo tako hitro. 2 sekundi sta torej zelo hitri za delo!

To je to!

Priporočena: