Mündəricat:

Ev avtomatlaşdırması: Temperatur eşik dəyərdən yuxarı olduqda LCD -də siqnalizasiya və ekran: 5 addım
Ev avtomatlaşdırması: Temperatur eşik dəyərdən yuxarı olduqda LCD -də siqnalizasiya və ekran: 5 addım

Video: Ev avtomatlaşdırması: Temperatur eşik dəyərdən yuxarı olduqda LCD -də siqnalizasiya və ekran: 5 addım

Video: Ev avtomatlaşdırması: Temperatur eşik dəyərdən yuxarı olduqda LCD -də siqnalizasiya və ekran: 5 addım
Video: Döşəmə istiliyinə nəzarət üçün Zigbee Termostat MOES BHT-006GAZB 2024, Iyul
Anonim
Ev Avtomatlaşdırması: Temperatur Eşik Dəyərinin Üstündəykən Siqnal Səsləndirin və LCD -də göstərin
Ev Avtomatlaşdırması: Temperatur Eşik Dəyərinin Üstündəykən Siqnal Səsləndirin və LCD -də göstərin

Bu blog, temperatur proqramlaşdırılmış eşik dəyərindən daha çox çatanda həyəcan siqnalı verməyə başlayacaq Ev Avtomatlaşdırma Sisteminin necə qurulacağını göstərəcək. Temperatur eşik dəyərdən çox olduqda, LCD -də otağın hazırkı istiliyini və lazım olan hərəkəti (məsələn: İstiliyin Azaldılması) göstərməyə davam edəcək. Bu təlimatda, Analog Devices və AG-1005G Buzzer tərəfindən istehsal olunan AD22100 temperatur sensöründən istifadə edirəm. AD22100, Siqnal Kondisionerli bir Gərginlik Çıxış Temperatur Sensorudur

Addım 1: hissələr

Bu sarsılmaz işə başlamazdan əvvəl bu hissələrə ehtiyacınız var

1. Arduino UNO İdarə Heyəti

2. LCD Ekran (16x2)

3. Buzzer - 2 Pin (AC -1005G)

4. Temp Sensor - 3 Pin (AD22100)

Addım 2: Fərqli hissələrin Arduino UNO ilə əlaqəsi

Arduino UNO lövhəsi ilə LCD bağlantısı

LCD RS Pin (Pin 4) Arduino lövhəsinin 7 pinli

LCD Arduino lövhəsinin 8 pinli pinini (Pin 6) aktivləşdirin

LCD D4 Pimi (Pin 11) Arduino lövhəsinin 9 Pin ilə

LCD D5 Pin (Pin 12) Arduino lövhəsinin 10 pinli

LCD D6 Pin (Pin 13) Arduino lövhəsinin Pin 11 ilə

LCD D7 Pin (Pin 14) Arduino Kartının 12 Pimi ilə

+5v (Pot Pin 1) və GND (Pot Pin 3) üçün 10 KΩ Pot əlavə edin, Orta Qazan Pinini (Pot Pin 2) LCD V0 Pininə (Pin 3) bağlayın.

Arduino lövhəsində +5v olan LCD VDD Pin (Pin 2) və LCD A Pin (Pin 15).

Arduino lövhəsində GND olan LCD VSS Pin (Pin 1) və LCD K Pin (Pin 16).

AD22100 Arduino UNO Board ilə Temp Sensor bağlantısı

AD22100 pin 1 (V +) Arduino lövhəsində +5 v -ə qoşulmalıdır.

AD22100 pin 2 (Vo) Arduino lövhəsindəki Pin A1 -ə bağlanmalıdır.

AD22100 pin 3 (GND) Arduino Kartında GND -yə bağlanmalıdır

Buzzer (AC-1005G) Arduino UNO Board ilə əlaqə

Arduino lövhəsinin 6 pinli PWM çıxışı Buzzerin +ve girişinə qoşulmalıdır.

Arduino Board GND, Buzzer -ve girişi ilə əlaqələndirilməlidir

Addım 3: Arduino Kodları

Bunu tərtib edin və Arduino lövhəsinə yükləyin və Ev Avtomatlaşdırma Sistemi demosunu izləyin

// Proqram burada başlayır

int val;

int tempPin = A1;

int buzzer = 6;

#LiquidCrystal lcd (7, 8, 9, 10, 11, 12) daxil edin;

boş quraşdırma () {

// bir dəfə işə salmaq üçün quraşdırma kodunuzu bura qoyun:

lcd.begin (16, 2);

lcd.clear ();

Serial.begin (9600);

pinMode (səs siqnalı, ÇIXIŞ);

}

void loop () {// əsas kodunuzu bura qoyun, təkrar işləsin:

val = analogRead (tempPin); // AD22100 Pin A1 -ə bağlıdır

/*

*25C üçün val 900 deməkdir, bu deməkdir

* 900, 1.9375 -ə bərabərdir

* Transfer funksiyası (V +/5) * (1.375 + 22.5 mv/degC * 25 degC), * AD22100 məlumat cədvəlini oxuyun

*/

float cel = (((((1.9375/900) * val) - 1.375) /22.5) * 1000;

float farh = (cel*9)/5 + 32;

Serial. çap (val);

Serial.println ();

Serial.print ("TEMPRATURE =");

Serial.print (cel); Serial.print (“*C”);

Serial.println ();

əgər (cel> 26) {

ton (səs -küy, 1000);

lcd.clear ();

lcd.print ("Temp ərəfəsində");

lcd.setCursor (0, 1);

lcd.print ("İstiliyi azaldın");

}

başqa

{noTone (səs siqnalı);

lcd.clear ();

lcd.print ("Temp nəzarət altındadır");

lcd.setCursor (0, 1);

lcd.print ("Temp =");

lcd çap (cel);

lcd.print ("degC");

}

gecikmə (500);

}

// Proqram burada bitir

Addım 4: Proqramı ətraflı şəkildə anlayın

Kodun bir neçə hissəsini izah etməyə çalışacağam.

If/else ifadəsi ilə əlaqəli funksiyalar

İstilik eşik dəyərindən yüksəkdirsə, siqnalın siqnalını siqnal göndərirəm və kodun aşağı hissəsindəki istiliyi azaltmaq üçün LCD -də göstərirəm.

əgər (cel> 26)

{ton (səs siqnalı, 1000);

lcd.clear ();

lcd.print ("Temp ərəfəsində");

lcd.setCursor (0, 1);

lcd.print ("İstiliyi azaldın");

}

Əks təqdirdə, cari temp dəyərini LCD -yə göndərmək və bu tempi göstərmək nəzarət altındadır.

başqa

{noTone (səs siqnalı);

lcd.clear ();

lcd.print ("Temp nəzarət altındadır");

lcd.setCursor (0, 1);

lcd.print ("Temp =");

lcd çap (cel);

lcd.print ("degC");

}

Buzzer ilə əlaqəli funksiyalar

ton (səs -küy, 1000) - bu funksiya Pin 6 olaraq təyin olunan və Pin 6 -da Maqnitli səs siqnalı bağlandığı üçün 1 kHz siqnalı göndərəcək. Səs (buzzer) - 1 khz siqnalı göndərməyi dayandıracaq. Beləliklə, zəng çalmaq dayanacaq

Temp Sensor ilə əlaqəli funksiyalar

Temperaturun oxunuşunun analoq dəyərinin dərəcə C dəyərinə çevrilməsi, aşağıda yazıldığı kimi AD22100 məlumat cədvəlində tapıla bilən bir ötürmə funksiyasından istifadə etməklə həyata keçirilir.

Vout = (V +/5 V) × (1.375 V + 22.5 mV/° C × TA) və eyni dəyər LCD ekranda çap olunur.

Addım 5: Təlimat verənlərin Demosu

Proqram tərtib edildikdən və Arduino UNO lövhəsinə yükləndikdən sonra

AD22100 temperatur sensoru ilə algılanan istiliyi artırmağa və Ev Avtomatlaşdırma sistemindən zövq almağa çalışaq.

Sensorun temperaturunu artırmaq üçün onu Lab -da mövcud olan lehimləmə dəmiri ilə toxunuram.

Demoya burdan baxa bilərsiniz..

Ev avtomatlaşdırma sisteminin nümayişi

Tövsiyə: