Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Ovaj blog će pokazati kako napraviti sustav kućne automatizacije koji će početi oglašavati alarm kad temperatura dosegne više od programirane vrijednosti praga. Nastavit će prikazivati trenutnu temperaturu prostorije na LCD -u i potrebne radnje (npr.: Smanjenje temperature) kada temperatura dosegne više od praga. U ovom vodiču koristim osjetnik temperature AD22100 koji je proizveden od strane Analog Devices i AG-1005G Buzzer. AD22100 je osjetnik izlazne temperature napona sa kondicioniranjem signala
Korak 1: Dijelovi
Ovi dijelovi su vam potrebni prije nego počnete s ovim neuništivim radom
1. Arduino UNO ploča
2. LCD zaslon (16x2)
3. Zvučni signal - 2 pina (AC -1005G)
4. Senzor temperature - 3 pinski (AD22100)
Korak 2: Povezivanje različitih dijelova s Arduino UNO
LCD veza s Arduino UNO pločom
LCD RS pin (pin 4) sa pin 7 Arduino ploče
Pin za omogućavanje LCD -a (Pin 6) s Pin 8 na Arduino ploči
LCD D4 pin (pin 11) s pin 9 na Arduino ploči
LCD D5 pin (pin 12) s pin 10 Arduino ploče
LCD D6 pin (pin 13) s pin 11 Arduino ploče
LCD D7 pin (pin 14) sa pin 12 Arduino ploče
Dodajte 10 KΩ pot u +5v (pin pin 1) i GND (pot pin 3), Spojite srednju iglu lonca (pin pin 2) na LCD V0 pin (pin 3).
LCD VDD pin (pin 2) i LCD A pin (pin 15) sa +5v na Arduino ploči.
LCD VSS pin (pin 1) i LCD K pin (pin 16) s GND na Arduino ploči.
Povezivanje osjetnika temperature AD22100 s Arduino UNO pločom
Pin 1 (V +) AD22100 trebao bi biti spojen na +5 v na Arduino ploči.
Pin 2 (Vo) AD22100 trebao bi biti spojen na pin A1 na Arduino ploči.
Pin 3 (GND) AD22100 trebao bi biti spojen na GND na Arduino ploči
Zujalica (AC-1005G) Povezivanje s Arduino UNO pločom
Pin 6 PWM izlaz Arduino ploče treba biti spojen na +ve ulaz zujalice.
GND Arduino ploče trebao bi biti povezan s -ve ulazom zujalice
Korak 3: Arduino kodovi
Sastavite ga i prenesite na Arduino ploču te promatrajte demo sustava kućne automatizacije
// Program počinje ovdje
int val;
int tempPin = A1;
int zujalica = 6;
#include LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
void setup () {
// ovdje postavite svoj kôd za postavljanje, da biste ga jednom pokrenuli:
lcd.begin (16, 2);
lcd.clear ();
Serial.begin (9600);
pinMode (zujalica, OUTPUT);
}
void loop () {// ovdje unesite svoj glavni kôd, za ponavljanje:
val = analogRead (tempPin); // AD22100 je spojen na pin A1
/*
*Za 25C val dolazi kao 900, što znači
* 900 odgovara 1.9375 v
* Funkcija prijenosa je (V +/5) * (1,375 + 22,5 mv/degC * 25 ° C), * Pročitajte tehnički list AD22100
*/
float cel = (((((1.9375/900) * val) - 1.375) /22.5) * 1000;
float farh = (cel*9)/5 + 32;
Serijski.ispis (val);
Serial.println ();
Serial.print ("TEMPRATURE =");
Serial.print (cel); Serial.print ("*C");
Serial.println ();
if (cel> 26) {
ton (zujalica, 1000);
lcd.clear ();
lcd.print ("Temp iznad praga");
lcd.setCursor (0, 1);
lcd.print ("Smanjenje temperature");
}
drugo
{noTone (zujalica);
lcd.clear ();
lcd.print ("Temp pod kontrolom");
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd.tisak (cel);
lcd.print ("degC");
}
kašnjenje (500);
}
// Program završava ovdje
Korak 4: Detaljno razumijevanje programa
Pokušat ću objasniti nekoliko dijelova koda.
Funkcije povezane s naredbom If/else
Ako je temperatura veća od granične vrijednosti, šaljem signal zvučniku za oglašavanje alarma i prikazuje se na LCD -u za smanjenje temperature s donjim odjeljkom koda
ako (cel> 26)
{ton (zujalica, 1000);
lcd.clear ();
lcd.print ("Temp iznad praga");
lcd.setCursor (0, 1);
lcd.print ("Smanjenje temperature");
}
Ako ne, tada se kontrolira slanje trenutne vrijednosti temp na LCD i prikaz te temperature.
drugo
{noTone (zujalica);
lcd.clear ();
lcd.print ("Temp pod kontrolom");
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd.tisak (cel);
lcd.print ("degC");
}
Funkcije povezane sa zujalicom
ton (zujalica, 1000) - ova funkcija šalje signal od 1 khz na pin nazvan zujalica koji je definiran kao pin 6, a magnetski zujalica je spojena na pin 6. noTone (zujalica) - prestat će slati signal od 1 kHz. Stoga će zvonjenje prestati
Funkcije povezane s senzorom temperature
Pretvorba analogne vrijednosti očitanja temp u vrijednost C vrši se pomoću prijenosne funkcije koja se može pronaći u podatkovnom listu AD22100 kako je dolje napisano.
Vout = (V +/5 V) × (1,375 V + 22,5 mV/° C × TA) i ista vrijednost je ispisana na LCD zaslonu.
Korak 5: Demo instrukcija
Nakon što je program sastavljen i postavljen na Arduino UNO ploču
pokušajmo povećati temperaturu osjetljivu osjetnikom temperature AD22100 i uživati u sustavu kućne automatizacije.
Za povećanje temperature senzora, dodirujem ga lemilicom dostupnom u Labu.
Demo možete pogledati ovdje..
Demo sustava kućne automatizacije