Innholdsfortegnelse:

Arduino temperatur- og fuktighetssensor: 7 trinn
Arduino temperatur- og fuktighetssensor: 7 trinn

Video: Arduino temperatur- og fuktighetssensor: 7 trinn

Video: Arduino temperatur- og fuktighetssensor: 7 trinn
Video: Терморегулятор c Удаленным Управлением 📈 на ESP8266. Часть 1 2024, Juli
Anonim

Av ThundertronicsFølg Mer av forfatteren:

PIC16F877A Analog til digital omformer (ADC)
PIC16F877A Analog til digital omformer (ADC)
PIC16F877A Analog til digital omformer (ADC)
PIC16F877A Analog til digital omformer (ADC)
LCD -grensesnitt med PIC16F877A mikrokontroller
LCD -grensesnitt med PIC16F877A mikrokontroller
LCD -grensesnitt med PIC16F877A mikrokontroller
LCD -grensesnitt med PIC16F877A mikrokontroller
DIY modulær benkstrømforsyning
DIY modulær benkstrømforsyning
DIY modulær benkstrømforsyning
DIY modulær benkstrømforsyning

I denne opplæringen skal jeg forklare hvordan man lager en temperatur- og fuktighetssensor ved hjelp av Arduino pro mini board med DHT11 (eller DHT22) sensor.

Trinn 1: Se videoen

Det er viktig å se videoen før du går videre til neste trinn. Videoen forklarer alt og demonstrerer hvordan det gjøres. Imidlertid vil jeg i dette innlegget skrive flere tekniske data og detaljer.

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

Trinn 2: Nødvendige deler

Delene som trengs for dette prosjektet er:

1- Arduino pro mini board (eller hvilken som helst Arduino).

2- DHT11 temperatur- og fuktighetssensor (eller DHT22).

3- 16x2 LCD-skjerm.

4- En valgfri kabinett, helst den samme som den som ble brukt i videoen.

5- 10K potensiometer.

6- Skru terminaler.

7- Motstander mot forskjellige verdier.

8-9V batteri.

mens verktøyene som trengs er:

1-hånds drill som en Dremil.

2- forskjellige biter for boret, siden vi bruker glattebiter og skjærebiter.

3- hjelpende hender.

pluss de vanlige elektronikkverktøyene som multimeter og så videre.

Trinn 3: Skjematisk design

Skjematisk design
Skjematisk design

I dette prosjektet har jeg valgt å lage et PCB for det i stedet for å koble det til selv. Så jeg har brukt EasyEDA online verktøy for jobben som var en fin opplevelse.

Dette er prosjektets side på easyEDA nettsted:

Forklaringen av skjematisk er som følger:

1- Jeg har brukt en 6-pinners ICSP-adapter for å programmere Arduino pro mini siden den ikke følger med en om bord. det er J2 på skjematisk.

2- R2 er 100 ohm og det angir lysstyrken på LCD-skjermen. I utgangspunktet kan du sette mer motstand enn 100R hvis du vil at LCD -bakgrunnsbelysningen skal være svakere. Eller enda bedre, få et potensiometer til å fungere som en variabel seriemotstand.

3- JP1 er bare en kontakt som har et fint PCB-fotavtrykk. Jeg satte aldri en egentlig terminal, men loddet i stedet ledningene. Gjør som du vil.

4- U2 er batteritilkoblingsterminalene. Her foretrekker jeg fine skrueterminaler for å få en fast tilkobling. Du kan lodde ledningene, men sørg for å sette nok loddetinn til å gjøre tilkoblingen solid nok til å tåle rystelser.

5- LCD1 er LCD-komponenten i easyEDA. Den har den grunnleggende tilkoblingen til Arduino pro mini. Pass på at pinnene her er identiske med de i programvaren.

6- RV1 er et 10K potensiometer for å stille inn LCD-kontrast. Den skal bare brukes en gang, og det er når du slår på LCD -skjermen første gang.

Trinn 4: PCB -design

PCB -design
PCB -design
PCB -design
PCB -design

Etter å ha fullført den skjematiske designen og forstått hva alt betyr, er det nå på tide å lage en PCB for den.

Du bør trykke "Konverter til PCB" i EasyEDA for å lage PCB i PCB -editor. Deretter begynner du å plassere deler og gjør ruting som vanlig. Jeg foreslår at du aldri bruker auto-ruteren.

Jeg har brukt mange vias for å flytte fra topp til bunn siden siden plassen er så liten.

Trinn 5: Lag PCB

Nå er PCB -designen ferdig. Vi sjekket alt og fant ikke noe problem. Vi må sende designfilene (gerberne) til PCB -fabrikatet etter eget valg, slik at det kan gjøre det for oss.

Mitt foretrukne selskap er JLCPCB. De er de beste for slike prosjekter og prototyper, og de tilbyr bare 2 $ pris for hele 10 deler av designet ditt!

Så nå klikker vi (….) og velger JLCPCB. Vi blir henvist til JLCPCB nettsted siden de er partnere med EasyEDA. Fyll ut alt og legg inn bestillingen. Nå er det bare å vente til PCB kommer.

Det er verdt å nevne at JLCPCB ikke bare har EasyEDA knyttet til seg, men de har også en stor komponentbutikk! Fordelen her er å få både PCB -bestillingen og komponentordren sendt sammen! Ja, du trenger ikke vente på at to pakker kommer separat, men i stedet kommer de kombinert i en pakke. Jeg anbefaler på det sterkeste å bruke dette.

Trinn 6: Montering

Vi har PCB alene med alt nå. Det er på tide å sette sammen alt.

Først må vi lodde elektronikken i henhold til skjematisk. Det er en enkel oppgave for dette prosjektet.

Etter lodding, kutt nå de nødvendige hullene i plastkapslingen, fest deretter kretskortet med andre komponenter godt inne med en varm limpistol.

Du bør nå bruke potensiometeret til å justere kontrasten på LCD -skjermen, mens du velger den nødvendige motstandsventilen for lysstyrken, har jeg valgt 100R.

Trinn 7: Kode

Kode for dette prosjektet er vedlagt dette trinnet, og forklaringen er som følger:

// inkludere bibliotekskoden: #include #include "DHT.h" // sett DHT Pin #define DHTPIN 2

Inkluder nødvendige biblioteker og definer pin 2 av Arduino pro mini som datapinnen for sensoren. Sørg for å installere disse bibliotekene hvis du ikke har dem.

// initialiser biblioteket med tallene til grensesnittpinnene LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Initialiser nå LCD -biblioteket med disse pinnene i henhold til skjematisk selv. Bruk også DHT -biblioteket og velg DHT11 som sensoren du skal bruke, så hvis du har DHT22, bør du endre det.

Siste linje sier at vi har DHT11 -sensor og datapinnen er ved pin "DHTPIN", som er pin 2 slik vi definerte den tidligere.

void setup () {// konfigurer LCD -antallet kolonner og rader: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Temperatur og"); lcd.setCursor (0, 1); lcd.print ("fuktighetssensor"); forsinkelse (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); forsinkelse (3000); }

Nå er det oppsettingstid! og her er hva som skjer:

LCD -skjermen er 16 x 2.

Start DHT -kommandoen for å få verdier.

Skriv ut "Temperatur- og fuktighetssensor" på de 2 linjene.

Forsink 3 sekunder.

Tydelig skjerm

Skriv ut "THUNDERTRONICS" på første linje, og skriv deretter ut "Hossam Moghrabi" på 2. linje.

Forsink 3 sekunder.

^Jeg har gjort dette som en velkomstskjerm som varer omtrent 6 sekunder før verdier vises.

void loop () {// les fuktighet int h = dht.readHumidity (); // les temperatur i c int t = dht.readTemperature (); if (isnan (h) || isnan (t)) {lcd.print ("FEIL"); komme tilbake; }

Nå er vi inne i vår evige løkke som vil fortsette å gjenta seg selv.

Lagre fuktighetsavlesninger inne i "h" -variabelen og temperaturavlesningene inne i "t" -variabelen.

Deretter har vi en if -setning. Dette returnerer i utgangspunktet en feilmelding når det er en feil. La den stå uten å endre den.

Nå har vi alle verdiene vi trenger.

lcd.setCursor (0, 0); lcd.print ("Temp. ="); lcd.print (t); lcd.print (""); lcd.print ((røyke) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Fuktighet ="); lcd.print (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); forsinkelse (2000);

Til slutt viser vi disse verdiene på LCD -skjermen. Du kan endre det slik du vil fordi det bare er å skrive ut verdier inne i "h" og "t" variabler. Å sette en forsinkelse på 2 sekunder er litt valgfritt, men du vil ikke tjene mye på å gjøre det raskere siden sensoren i seg selv ikke er så rask, og selv om den er det, endres de fysiske verdiene aldri så fort. Så 2 sekunder er veldig veldig raskt for jobben!

Det er det!

Anbefalt: