INHOUDSOPGAWE:

Arduino temperatuur- en humiditeitsensor: 7 stappe
Arduino temperatuur- en humiditeitsensor: 7 stappe

Video: Arduino temperatuur- en humiditeitsensor: 7 stappe

Video: Arduino temperatuur- en humiditeitsensor: 7 stappe
Video: Урок 25 Блок датчика температуры и влажности SHT21 на модуле GY 21 2024, November
Anonim

Deur Thundertronics Volg meer deur die skrywer:

PIC16F877A Analoog na digitale omskakelaar (ADC)
PIC16F877A Analoog na digitale omskakelaar (ADC)
PIC16F877A Analoog na digitale omskakelaar (ADC)
PIC16F877A Analoog na digitale omskakelaar (ADC)
LCD -koppelvlak met PIC16F877A -mikrobeheerder
LCD -koppelvlak met PIC16F877A -mikrobeheerder
LCD -koppelvlak met PIC16F877A -mikrobeheerder
LCD -koppelvlak met PIC16F877A -mikrobeheerder
DIY modulêre bankvoeding
DIY modulêre bankvoeding
DIY modulêre bankvoeding
DIY modulêre bankvoeding

In hierdie handleiding gaan ek verduidelik hoe 'n temperatuur- en humiditeitsensor gemaak word met behulp van Arduino pro mini -bord met DHT11 (of DHT22) sensor.

Stap 1: Kyk na die video

Dit is belangrik om eers die video te sien voordat u na die volgende stap gaan. Die video verduidelik alles en demonstreer hoe dit gedoen word. In hierdie pos skryf ek egter meer tegniese gegewens en besonderhede.

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

Stap 2: Benodigde onderdele

Die dele wat benodig word vir hierdie projek is:

1- Arduino pro mini bord (of enige Arduino).

2- DHT11 temperatuur- en humiditeitsensor (of DHT22).

3- 16x2 LCD-skerm.

4- 'n Omhulsel van u keuse, verkieslik dieselfde as die in die video gebruik word.

5- 10K potensiometer.

6- Skroef terminale.

7- Weerstande van verskillende waardes.

8-9v battery.

terwyl die nodige gereedskap die volgende is:

1-hand boor soos 'n Dremil.

2- verskillende stukkies vir die boor, aangesien ons gladde bisse en snystukke sal gebruik.

3- helpende hande.

plus, die gewone elektroniese gereedskap soos multimeter ensovoorts.

Stap 3: Skematiese ontwerp

Skematiese ontwerp
Skematiese ontwerp

In hierdie projek het ek gekies om 'n PCB daarvoor te maak in plaas daarvan om dit self te bedraad. Ek het dus die EasyEDA -hulpmiddel vir die werk gebruik, wat 'n aangename ervaring was.

Dit is die projek se bladsy op die easyEDA -webwerf:

Die verduideliking van die skematiese is soos volg:

1- Ek het 'n 6-pins ICSP-adapter gebruik om die Arduino pro mini te programmeer, aangesien dit nie een aan boord het nie. dit is J2 op skematiese.

2- R2 is 100 Ohm en dit stel die helderheid van die LCD in. Eintlik kan u meer weerstand bied as 100R as u wil hê dat die LCD -agtergrond dowwer moet wees. Of beter nog, kry 'n potensiometer om op te tree as 'n veranderlike reeksweerstand.

3- JP1 is slegs 'n aansluiting met 'n goeie PCB-voetafdruk. Ek het nooit 'n werklike terminaal geplaas nie, maar eerder die drade gesoldeer. Doen soos jy wil.

4- U2 is die aansluitingsklemme vir die battery. Hier verkies ek 'n goeie skroefaansluiting om 'n stewige verbinding te kry. U kan die drade soldeer, maar plaas genoeg soldeer om die verbinding stewig genoeg te maak om enige skudding te weerstaan.

5- LCD1 is die LCD-komponent in easyEDA. Dit het die basiese verbinding met Arduino pro mini. Maak seker dat penne hier identies is aan dié in sagteware.

6- RV1 is 'n 10K potensiometer om LCD-kontras in te stel. Dit moet slegs een keer gebruik word, en dit is die eerste keer dat u die LCD aanskakel.

Stap 4: PCB -ontwerp

PCB ontwerp
PCB ontwerp
PCB ontwerp
PCB ontwerp

Nadat u die skematiese ontwerp voltooi het en verstaan wat alles beteken, is dit nou tyd om 'n PCB daarvoor te maak.

U moet in EasyEDA op "Skakel na PCB" druk om die PCB in PCB -redakteur te skep. Begin dan om onderdele te plaas en roetine te doen soos gewoonlik. Ek stel voor dat u nooit die outomatiese router gebruik nie.

Ek het baie vias gebruik om van bo na onder te beweeg, aangesien die ruimte so min is.

Stap 5: Vervaardig die PCB

Nou is die PCB -ontwerp klaar. Ons het alles nagegaan en geen probleem gevind nie. Ons moet die ontwerp lêers (die gerbers) na die PCB vervaardigingsonderneming van ons keuse stuur, sodat dit dit vir ons kan doen.

My geselekteerde onderneming is JLCPCB. Hulle is die beste vir sulke projekte en prototipes en bied slegs 2 $ prys vir 'n hele 10 stukke van u ontwerp!

Dus, nou klik ons op (….) en kies JLCPCB. Ons word na die JLCPCB -webwerf verwys, aangesien hulle vennote is met EasyEDA. Vul nou alles in en plaas die bestelling. Wag nou totdat PCB's kom.

Dit is opmerklik dat JLCPCB nie net EasyEDA met hulle in verband bring nie, maar dat hulle ook 'n groot komponentwinkel het! Die voordeel hiervan is dat die bestelling van die PCB sowel as die bestelling van die komponente saam gestuur word! Ja, u hoef nie te wag totdat 2 pakkette apart kom nie, maar in plaas daarvan word dit saamgevoeg in een pakket. Ek beveel dit sterk aan om dit te gebruik.

Stap 6: Montering

Ons het die PCB's alleen met alles nou. Dit is tyd om alles bymekaar te maak.

Eerstens moet ons die elektronika volgens skema soldeer. Dit is 'n maklike taak vir hierdie projek.

Na afloop van die soldeerwerk, sny nou die nodige gate in die plastiekomhulsel en maak die printplaat met ander komponente goed binne met 'n warm lijmpistool.

U moet nou die potensiometer gebruik om die kontras van die LCD aan te pas, terwyl ek die vereiste weerstandsklep vir die helderheid kies, het ek 100R gekies.

Stap 7: Kode

Kode vir hierdie projek word by hierdie stap aangeheg, en die verduideliking is soos volg:

// sluit die biblioteekkode in: #include #include "DHT.h" // set the DHT Pin #define DHTPIN 2

Sluit die nodige biblioteke in en definieer pen 2 van Arduino pro mini as die data -pen vir die sensor. Maak seker dat u hierdie biblioteke installeer as u dit nie het nie.

// initialiseer die biblioteek met die nommers van die koppelvlakpenne LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Initialiseer nou die LCD -biblioteek met hierdie penne volgens die skematiese self. Gebruik ook die DHT -biblioteek en kies DHT11 as die sensor om te gebruik, so as u DHT22 het, moet u dit verander.

Laaste reël sê dat ons 'n DHT11 -sensor het, en die datapennetjie is by pin "DHTPIN", wat pin 2 is, soos ons dit voorheen gedefinieer het.

ongeldige opstelling () {// stel die aantal kolomme en rye van die LCD op: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Temperatuur en"); lcd.setCursor (0, 1); lcd.print ("humiditeitsensor"); vertraging (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); vertraging (3000); }

Nou is dit opstel tyd! en hier is wat aangaan:

LCD is 16 by 2 tipe.

Begin die DHT -opdrag om waardes te kry.

Druk "Temperatuur- en humiditeitsensor" op die 2 reëls.

Vertraag 3 sekondes.

Duidelike vertoning

Druk "THUNDERTRONICS" op die eerste reël en druk dan "Hossam Moghrabi" op die tweede reël.

Vertraag 3 sekondes.

^Ek het dit gedoen as 'n welkome skerm wat ongeveer 6 sekondes duur voordat waardes vertoon word.

leemte -lus () {// lees humiditeit int h = dht.readHumidity (); // lees temperatuur in c int t = dht.readTemperature (); as (isnan (h) || isnan (t)) {lcd.print ("FOUT"); terugkeer; }

Nou is ons binne ons ewige lus, wat homself steeds sal herhaal.

Stoor die humiditeitsmetings binne die "h" -veranderlike en die temperatuurmetings binne die "t" -veranderlike.

Vervolgens het ons 'n if -verklaring. Dit gee basies 'n foutboodskap terug as daar 'n fout is. Los dit sonder om dit te verander.

Nou het ons al die waardes wat ons nodig het.

lcd.setCursor (0, 0); lcd.print ("Temp."); lcd.print (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Humiditeit ="); lcd.print (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); vertraging (2000);

Laastens vertoon ons hierdie waardes op die LCD -skerm. U kan dit verander soos u wil, omdat dit eenvoudig waardes binne die "h" en "t" veranderlikes druk. Dit is nogal opsioneel om 'n vertraging van 2 sekondes in te stel, maar u sal nie veel baat daarby om dit vinniger te doen nie, aangesien die sensor self nie so vinnig is nie, en selfs al is dit steeds so, verander die fisiese waardes nooit so vinnig nie. Dus is 2 sekondes baie vinnig vir die werk!

Dit is dit!

Aanbeveel: