Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Ky blog do të demonstrojë se si të krijoni një Sistem të Automatizimit të Shtëpisë i cili do të fillojë të tingëllojë një alarm sa herë që temperatura arrin më shumë se vlera e pragut të programuar. Ai do të vazhdojë të shfaqë temperaturën aktuale të dhomës në LCD dhe veprimet e nevojshme (p.sh.: Ulja e Temp) kur temperatura arrin më shumë se vlera e pragut. Në këtë tutorial, unë jam duke përdorur sensorin e temperaturës AD22100 i cili është prodhuar nga Analog Devices dhe AG-1005G Buzzer. AD22100 është një sensor i temperaturës së daljes së tensionit me kondicionim të sinjalit
Hapi 1: Pjesët
Ju keni nevojë për këto pjesë me vete para se të filloni këtë punë të pathyeshme
1. Bordi i Arduino UNO
2. Ekran LCD (16x2)
3. Buzzer - 2 Pin (AC -1005G)
4. Sensori Temp - 3 Pin (AD22100)
Hapi 2: Lidhja e Pjesëve të ndryshme me Arduino UNO
Lidhja LCD me bordin Arduino UNO
LCD RS Pin (Pin 4) me Pin 7 të Arduino Board
LCD Aktivizoni Pin (Pin 6) me Pin 8 të Arduino Board
LCD D4 Pin (Pin 11) me Pin 9 të Arduino Board
LCD D5 Pin (Pin 12) me Pin 10 të Arduino Board
LCD D6 Pin (Pin 13) me Pin 11 të Arduino Board
LCD D7 Pin (Pin 14) me Pin 12 të Arduino Board
Shtoni një tenxhere 10 KΩ në +5v (kunja e tenxhere 1) dhe GND (kunja e tenxhere 3), Lidhni kunjin e mesëm të tenxhere (kunja e tenxhere 2) me kunjin LCD V0 (kunja 3).
LCD VDD Pin (Pin 2) dhe LCD A Pin (Pin 15) me +5v në Arduino Board.
LCD VSS Pin (Pin 1) dhe LCD K Pin (Pin 16) me GND në Arduino Board.
AD22100 Lidhja e sensorit Temp me Arduino UNO Board
Pin 1 (V +) i AD22100 duhet të lidhet me +5 v në Arduino Board.
Pin 2 (Vo) e AD22100 duhet të lidhet me Pin A1 në Arduino Board.
Pin 3 (GND) e AD22100 duhet të lidhet me GND në Arduino Board
Buzzer (AC-1005G) Lidhja me Arduino UNO Board
Dalja PWM 6 e bordit Arduino duhet të lidhet me hyrjen +ve të Buzzer.
GND i Arduino Board duhet të lidhet me -ve hyrje të Buzzer
Hapi 3: Kodet Arduino
Përpiloni dhe Ngarkoni në Arduino Board dhe vëzhgoni demonstrimin e Sistemit të Automatizimit të Shtëpisë
// Programi fillon këtu
int val;
int tempPin = A1;
int zile = 6;
#përfshi LCD LiquidCrystal (7, 8, 9, 10, 11, 12);
void setup () {
// vendosni kodin tuaj të konfigurimit këtu, për të ekzekutuar një herë:
lcd.filloni (16, 2);
lcd.qartë ();
Serial.filloj (9600);
pinMode (zile, OUTPUT);
}
void loop () {// vendosni kodin tuaj kryesor këtu, për të ekzekutuar në mënyrë të përsëritur:
val = analogRead (tempPin); // AD22100 është i lidhur në Pin A1
/*
*Për 25 gradë Celsius, vlera e valutës është 900 që do të thotë
* 900 korrespondon me 1.9375 v
* Funksioni i Transferimit është (V +/5) * (1.375 + 22.5 mv/degC * 25 degC), * Lexoni fletën e të dhënave të AD22100
*/
float cel = ((((1.9375/900) * val) - 1.375) /22.5) * 1000;
float farh = (cel*9)/5 + 32;
Serial.print (val);
Serial.println ();
Serial.print ("TEMPRATURE =");
Serial.print (cel); Serial.print ("*C");
Serial.println ();
nëse (cel> 26) {
toni (zile, 1000);
lcd.qartë ();
lcd.print ("Temp mbi pragun");
lcd.setCursor (0, 1);
lcd.print ("Ulni Temp");
}
tjeter
{noTone (zile);
lcd.qartë ();
lcd.print ("Temp nën kontroll");
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd.print (cel);
lcd.print ("degC");
}
vonesë (500);
}
// Programi përfundon këtu
Hapi 4: Kuptimi i Programit në detaje
Do të përpiqem të shpjegoj disa pjesë të kodit.
Funksionet që lidhen me deklaratën If/else
Nëse temperatura është më e madhe se vlera e pragut, unë po dërgoj një sinjal në zile për të dhënë një alarm dhe shfaq në LCD për të ulur temperaturën me pjesën më poshtë të kodit
nëse (cel> 26)
{ton (zile, 1000);
lcd.qartë ();
lcd.print ("Temp mbi pragun");
lcd.setCursor (0, 1);
lcd.print ("Ulni Temp");
}
Nëse jo, atëherë dërgimi i vlerës aktuale të temperaturës në LCD dhe shfaqja e asaj temperature është nën kontroll.
tjeter
{noTone (zile);
lcd.qartë ();
lcd.print ("Temp nën kontroll");
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd.print (cel);
lcd.print ("degC");
}
Funksionet që lidhen me Buzzer
toni (zile, 1000) - ky funksion do të dërgojë një sinjal 1 khz në pinin e quajtur zile që përcaktohet si Pin 6 dhe zile magnetike është e lidhur në Pin 6.noTone (zile) - do të ndalojë dërgimin e sinjalit 1 khz. Prandaj, zilja do të ndalet
Funksionet që lidhen me Sensorin Temp
Shndërrimi i vlerës analoge të leximit të temperaturës në vlerën deg C bëhet duke përdorur një funksion transferimi i cili mund të gjendet në fletën e të dhënave AD22100 siç është shkruar më poshtë.
Vout = (V +/5 V) × (1.375 V + 22.5 mV/° C × TA) dhe e njëjta vlerë printohet në ekranin LCD.
Hapi 5: Demo e udhëzimeve
Pasi programi të përpilohet dhe ngarkohet në tabelën Arduino UNO
le të përpiqemi të rrisim temperaturën e ndjerë nga sensori i temperaturës AD22100 dhe të shijojmë sistemin e Automatizimit të Shtëpisë.
Për rritjen e temperaturës së sensorit, po e prek me hekur bashkues të disponueshëm në Lab.
Këtu mund të hidhni një sy në demonstrim..
Demo e Sistemit të Automatizimit të Shtëpisë