Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä blogi näyttää kuinka tehdä kotiautomaatiojärjestelmä, joka alkaa antaa hälytyksen aina, kun lämpötila saavuttaa yli ohjelmoidun kynnysarvon. Se näyttää huoneen nykyisen lämpötilan nestekidenäytössä ja tarvittavat toimenpiteet (esim. Alenna lämpötilaa), kun lämpötila saavuttaa kynnysarvon. Tässä opetusohjelmassa käytän AD22100-lämpötila-anturia, jonka ovat valmistaneet Analog Devices ja AG-1005G Buzzer. AD22100 on jännitteen ulostulolämpötila -anturi, jossa on signaalin käsittely
Vaihe 1: Osat
Tarvitset nämä osat mukanasi ennen kuin aloitat tämän tuhoutumattoman toimivuuden
1. Arduino UNO Board
2. LCD -näyttö (16x2)
3. summeri - 2 -nastainen (AC -1005G)
4. Lämpötila -anturi - 3 -nastainen (AD22100)
Vaihe 2: Eri osien liittäminen Arduino UNO: n kanssa
LCD -liitäntä Arduino UNO -levyllä
LCD RS -tappi (nasta 4) ja Arduino Boardin nasta 7
Nestekidenäytön nasta (nasta 6) Arduino Boardin nastalla 8
LCD D4 -nasta (nasta 11) ja Arduino Boardin nasta 9
LCD D5 -nasta (nasta 12) ja Arduino -levyn nasta 10
LCD D6 -nasta (nasta 13) ja Arduino Boardin tappi 11
LCD D7 -nasta (nasta 14) ja Arduino Boardin tappi 12
Lisää 10 KΩ: n potti +5v (potti 1) ja GND (potti 3), Liitä kattilan keskimmäinen tappi (potti 2) nestekidenäytön V0 -nastaan (nasta 3).
LCD VDD -tappi (nasta 2) ja LCD -A -nasta (nasta 15) +5v Arduino -kortilla.
LCD VSS -tappi (nasta 1) ja LCD K -nasta (nasta 16), jossa GND Arduino -piirilevyssä.
AD22100 Lämpötila -anturiliitäntä Arduino UNO -levyn kanssa
AD22100: n nasta 1 (V +) on liitettävä Arduino Boardin +5 v: een.
AD22100: n nasta 2 (Vo) tulee liittää Arduino Boardin nastaan A1.
AD22100: n nasta 3 (GND) tulee liittää Arduino Boardin GND: hen
Summeri (AC-1005G) Liitäntä Arduino UNO Boardiin
Nasta 6 Arduino -kortin PWM -lähtö on kytkettävä Buzzerin +ve -tuloon.
Arduino Boardin GND tulee liittää Buzzerin -ve -tuloon
Vaihe 3: Arduino -koodit
Kokoa se ja lataa se Arduino Boardille ja seuraa Home Automation System -esittelyä
// Ohjelma alkaa tästä
int val;
int tempPin = A1;
int summeri = 6;
#sisältää LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
void setup () {
// laita asennuskoodi tähän, jotta se suoritetaan kerran:
lcd. alku (16, 2);
lcd.clear ();
Sarja.alku (9600);
pinMode (summeri, OUTPUT);
}
void loop () {// laita pääkoodisi tänne toistettavaksi:
val = analoginenLead (tempPin); // AD22100 on kytketty nastaan A1
/*
*25C: lle val tulee 900, mikä tarkoittaa
* 900 vastaa 1,9375 v
* Siirtotoiminto on (V +/5) * (1,375 + 22,5 mv/degC * 25 degC), * Lue AD22100: n tietolomake
*/
float cel = (((((1,9375/900) * val) - 1,375)/22,5) * 1000;
float farh = (cel*9)/5 + 32;
Sarjajälki (val);
Sarja.println ();
Serial.print ("LÄMPÖTILA =");
Serial.print (cel); Serial.print (“*C”);
Sarja.println ();
jos (cel> 26) {
ääni (summeri, 1000);
lcd.clear ();
lcd.print ("Lämpötila kynnyksen yläpuolella");
lcd.setCursor (0, 1);
lcd.print (“Pienennä lämpötilaa”);
}
muu
{noTone (summeri);
lcd.clear ();
lcd.print (“Lämpötila hallinnassa”);
lcd.setCursor (0, 1);
lcd.print ("Lämpötila =");
lcd.print (cel);
lcd.print (“degC”);
}
viive (500);
}
// Ohjelma päättyy tähän
Vaihe 4: Ohjelman ymmärtäminen yksityiskohtaisesti
Yritän selittää muutaman koodin osan.
If/else -lausekkeeseen liittyvät toiminnot
Jos lämpötila on korkeampi kuin kynnysarvo, lähetän summerille signaalin hälytyksen antamiseksi ja näytetään nestekidenäytössä lämpötilan alentamiseksi koodin alla olevan osan avulla
jos (cel> 26)
{ääni (summeri, 1000);
lcd.clear ();
lcd.print ("Lämpötila kynnyksen yläpuolella");
lcd.setCursor (0, 1);
lcd.print (“Pienennä lämpötilaa”);
}
Jos ei, lähetä nykyinen lämpötila -arvo nestekidenäyttöön ja näyttää, että lämpötila on hallinnassa.
muu
{noTone (summeri);
lcd.clear ();
lcd.print ("Lämpötila hallinnassa");
lcd.setCursor (0, 1);
lcd.print ("Lämpötila =");
lcd.print (cel);
lcd.print (“degC”);
}
Summeriin liittyvät toiminnot
merkkiääni (summeri, 1000) - tämä toiminto lähettää 1 khz signaalin nastaiseen summeriin, joka on määritetty nastaksi 6 ja magneettinen summeri on kytketty nastaan 6. noTone (summeri) - lopettaa 1 khz signaalin lähettämisen. Soitto lakkaa siis
Lämpötila -anturiin liittyvät toiminnot
Lämpötilan lukemisen analogisen arvon muuntaminen deg C -arvoksi suoritetaan siirtotoiminnon avulla, joka voidaan selvittää AD22100 -tietolomakkeesta, kuten alla on kirjoitettu.
Vout = (V +/5 V) × (1,375 V + 22,5 mV/° C × TA) ja sama arvo tulostetaan nestekidenäyttöön.
Vaihe 5: Instructables -esittely
Kun ohjelma on koottu ja ladattu Arduino UNO -levylle
Yritetään nostaa lämpötila -anturin AD22100 havaitsemaa lämpötilaa ja nauttia kodin automaatiojärjestelmästä.
Anturin lämpötilan lisäämiseksi kosketan sitä Labissa saatavalla juotosraudalla.
Demon voit katsoa täältä..
Kodin automaatiojärjestelmän esittely