Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Denna blogg kommer att visa hur man skapar ett hemautomationssystem som börjar larma när temperaturen når mer än det programmerade tröskelvärdet. Det kommer att fortsätta visa den aktuella temperaturen i rummet på LCD -skärmen och nödvändiga åtgärder (Ex: Minska temp) när temperaturen når mer än tröskelvärdet. I denna handledning använder jag AD22100 temp sensor som tillverkas av Analog Devices och AG-1005G Buzzer. AD22100 är en temperatursensor för spänningsutgång med signalkonditionering
Steg 1: Delar
Du behöver dessa delar med dig innan du startar det här oförstörbara för att fungera
1. Arduino UNO styrelse
2. LCD -skärm (16x2)
3. Summer - 2 stift (AC -1005G)
4. Temp -sensor - 3 -stift (AD22100)
Steg 2: Anslutning av de olika delarna med Arduino UNO
LCD -anslutning med Arduino UNO -kort
LCD RS -stift (stift 4) med stift 7 på Arduino -kortet
LCD -aktiveringsstift (stift 6) med stift 8 på Arduino -kortet
LCD D4 -stift (stift 11) med stift 9 på Arduino -kortet
LCD D5 -stift (stift 12) med stift 10 på Arduino -kortet
LCD D6 Pin (Pin 13) med Pin 11 på Arduino Board
LCD D7 -stift (stift 14) med stift 12 på Arduino -kortet
Lägg till en 10 KΩ gryta till +5v (grytstift 1) och GND (grytstift 3), Anslut mitten av krukan (grytstift 2) till LCD V0 stift (stift 3).
LCD VDD Pin (Pin 2) och LCD A Pin (Pin 15) med +5v på Arduino Board.
LCD VSS Pin (Pin 1) och LCD K Pin (Pin 16) med GND på Arduino Board.
AD22100 Temp Sensor anslutning med Arduino UNO Board
Pin 1 (V +) på AD22100 bör anslutas till +5 v på Arduino Board.
Pin 2 (Vo) på AD22100 bör anslutas till Pin A1 på Arduino Board.
Pin 3 (GND) på AD22100 bör anslutas till GND på Arduino Board
Summer (AC-1005G) Anslutning med Arduino UNO-kort
Pin 6 PWM -utgång från Arduino -kortet bör anslutas till +ve -ingången på summern.
GND för Arduino Board bör anslutas med -ve ingång på summer
Steg 3: Arduino -koder
Kompilera den och ladda upp den på Arduino Board och observera demo av Home Automation System
// Programmet börjar här
int val;
int tempPin = A1;
int summer = 6;
#include LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
void setup () {
// lägg din installationskod här för att köra en gång:
lcd.begin (16, 2);
lcd.clear ();
Serial.begin (9600);
pinMode (summer, OUTPUT);
}
void loop () {// lägg din huvudkod här för att köra upprepade gånger:
val = analogRead (tempPin); // AD22100 är ansluten till Pin A1
/*
*För 25C kommer val som 900 det betyder
* 900 motsvarar 1,9375 v
* Överföringsfunktionen är (V +/5) * (1.375 + 22.5 mv/degC * 25 degC), * Läs datablad för AD22100
*/
float cel = ((((1.9375/900) * val) - 1.375) /22.5) * 1000;
flyta farh = (cel*9)/5 + 32;
Serial.print (val);
Serial.println ();
Serial.print ("TEMPRATURE =");
Serial.print (cel); Serial.print (“*C”);
Serial.println ();
om (cel> 26) {
ton (summer, 1000);
lcd.clear ();
lcd.print ("Temp över tröskeln");
lcd.setCursor (0, 1);
lcd.print ("Minska temp");
}
annan
{noTone (summer);
lcd.clear ();
lcd.print (“Temp under control”);
lcd.setCursor (0, 1);
lcd.print (“Temp =“);
lcd.print (cel);
lcd.print (“degC”);
}
fördröjning (500);
}
// Programmet slutar här
Steg 4: Förstå programmet i detalj
Jag ska försöka förklara några delar av koden.
Funktioner relaterade till If/else -uttalande
Om temp är större än tröskelvärdet skickar jag en signal till summern för att slå ett larm och visar på LCD för att sänka tempen med nedanstående avsnitt av koden
om (cel> 26)
{ton (summer, 1000);
lcd.clear ();
lcd.print ("Temp över tröskeln");
lcd.setCursor (0, 1);
lcd.print ("Minska temp");
}
Om inte, skicka det aktuella värdet på temp till LCD och visa att tempen är under kontroll.
annan
{noTone (summer);
lcd.clear ();
lcd.print (“Temp under control”);
lcd.setCursor (0, 1);
lcd.print (“Temp =“);
lcd.print (cel);
lcd.print (“degC”);
}
Funktioner relaterade till summer
ton (summer, 1000) - den här funktionen skickar en 1 khz signal till stiftet som heter summer som definieras som Pin 6 och Magnetic summer är ansluten till Pin 6. noTone (summer) - slutar skicka 1 kHz signal. Därför kommer ringen att sluta
Funktioner relaterade till Temp Sensor
Omvandling av det analoga värdet för tempavläsning till deg C -värdet görs med en överföringsfunktion som kan hittas i AD22100 -databladet enligt nedan.
Vout = (V +/5 V) × (1.375 V + 22.5 mV/° C × TA) och samma värde skrivs ut på LCD -skärmen.
Steg 5: Demo av instruktionerna
När programmet har sammanställts och laddats upp på Arduino UNO -kortet
låt oss försöka öka tempen som avkänns av temperatursensorn AD22100 och njuta av hemmautomationssystemet.
För att öka sensortemperaturen vidrör jag den med lödkolv som finns i Lab.
Du kan titta på demoen här..
Demo av hemautomationssystem