Sadržaj:

Arduino senzor temperature i vlažnosti: 7 koraka
Arduino senzor temperature i vlažnosti: 7 koraka

Video: Arduino senzor temperature i vlažnosti: 7 koraka

Video: Arduino senzor temperature i vlažnosti: 7 koraka
Video: КАК ИЗМЕРИТЬ ТЕМПЕРАТУРУ И ВЛАЖНОСТЬ. ДАТЧИКИ DHT11 И DHT22 [Уроки Ардуино #13] 2024, Juli
Anonim

Autor ThundertronicsFollow Više od autora:

PIC16F877A Analogno -digitalni pretvarač (ADC)
PIC16F877A Analogno -digitalni pretvarač (ADC)
PIC16F877A Analogno -digitalni pretvarač (ADC)
PIC16F877A Analogno -digitalni pretvarač (ADC)
LCD interfejs sa mikrokontrolerom PIC16F877A
LCD interfejs sa mikrokontrolerom PIC16F877A
LCD interfejs sa mikrokontrolerom PIC16F877A
LCD interfejs sa mikrokontrolerom PIC16F877A
DIY modularno napajanje za klupu
DIY modularno napajanje za klupu
DIY modularno napajanje za klupu
DIY modularno napajanje za klupu

U ovom vodiču ću objasniti izradu senzora temperature i vlažnosti zraka pomoću Arduino pro mini ploče s DHT11 (ili DHT22) senzorom.

Korak 1: Pogledajte video

Prije prelaska na sljedeći korak važno je prvo pogledati videozapis. Video objašnjava sve i pokazuje kako se to radi. Međutim, u ovom postu ću napisati više tehničkih podataka i detalja.

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

Korak 2: Potrebni dijelovi

Dijelovi potrebni za ovaj projekt su:

1- Arduino pro mini ploča (ili bilo koji Arduino).

2- DHT11 senzor temperature i vlažnosti (ili DHT22).

3- 16x2 LCD ekran.

4- Kućište po vašem izboru, po mogućnosti isto koje se koristi u videu.

5-10K potenciometar.

6- Vijčane stezaljke.

7- Otpornici različitih vrijednosti.

Baterija 8- 9v.

dok su potrebni alati:

1- ručna bušilica poput Dremila.

2- različita nastavka za bušilicu, jer ćemo koristiti zaglađivanje i rezanje.

3- pomažu ruke.

plus, uobičajeni elektronički alati poput multimetra i tako dalje.

Korak 3: Šematski dizajn

Šematski dizajn
Šematski dizajn

U ovom projektu sam odabrao da napravim PCB za njega umjesto da ga sam ožičim. Zato sam za posao koristio EasyEDA mrežni alat koji je bio lijepo iskustvo.

Ovo je stranica projekta na web stranici easyEDA:

Objašnjenje sheme je sljedeće:

1- Koristio sam 6-pinski ICSP adapter za programiranje Arduino pro mini jer ne dolazi s jednim na ploči. to je J2 na shematski.

2- R2 je 100 ohma i postavlja svjetlinu LCD-a. U osnovi, mogli biste staviti veći otpor od 100R ako želite da pozadinsko osvjetljenje LCD -a bude slabije. Ili još bolje, navedite potenciometar da djeluje kao promjenjivi serijski otpor.

3- JP1 je samo konektor koji ima lijep otisak na PCB-u. Nikada nisam stavio pravi terminal, već sam lemio žice. Uradi kako hoćeš.

4- U2 su priključci za povezivanje baterije. Ovdje više volim lijepe vijčane stezaljke da biste dobili čvrstu vezu. Mogli biste lemiti žice, ali svakako stavite dovoljno lema da veza bude dovoljno čvrsta da izdrži bilo kakvo podrhtavanje.

5- LCD1 je LCD komponenta u easyEDA-i. Ima osnovnu vezu s Arduino pro mini. Budite sigurni da su pinovi ovdje identični onima u softveru.

6- RV1 je 10K potenciometar za postavljanje LCD kontrasta. Trebalo bi ga koristiti samo jednom i to je kada prvi put uključite LCD.

Korak 4: Dizajn PCB -a

PCB Design
PCB Design
PCB Design
PCB Design

Nakon što ste dovršili shematski dizajn i razumjeli što sve znači, sada je vrijeme za izradu PCB -a za njega.

Trebali biste pritisnuti "Pretvori u PCB" u EasyEDA -i da biste stvorili PCB u uređivaču PCB -a. Zatim počnite postavljati dijelove i usmjeravati kao i obično. Ipak, predlažem da nikada ne koristite auto-usmjerivač.

Koristio sam mnogo vija za kretanje od vrha do dna, jer je prostora tako malo.

Korak 5: Napravite PCB

Sada je dizajn PCB -a gotov. Sve smo provjerili i problem nije pronađen. Moramo poslati datoteke dizajna (gerberi) kompaniji za proizvodnju PCB -a po našem izboru kako bi to mogla učiniti umjesto nas.

Moje odabrano preduzeće je JLCPCB. Oni su najbolji za takve projekte i izradu prototipova i nude samo 2 USD cijene za čitavih 10 komada vašeg dizajna!

Dakle, sada kliknemo (…) i odaberemo JLCPCB. Upućeni smo na web stranicu JLCPCB jer su oni partneri s EasyEDA -om. Sada popunite sve i pošaljite narudžbu. Sada samo pričekajte dok PCB -i ne stignu.

Vrijedno je spomenuti da JLCPCB ne samo da je EasyEDA povezan s njima, već imaju i veliku trgovinu komponenti! Prednost je u tome što se narudžba PCB -a i narudžba komponenti isporučuju zajedno! Da, ne morate čekati da 2 paketa stignu zasebno, već se oni kombiniraju u jednom paketu. Toplo preporučujem korištenje ovoga.

Korak 6: Montaža

Sada imamo samo PCB -e sa svime. Vrijeme je da sve spojite.

Prvo moramo lemiti elektroniku prema shemi. Ovo je lak zadatak za ovaj projekat.

Nakon završetka lemljenja, sada izrežite potrebne rupe u plastičnom kućištu, a zatim učvrstite PCB s drugim komponentama iznutra pomoću pištolja za ljepilo.

Sada biste trebali koristiti potenciometar za podešavanje kontrasta LCD -a, a pri odabiru potrebnog otporničkog ventila za svjetlinu odabrao sam 100R.

Korak 7: Kodirajte

Kôd za ovaj projekt priložen je uz ovaj korak, a objašnjenje je sljedeće:

// uključuje kôd biblioteke: #include #include "DHT.h" // postavlja DHT pin #define DHTPIN 2

Uključite potrebne biblioteke i definirajte pin 2 Arduino pro mini kao pin podataka za senzor. Obavezno instalirajte ove biblioteke ako ih nemate.

// inicijalizira biblioteku brojevima pinova sučelja LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Sada inicijalizirajte LCD biblioteku s ovim pinovima prema samoj shemi. Također koristite DHT biblioteku i odaberite DHT11 kao senzor za upotrebu, pa ako imate DHT22, trebali biste ga promijeniti.

Zadnji red kaže da imamo DHT11 senzor i njegov pin podataka je na pin -u "DHTPIN" koji je pin 2 kako smo ga prethodno definirali.

void setup () {// postavlja broj LCD stupaca i redova: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Temperatura i"); lcd.setCursor (0, 1); lcd.print ("senzor vlažnosti"); kašnjenje (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); kašnjenje (3000); }

Sada je vreme za podešavanje! a evo šta se dešava:

LCD je tip 16 sa 2.

Pokrenite DHT naredbu da biste dobili vrijednosti.

Odštampajte "Senzor temperature i vlažnosti" na 2 reda.

Odgodite 3 sekunde.

Jasan prikaz

Odštampajte "THUNDERTRONICS" u prvom redu, a zatim odštampajte "Hossam Moghrabi" u drugom redu.

Odgodite 3 sekunde.

^Ovo sam učinio kao ekran dobrodošlice koji traje oko 6 sekundi prije prikazivanja vrijednosti.

void loop () {// čitanje vlažnosti int h = dht.readHumidity (); // očitavanje temperature u c int t = dht.readTemperature (); if (isnan (h) || isnan (t)) {lcd.print ("ERROR"); return; }

Sada smo unutar naše vječne petlje koja će se stalno ponavljati.

Očuvajte očitanja vlažnosti unutar "h" varijable, a očitanja temperature unutar "t" varijable.

Zatim imamo naredbu if. Ovo u osnovi vraća poruku o grešci kada dođe do greške. Ostavite ga bez promjene.

Sada imamo sve vrijednosti koje su nam potrebne.

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 ("Vlažnost ="); lcd.print (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); kašnjenje (2000);

Konačno, ove vrijednosti prikazujemo na LCD ekranu. Možete ga promijeniti kako želite jer jednostavno ispisuje vrijednosti unutar "h" i "t" varijabli. Odlaganje od 2 sekunde je nekako neobavezno, ali nećete imati mnogo koristi ako to učinite brže jer sam senzor nije tako brz, pa čak i ako jest, ipak se fizičke vrijednosti nikada ne mijenjaju tako brzo. Tako su 2 sekunde vrlo brze za posao!

To je to!

Preporučuje se: