Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Denne bloggen vil demonstrere hvordan du lager et hjemmeautomatiseringssystem som begynner å slå alarm når temperaturen når mer enn den programmerte terskelverdien. Det vil fortsette å vise gjeldende temperatur i rommet på LCD -skjermen og nødvendige handlinger (f.eks. Senke temp) når temperaturen når mer enn terskelverdien. I denne opplæringen bruker jeg AD22100 temp sensor som er produsert av Analog Devices og AG-1005G Buzzer. AD22100 er en spenningsutgangstemperaturføler med signalkondisjonering
Trinn 1: Deler
Du trenger disse delene med deg før du starter denne uforgjengelige jobben
1. Arduino UNO -styre
2. LCD -skjerm (16x2)
3. Summer - 2 pinners (AC -1005G)
4. Temp -sensor - 3 -pinners (AD22100)
Trinn 2: Tilkobling av de forskjellige delene med Arduino UNO
LCD -tilkobling med Arduino UNO -kort
LCD RS Pin (Pin 4) med Pin 7 av Arduino Board
LCD Aktiver Pin (Pin 6) med Pin 8 av Arduino Board
LCD D4 Pin (Pin 11) med Pin 9 av Arduino Board
LCD D5 Pin (Pin 12) med Pin 10 av Arduino Board
LCD D6 Pin (Pin 13) med Pin 11 av Arduino Board
LCD D7 Pin (Pin 14) med Pin 12 av Arduino Board
Legg til en 10 KΩ gryte til +5v (grytepinne 1) og GND (grytepinne 3), Koble den midtre potten (potten 2) til LCD V0 -pinnen (pin 3).
LCD VDD Pin (Pin 2) og LCD A Pin (Pin 15) med +5v på Arduino Board.
LCD VSS Pin (Pin 1) og LCD K Pin (Pin 16) med GND på Arduino Board.
AD22100 Temp Sensor -tilkobling med Arduino UNO Board
Pin 1 (V +) på AD22100 bør kobles til +5 v på Arduino Board.
Pin 2 (Vo) på AD22100 bør kobles til Pin A1 på Arduino Board.
Pin 3 (GND) på AD22100 bør kobles til GND på Arduino Board
Summer (AC-1005G) Tilkobling med Arduino UNO Board
Pin 6 PWM -utgang fra Arduino -kortet skal kobles til +ve -inngangen til summeren.
GND for Arduino Board bør kobles til -ve inngang til summer
Trinn 3: Arduino -koder
Kompiler den og last den opp på Arduino Board og observer demo av Home Automation System
// Programmet starter her
int val;
int tempPin = A1;
int summer = 6;
#include LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
ugyldig oppsett () {
// legg oppsettskoden her for å kjøre en gang:
lcd.begin (16, 2);
lcd.clear ();
Serial.begin (9600);
pinMode (summer, OUTPUT);
}
void loop () {// legg hovedkoden din her for å kjøre gjentatte ganger:
val = analogRead (tempPin); // AD22100 er koblet til Pin A1
/*
*For 25C kommer val som 900 det betyr
* 900 tilsvarer 1,9375 v
* Overføringsfunksjonen er (V +/5) * (1.375 + 22.5 mv/degC * 25 degC), * Les datablad for 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 ();
hvis (cel> 26) {
tone (summer, 1000);
lcd.clear ();
lcd.print ("Temp over terskel");
lcd.setCursor (0, 1);
lcd.print ("Reduser temp");
}
ellers
{noTone (summer);
lcd.clear ();
lcd.print ("Temp under kontroll");
lcd.setCursor (0, 1);
lcd.print (“Temp =“);
lcd.print (cel);
lcd.print (“degC”);
}
forsinkelse (500);
}
// Programmet avsluttes her
Trinn 4: Forstå programmet i detalj
Jeg vil prøve å forklare noen deler av koden.
Funksjoner relatert til If/else -setning
Hvis temp er større enn terskelverdien, sender jeg et signal til summeren for å slå en alarm og viser på LCD -skjermen for å senke temperaturen med delen nedenfor i koden
hvis (cel> 26)
{tone (summer, 1000);
lcd.clear ();
lcd.print ("Temp over terskel");
lcd.setCursor (0, 1);
lcd.print ("Reduser temp");
}
Hvis ikke, send den nåværende verdien av temp til LCD og vis at temperaturen er under kontroll.
ellers
{noTone (summer);
lcd.clear ();
lcd.print ("Temp under kontroll");
lcd.setCursor (0, 1);
lcd.print (“Temp =“);
lcd.print (cel);
lcd.print (“degC”);
}
Funksjoner relatert til summer
tone (summer, 1000) - denne funksjonen sender et 1 khz signal til pin med navnet summer som er definert som Pin 6 og Magnetic summer er koblet til Pin 6. noTone (summer) - vil stoppe å sende 1 khz signal. Derfor vil ringen stoppe
Funksjoner relatert til Temp Sensor
Konvertering av analog verdi for temperaturavlesning til grader C -verdi gjøres ved hjelp av en overføringsfunksjon som kan bli funnet ut i AD22100 -databladet som skrevet nedenfor.
Vout = (V +/5 V) × (1.375 V + 22.5 mV/° C × TA) og den samme verdien skrives ut på LCD -displayet.
Trinn 5: Demo av instruksjonene
Når programmet er samlet og lastet opp på Arduino UNO -brettet
la oss prøve å øke temperaturen registrert av temperatursensoren AD22100 og nyte hjemmeautomatiseringssystemet.
For å øke temperaturen på sensoren, berører jeg den med loddejern som er tilgjengelig i Lab.
Du kan se på demoen her..
Demo av hjemmeautomatiseringssystem