Mündəricat:

Arduino Temperatur və Nəmlik Sensoru: 7 addım
Arduino Temperatur və Nəmlik Sensoru: 7 addım

Video: Arduino Temperatur və Nəmlik Sensoru: 7 addım

Video: Arduino Temperatur və Nəmlik Sensoru: 7 addım
Video: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Noyabr
Anonim

Müəllif tərəfindən daha çox izləyin:

PIC16F877A Rəqəmsal Dönüştürücü (ADC)
PIC16F877A Rəqəmsal Dönüştürücü (ADC)
PIC16F877A Rəqəmsal Dönüştürücü (ADC)
PIC16F877A Rəqəmsal Dönüştürücü (ADC)
PIC16F877A Mikrokontrolörlü LCD Arayüzü
PIC16F877A Mikrokontrolörlü LCD Arayüzü
PIC16F877A Mikrokontrolörlü LCD Arayüzü
PIC16F877A Mikrokontrolörlü LCD Arayüzü
DIY Modul Dəzgah Güc Təchizatı
DIY Modul Dəzgah Güc Təchizatı
DIY Modul Dəzgah Güc Təchizatı
DIY Modul Dəzgah Güc Təchizatı

Bu dərslikdə DHT11 (və ya DHT22) sensoru olan Arduino pro mini lövhədən istifadə edərək temperatur və rütubət sensoru istehsalını izah edəcəyəm.

Addım 1: Videoya baxın

Növbəti addıma keçməzdən əvvəl videoya baxmaq vacibdir. Video hər şeyi izah edir və bunun necə edildiyini göstərir. Ancaq bu yazıda daha çox texniki məlumat və detal yazacağam.

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

Addım 2: Lazım olan hissələr

Bu layihə üçün lazım olan hissələr:

1- Arduino pro mini board (və ya hər hansı bir Arduino).

2- DHT11 temperatur və rütubət sensoru (və ya DHT22).

3- 16x2 LCD ekran.

4- Seçdiyiniz bir kassa, tercihen videoda istifadə edilənlə eyni.

5-10K potansiyometr.

6- Vida terminalları.

7- Fərqli dəyərlərin müqavimətçiləri.

8-9v batareya.

Lazımi vasitələr isə:

1- Dremil kimi əl qazma.

2- Matkap üçün fərqli bitlər, çünki hamarlaşdırıcı və kəsici bitlərdən istifadə edəcəyik.

3- kömək əlləri.

üstəlik, multimetr və s. kimi adi elektronika vasitələri.

Addım 3: Şematik Dizayn

Şematik Dizayn
Şematik Dizayn

Bu layihədə özüm kabel çəkmək əvəzinə bunun üçün bir PCB düzəltməyi seçdim. Yaxşı bir təcrübə olan iş üçün EasyEDA onlayn vasitəsindən istifadə etdim.

Bu, layihənin EasyEDA veb saytındakı səhifəsidir:

Sxemanın izahı belədir:

1- Arduino pro mini proqramlaşdırmaq üçün 6 pinli ICSP adapterindən istifadə etdim, çünki təyyarədə yoxdur. sxematik olaraq J2 -dir.

2- R2 100 Ohm-dir və LCD-nin parlaqlığını təyin edir. LCD arxa işığının daha qaranlıq olmasını istəyirsinizsə, əsasən 100R -dən daha çox müqavimət göstərə bilərsiniz. Və ya daha yaxşısı, dəyişən bir sıra müqavimət kimi çıxış etmək üçün bir potansiyometr alın.

3- JP1, gözəl bir PCB izi olan bir bağlayıcıdır. Heç vaxt həqiqi bir terminal qoymamışam, telləri lehimləmişəm. İstədiyiniz kimi edin.

4- U2, batareya əlaqə terminallarıdır. Burada möhkəm bir əlaqə əldə etmək üçün gözəl bir vida terminalına üstünlük verirəm. Telləri lehimləyə bilərsiniz, ancaq əlaqəni hər hansı bir titrəməyə tab gətirə biləcək qədər möhkəm etmək üçün kifayət qədər lehim qoyduğunuzdan əmin olun.

5- LCD1, easyEDA-dakı LCD komponentidir. Arduino pro mini ilə əsas əlaqəyə malikdir. Buradakı sancaqlar proqramdakılarla eyni olduğundan əmin olun.

6- RV1, LCD kontrastını təyin etmək üçün 10K potensiometrdir. Yalnız bir dəfə istifadə edilməlidir və LCD -ni ilk dəfə işə saldığınız zaman.

Addım 4: PCB Dizaynı

PCB Dizaynı
PCB Dizaynı
PCB Dizaynı
PCB Dizaynı

Şematik dizaynı bitirdikdən və hər şeyin nə demək olduğunu anladıqdan sonra bunun üçün bir PCB hazırlamağın vaxtı gəldi.

PCB redaktorunda PCB yaratmaq üçün EasyEDA -da "PCB -yə çevir" düyməsini basmalısınız. Sonra, hissələri yerləşdirməyə və hər zamanki kimi marşrutlaşdırmağa başlayın. Heç vaxt avtomatik yönləndiricidən istifadə etməməyi məsləhət görürəm.

Məkan çox az olduğu üçün yuxarıdan aşağıya doğru hərəkət etmək üçün çoxlu vias istifadə etdim.

Addım 5: PCB istehsal edin

İndi PCB dizaynı tamamlandı. Hər şeyi yoxladıq və heç bir problem tapmadıq. Dizayn sənədlərini (gerbers) seçdiyimiz PCB istehsal şirkətinə göndərməliyik ki, bunu bizim üçün edə bilsin.

Seçdiyim şirkət JLCPCB -dir. Bu cür layihələr və prototiplər üçün ən yaxşısıdır və dizaynınızın bütün 10 parçası üçün cəmi 2 dollar qiymət təklif edirlər!

Beləliklə, indi (….) Basın və JLCPCB seçin. EasyEDA ilə tərəfdaş olduqları üçün JLCPCB veb saytına yönəldik. İndi hər şeyi doldurun və sifariş verin. İndi PCB -lərin gəlməsini gözləyin.

Qeyd etmək lazımdır ki, JLCPCB -nin yalnız EasyEDA ilə əlaqəli deyil, həm də böyük bir komponentlər mağazası var! Buradakı üstünlük həm PCB sifarişini, həm də komponent sifarişini birlikdə göndərməkdir! Bəli, 2 paketin ayrı -ayrılıqda gəlməsini gözləməyə ehtiyac yoxdur, əksinə bir paketdə bir araya gəlir. Bunu çox istifadə etməyi məsləhət görürəm.

Addım 6: Quraşdırma

PCB -lərimiz indi hər şeylə birlikdədir. Hər şeyi bir yerə yığmağın vaxtı gəldi.

Birincisi, elektronikanı sxemə görə lehimləməliyik. Bu layihə üçün asan bir işdir.

Lehimləmə işini bitirdikdən sonra, plastik korpusdakı lazımi delikləri kəsin, sonra isti yapışqan tabancasından istifadə edərək digər komponentlərlə birlikdə PCB -ni düzəldin.

İndi LCD kontrastını tənzimləmək üçün potensiometrdən istifadə etməlisiniz, parlaqlıq üçün lazım olan rezistor klapanı seçərkən 100R seçdim.

Addım 7: Kod

Bu layihənin kodu bu addımla əlavə olunur və izahı belədir:

// kitabxana kodunu daxil edin: #include #include "DHT.h" // DHT Pinini təyin edin #DHTPIN 2 təyin edin

Lazımi kitabxanaları daxil edin və Arduino pro mini pin 2 -ni sensor üçün məlumat pin olaraq təyin edin. Bu kitabxanalar yoxdursa, onları quraşdırdığınızdan əmin olun.

// kitabxananı LiquidCrystal lcd (9, 8, 7, 6, 5, 4) interfeys pinlərinin nömrələri ilə işə salın; #dehine DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

İndi sxemə görə LCD kitabxanasını bu pinlərlə işə salın. DHT kitabxanasını da istifadə edin və istifadə etmək üçün sensor olaraq DHT11 seçin, buna görə DHT22 varsa, onu dəyişdirməlisiniz.

Son sətir, DHT11 sensorumuzun olduğunu və məlumat pininin əvvəllər təyin etdiyimiz kimi pin 2 olan "DHTPIN" pinində olduğunu bildirir.

void setup () {// LCD -nin sütun və satır sayını təyin edin: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Temperatur və"); lcd.setCursor (0, 1); lcd.print ("rütubət sensoru"); gecikmə (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); gecikmə (3000); }

İndi quraşdırma vaxtıdır! və burada baş verənlər:

LCD 16 ilə 2 növdür.

Dəyərləri əldə etmək üçün DHT əmrini başladın.

2 sətirdə "Temperatur və rütubət sensoru" yazın.

3 saniyə gecikdirin.

Təmiz ekran

İlk sətirdə "THUNDERTRONICS" yazın, sonra 2 -ci sətirdə "Hossam Moghrabi" yazın.

3 saniyə gecikdirin.

^Bunu dəyərlər görünməzdən əvvəl təxminən 6 saniyə davam edən xoş bir ekran olaraq etdim.

void loop () {// rütubət int h = dht.readHumidity () oxuyun; // temperaturu oxuyun c int t = dht.readTemperature (); əgər (isnan (h) || isnan (t)) {lcd.print ("ERROR"); qayıtmaq; }

İndi təkrarlanmağa davam edəcək əbədi döngəmizin içindəyik.

Rütubət oxunuşlarını "h" dəyişəninin içərisində və temperatur oxunuşlarını "t" dəyişəninin içərisində saxlayın.

Sonra, if ifadəsi var. Bu, əsasən bir səhv olduqda bir səhv mesajı qaytarır. Dəyişdirmədən buraxın.

İndi ehtiyacımız olan bütün dəyərlərə sahibik.

lcd.setCursor (0, 0); lcd.print ("Temp. ="); lcd çap (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Rütubət ="); lcd çap (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); gecikmə (2000);

Nəhayət, bu dəyərləri LCD ekranda göstəririk. İstədiyiniz şəkildə dəyişə bilərsiniz, çünki sadəcə "h" və "t" dəyişənlərinin içərisində dəyərlər çap edir. 2 saniyə gecikdirmək çox istəklidir, lakin sensorun özü o qədər sürətli olmadığı üçün bunu etməkdən daha çox fayda görməyəcəksən və hətta belə olsa da, fiziki dəyərlər heç vaxt bu qədər tez dəyişmir. Beləliklə, 2 saniyə iş üçün çox sürətlidir!

Budur!

Tövsiyə: