Talaan ng mga Nilalaman:

Temperatura ng Arduino at Sensor ng Humidity: 7 Hakbang
Temperatura ng Arduino at Sensor ng Humidity: 7 Hakbang

Video: Temperatura ng Arduino at Sensor ng Humidity: 7 Hakbang

Video: Temperatura ng Arduino at Sensor ng Humidity: 7 Hakbang
Video: LM75 Temperature Sensor | Outseal Arduino PLC 2024, Hulyo
Anonim

Sundin ang Higit Pa ng may-akda:

PIC16F877A Analog sa Digital Converter (ADC)
PIC16F877A Analog sa Digital Converter (ADC)
PIC16F877A Analog sa Digital Converter (ADC)
PIC16F877A Analog sa Digital Converter (ADC)
LCD Interface Sa PIC16F877A Microcontroller
LCD Interface Sa PIC16F877A Microcontroller
LCD Interface Sa PIC16F877A Microcontroller
LCD Interface Sa PIC16F877A Microcontroller
DIY Modular Bench Power Supply
DIY Modular Bench Power Supply
DIY Modular Bench Power Supply
DIY Modular Bench Power Supply

Sa tutorial na ito, ipapaliwanag ko ang paggawa ng isang sensor ng temperatura at halumigmig gamit ang Arduino pro mini board na may DHT11 (o DHT22) sensor.

Hakbang 1: Panoorin ang Video

Mahalagang makita muna ang video bago lumipat sa susunod na hakbang. Ipinapaliwanag ng video ang lahat at ipinapakita kung paano ito ginagawa. Gayunpaman, sa post na ito, magsusulat ako ng higit pang teknikal na data at mga detalye.

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

Hakbang 2: Mga Kinakailangan na Bahagi

Ang mga bahaging kinakailangan para sa proyektong ito ay:

1- Arduino pro mini board (o anumang Arduino).

2- DHT11 temperatura at sensor ng kahalumigmigan (o DHT22).

3- 16x2 LCD display.

4- Isang enclosure na iyong pinili, mas mabuti na pareho sa ginagamit sa video.

5- 10K potensyomiter.

6- Mga terminal ng tornilyo.

7- Mga lumalaban ng iba't ibang mga halaga.

8- 9v na baterya.

habang ang mga tool na kinakailangan ay:

1- drill ng kamay tulad ng isang Dremil.

2- magkakaibang mga piraso para sa drill, dahil gagamitin namin ang mga smoothing bits at cutting bits.

3- mga kamay na tumutulong.

plus, ang karaniwang mga kagamitang electronics tulad ng multimeter at iba pa.

Hakbang 3: Disenyo ng Skema

Disenyo ng Skematika
Disenyo ng Skematika

Sa proyektong ito, pinili ko na gumawa ng isang PCB para dito sa halip na kable ko ito mismo. Kaya't ginamit ko ang EasyEDA online na tool para sa trabaho na isang magandang karanasan.

Ito ang pahina ng proyekto sa easyEDA website:

Ang paliwanag ng eskematiko ay ang mga sumusunod:

1- Gumamit ako ng isang 6-pin ICSP adapter upang i-program ang Arduino pro mini dahil hindi ito kasama ng isa sa board. ito ay J2 sa eskematiko.

Ang 2- R2 ay 100 Ohms at itinatakda nito ang ningning ng LCD. Talaga, maaari kang maglagay ng higit na paglaban kaysa sa 100R kung nais mong maging dimmer ang LCD backlight. O mas mabuti pa, kumuha ng potensyomiter upang kumilos bilang isang variable na paglaban sa serye.

3- Ang JP1 ay isang konektor lamang na mayroong magandang PCB footprint. Hindi ako naglagay ng isang tunay na terminal ngunit sa halip ay naghinang ng mga wire. Gawin mo kung ano ang gusto mo.

4- U2 ang mga terminal ng koneksyon ng baterya. Dito, mas gusto ko ang isang magandang terminal ng turnilyo upang makakuha ng matatag na koneksyon. Maaari kang maghinang ng mga wire, ngunit tiyaking maglagay ng sapat na panghinang upang gawin ang koneksyon na sapat na matatag upang mapaglabanan ang anumang mga alog.

Ang 5- LCD1 ay ang bahagi ng LCD sa easyEDA. Mayroon itong pangunahing koneksyon sa Arduino pro mini. Tiyaking ang mga pin dito ay magkapareho sa mga nasa software.

Ang 6- RV1 ay isang 10K potentiometer upang maitakda ang LCD na kaibahan. Dapat itong gamitin lamang nang isang beses at ito ay noong una mong pinalakas ang LCD.

Hakbang 4: Disenyo ng PCB

Disenyo ng PCB
Disenyo ng PCB
Disenyo ng PCB
Disenyo ng PCB

Matapos matapos ang disenyo ng eskematiko at maunawaan kung ano ang ibig sabihin ng lahat, oras na ngayon para sa paggawa ng isang PCB para dito.

Dapat mong pindutin ang "I-convert sa PCB" sa EasyEDA upang likhain ang PCB sa PCB editor. Pagkatapos, simulang maglagay ng mga bahagi at gawin ang pagruruta tulad ng dati. Iminumungkahi ko na huwag gamitin ang auto-router bagaman.

Gumamit ako ng maraming mga vias upang ilipat mula sa itaas hanggang sa ilalim na layer dahil ang puwang ay napakaliit.

Hakbang 5: Gawin ang PCB

Ngayon, tapos na ang disenyo ng PCB. Sinuri namin ang lahat at walang nahanap na problema. Kailangan naming ipadala ang mga file ng disenyo (ang mga gerbers) sa kumpanya ng katha na PCB na aming pinili upang magawa niya ito para sa amin.

Ang aking piniling kumpanya ay ang JLCPCB. Ang mga ito ang pinakamahusay para sa mga nasabing proyekto at prototyping at nag-aalok lamang sila ng 2 $ ng presyo para sa isang buong 10 piraso ng iyong disenyo!

Kaya, ngayon nag-click kami (….) At pipiliin ang JLCPCB. Nakaturo kami sa website ng JLCPCB dahil kasosyo sila ng EasyEDA. Ngayon punan ang lahat at ilagay ang order. Maghintay ka lang hanggang sa dumating ang mga PCB.

Ito ay nagkakahalaga ng pagbanggit na ang JLCPCB ay hindi lamang may EasyEDA na nauugnay sa kanila, ngunit mayroon din silang isang malaking tindahan ng mga sangkap din! Ang benepisyo dito ay ang pagkuha ng parehong order ng PCB at order ng mga sangkap na naipadala nang magkasama! Oo, hindi na kailangang maghintay para sa 2 pakete na magkahiwalay na dumating, ngunit sa halip ay pinagsama ito sa isang pakete. Masidhing inirerekumenda kong gamitin ito.

Hakbang 6: Assembly

Nag-iisa kaming mga PCB sa lahat ngayon. Panahon na upang tipunin ang lahat.

Una, kailangan naming maghinang ng electronics ayon sa eskematiko. Ito ay isang madaling gawain para sa proyektong ito.

Matapos matapos ang paghihinang, gupitin ngayon ang mga kinakailangang butas sa plastic enclosure pagkatapos ay ayusin ang PCB sa iba pang mga bahagi nang maayos sa loob ng paggamit ng hot glue gun.

Dapat mo na ngayong gamitin ang potensyomiter upang ayusin ang kaibahan ng LCD, habang ang pagpili ng kinakailangang balbula ng risistor para sa ningning, pinili ko ang 100R.

Hakbang 7: Code

Ang code para sa proyektong ito ay naka-attach sa hakbang na ito, at ang paliwanag ay ang mga sumusunod:

// isama ang code ng library: # isama ang # isama ang "DHT.h" // itakda ang DHT Pin #define DHTPIN 2

Isama ang mga kinakailangang aklatan at tukuyin ang pin 2 ng Arduino pro mini bilang data pin para sa sensor. Siguraduhing mai-install ang mga libraryong ito kung wala ang mga ito.

// ipasimula ang silid-aklatan gamit ang mga numero ng mga interface ng interface LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Simulan ngayon ang LCD library gamit ang mga pin na ito ayon sa eskematiko mismo. Gumamit din ng DHT library at piliin ang DHT11 bilang sensor na gagamitin, kaya kung mayroon kang DHT22 dapat mo itong palitan.

Ang huling linya ay nagsasabing mayroon kaming DHT11 sensor at ang data pin nito ay nasa pin na "DHTPIN" na kung saan ay pin 2 tulad ng naitala namin dati.

void setup () {// i-set up ang bilang ng mga haligi at hilera ng LCD: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Temperatura at"); lcd.setCursor (0, 1); lcd.print ("kahalumigmigan sensor"); pagkaantala (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); pagkaantala (3000); }

Ngayon ay oras na ng pag-set up! at narito kung ano ang nangyayari:

Ang LCD ay 16 sa pamamagitan ng 2 uri.

Simulan ang utos ng DHT upang makakuha ng mga halaga.

I-print ang "Temperatura at kahalumigmigan sensor" sa 2 linya.

Delay ng 3 segundo.

I-clear ang display

I-print ang "THUNDERTRONICS" sa unang linya pagkatapos ay i-print ang "Hossam Moghrabi" sa ika-2 linya.

Delay ng 3 segundo.

^ Ginawa ko ito bilang isang welcome screen na tumatagal ng halos 6 segundo o mahigit pa bago ipakita ang mga halaga.

void loop () {// basahin ang kahalumigmigan int h = dht.readHumidity (); // basahin ang temperatura sa c int t = dht.readTemperature (); kung (isnan (h) || isnan (t)) {lcd.print ("ERROR"); bumalik; }

Nasa loob kami ng aming walang hanggang loop na kung saan ay patuloy na paulit-ulit.

Mag-imbak ng mga pagbabasa ng kahalumigmigan sa loob ng variable na "h" at mga pagbabasa ng temperatura sa loob ng variable na "t".

Susunod, mayroon kaming isang kung pahayag. Karaniwan itong nagbabalik ng isang mensahe ng error kapag mayroong isang error. Iwanan ito nang hindi binabago.

Ngayon mayroon kaming lahat ng mga halagang kailangan namin.

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 ("Humidity ="); lcd.print (h); lcd.print ("%"); // lcd.print ("Hossam Moghrabi"); pagkaantala (2000);

Panghuli, ipinapakita namin ang mga halagang ito sa LCD display. Maaari mong baguhin ito sa paraang nais mo dahil simpleng paglilimbag nito ng mga halaga sa loob ng "h" at "t" na mga variable. Ang paglalagay ng pagkaantala ng 2 segundo ay medyo opsyonal ngunit hindi ka makikinabang mula sa paggawa nito nang mas mabilis dahil ang sensor mismo ay hindi ganoon kabilis at kahit na ito ay, ang mga pisikal na halagang hindi kailanman nagbabago nang napakabilis. Kaya't ang 2 segundo ay napakabilis para sa trabaho!

Iyan na iyon!

Inirerekumendang: