Indholdsfortegnelse:

Arduino temperatur- og luftfugtighedssensor: 7 trin
Arduino temperatur- og luftfugtighedssensor: 7 trin

Video: Arduino temperatur- og luftfugtighedssensor: 7 trin

Video: Arduino temperatur- og luftfugtighedssensor: 7 trin
Video: Wiser app temperature control 2024, Juli
Anonim

Af ThundertronicsFølg mere af forfatteren:

PIC16F877A Analog til digital konverter (ADC)
PIC16F877A Analog til digital konverter (ADC)
PIC16F877A Analog til digital konverter (ADC)
PIC16F877A Analog til digital konverter (ADC)
LCD -interface med PIC16F877A mikrokontroller
LCD -interface med PIC16F877A mikrokontroller
LCD -interface med PIC16F877A mikrokontroller
LCD -interface med PIC16F877A mikrokontroller
DIY modulær bænk strømforsyning
DIY modulær bænk strømforsyning
DIY modulær bænk strømforsyning
DIY modulær bænk strømforsyning

I denne vejledning vil jeg forklare fremstillingen af en temperatur- og fugtighedsføler ved hjælp af Arduino pro mini board med DHT11 (eller DHT22) sensor.

Trin 1: Se videoen

Det er vigtigt at se videoen først, før du går videre til det næste trin. Videoen forklarer alt og demonstrerer, hvordan det gøres. I dette indlæg vil jeg dog skrive flere tekniske data og detaljer.

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

Trin 2: Nødvendige dele

De nødvendige dele til dette projekt er:

1- Arduino pro mini board (eller enhver Arduino).

2- DHT11 temperatur- og fugtighedsføler (eller DHT22).

3- 16x2 LCD display.

4- Et kabinet efter eget valg, helst det samme som det, der blev brugt i videoen.

5- 10K potentiometer.

6- Skru terminaler.

7- Modstande af forskellige værdier.

8-9v batteri.

mens de nødvendige værktøjer er:

1- hånds boremaskine som en Dremil.

2- forskellige bits til boret, da vi vil bruge udglatning og bits.

3- hjælpende hænder.

plus, de sædvanlige elektronikværktøjer såsom multimeter og så videre.

Trin 3: Skematisk design

Skematisk design
Skematisk design

I dette projekt har jeg valgt at lave et printkort til det i stedet for at tilslutte det selv. Så jeg har brugt EasyEDA online værktøj til jobbet, hvilket var en god oplevelse.

Dette er projektets side på easyEDA -webstedet:

Forklaringen af skematisk er som følger:

1- Jeg har brugt en 6-benet ICSP-adapter til at programmere Arduino pro mini, da den ikke følger med en om bord. det er J2 skematisk.

2- R2 er 100 Ohm, og det indstiller LCD-skærmens lysstyrke. Grundlæggende kan du lægge mere modstand end 100R, hvis du ønsker, at LCD -baggrundsbelysningen skal være svagere. Eller endnu bedre, få et potentiometer til at fungere som en variabel seriemodstand.

3- JP1 er bare et stik, der har et godt PCB-fodaftryk. Jeg lagde aldrig en egentlig terminal, men lodde i stedet ledningerne. Gør som du vil.

4- U2 er batteriets tilslutningsterminaler. Her foretrækker jeg en fin skrueterminal for at få fast forbindelse. Du kan lodde ledningerne, men sørg for at lægge nok loddemetal til at gøre forbindelsen solid nok til at modstå rystelser.

5- LCD1 er LCD-komponenten i easyEDA. Den har den grundlæggende forbindelse til Arduino pro mini. Sørg for, at benene her er identiske med dem i softwaren.

6- RV1 er et 10K potentiometer til indstilling af LCD-kontrast. Det bør kun bruges én gang, og det er første gang du tænder for LCD -skærmen.

Trin 4: PCB -design

PCB Design
PCB Design
PCB Design
PCB Design

Efter at have afsluttet det skematiske design og forstå, hvad alt betyder, er det nu tid til at lave et printkort til det.

Du skal trykke på "Konverter til PCB" i EasyEDA for at oprette printkortet i PCB -editoren. Start derefter med at placere dele og foretage routing som normalt. Jeg foreslår dog aldrig at bruge auto-routeren.

Jeg har brugt masser af vias til at flytte fra øverste til nederste lag, da pladsen er så lille.

Trin 5: Fremstil printet

Nu er PCB -designet færdigt. Vi kontrollerede alt, og der blev ikke fundet noget problem. Vi skal sende designfilerne (gerberne) til PCB -fabrikationsfirmaet efter eget valg, så det kan gøre det for os.

Mit foretrukne firma er JLCPCB. De er de bedste til sådanne projekter og prototyper, og de tilbyder kun 2 $ pris for hele 10 stykker af dit design!

Så nu klikker vi på (….) og vælger JLCPCB. Vi henvises til JLCPCB -webstedet, da de er partnere med EasyEDA. Udfyld nu alt og placer ordren. Vent nu, indtil PCB'er ankommer.

Det er værd at nævne, at JLCPCB ikke kun har EasyEDA tilknyttet dem, men de har også en stor komponentbutik! Fordelen her er at få både PCB -ordren og komponentordren sendt sammen! Ja, du behøver ikke vente på, at 2 pakker ankommer separat, men i stedet kommer de kombineret i en pakke. Jeg anbefaler stærkt at bruge dette.

Trin 6: Montering

Vi har PCB'erne alene med alt nu. Det er tid til at samle alt sammen.

Først skal vi lodde elektronikken i henhold til skematisk. Det er en let opgave for dette projekt.

Efter endt lodning skal du nu skære de nødvendige huller i plastikhuset og derefter fastgøre printkortet med andre komponenter godt inde med en varm limpistol.

Du skal nu bruge potentiometeret til at justere LCD -kontrasten, mens du vælger den nødvendige modstandsventil til lysstyrken, har jeg valgt 100R.

Trin 7: Kode

Kode til dette projekt er vedhæftet dette trin, og forklaringen er som følger:

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

Inkluder nødvendige biblioteker og definer pin 2 på Arduino pro mini som datapinden til sensoren. Sørg for at installere disse biblioteker, hvis du ikke har dem.

// initialiser biblioteket med numrene på grænsefladestifterne LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Initialiser nu LCD -biblioteket med disse ben ifølge skematisk selv. Brug også DHT -bibliotek og vælg DHT11 som sensoren, så hvis du har DHT22, skal du ændre det.

Sidste linje siger, at vi har DHT11 -sensor, og dens datapind er ved pin "DHTPIN", som er pin 2, som vi definerede den tidligere.

void setup () {// konfigurer LCD's antal kolonner og rækker: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Temperatur og"); lcd.setCursor (0, 1); lcd.print ("fugtighedsføler"); forsinkelse (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); forsinkelse (3000); }

Nu er det opsætningstid! og her er hvad der foregår:

LCD er 16 x 2 type.

Start DHT -kommando for at få værdier.

Udskriv "Temperatur- og fugtighedsføler" på de 2 linjer.

Forsink 3 sekunder.

Tydeligt display

Udskriv "THUNDERTRONICS" på første linje og tryk derefter "Hossam Moghrabi" på 2. linje.

Forsink 3 sekunder.

^Jeg har gjort dette som en velkomstskærm, der varer omkring 6 sekunder eller deromkring, før værdier vises.

void loop () {// læs fugtighed int h = dht.readHumidity (); // læs temperaturen i c int t = dht.readTemperature (); hvis (isnan (h) || isnan (t)) {lcd.print ("FEJL"); Vend tilbage; }

Nu er vi inde i vores evige sløjfe, som vil blive ved med at gentage sig selv.

Gem luftfugtighedsmålinger inde i "h" -variablen og temperaturaflæsninger inde i "t" -variablen.

Dernæst har vi en if -erklæring. Dette returnerer grundlæggende en fejlmeddelelse, når der er en fejl. Forlad det uden at ændre det.

Nu har vi alle de værdier, vi har brug for.

lcd.setCursor (0, 0); lcd.print ("Temp. ="); lcd.print (t); lcd.print (""); lcd.print ((tegn) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Fugtighed ="); lcd.print (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); forsinkelse (2000);

Endelig viser vi disse værdier på LCD -display. Du kan ændre det, som du vil, fordi det simpelthen udskriver værdier inde i "h" og "t" variabler. At sætte en forsinkelse på 2 sekunder er lidt valgfrit, men du får ikke meget ud af at gøre det hurtigere, da selve sensoren ikke er så hurtig, og selvom den er det, ændrer de fysiske værdier sig aldrig så hurtigt. Så 2 sekunder er meget meget hurtige til jobbet!

Det er det!

Anbefalede: