- Material krävs
- Kretsschema
- Relä:
- Beräkning av temperatur med termistor:
- Arduino-kod
- Arbeta med temperaturstyrt hemautomationssystem:
Antag att du sitter i ett rum och känner dig kall och vill att din värmare ska sättas på automatiskt och sedan stängas av efter en tid när rumstemperaturen höjs, så hjälper det här projektet dig att automatiskt styra dina hushållsapparater efter temperaturen. Här kontrollerar vi hushållsapparater med Arduino baserat på temperaturen. Här har vi använt Thermistor för att läsa av temperaturen. Vi har redan kopplat Thermistor med Arduino och visat temperaturen på LCD.
I den här handledningen kommer vi att ansluta en AC-apparat med Relay och göra ett temperaturstyrt hemautomationssystem med Arduino. Den visar också temperatur och apparatstatus på 16 * 2 LCD-skärmen ansluten till kretsen.
Material krävs
- Arduino UNO
- Relä (5v)
- 16 * 2 LCD-skärm
- Glödlampa (CFL)
- NTC-termistor 10k
- Anslutande ledningar
- Motstånd (1k och 10k ohm)
- Potentiometer (10k)
Kretsschema
Detta temperaturbaserade hemautomationssystem består av olika komponenter som Arduino-kort, LCD-display, Relä och termistor. Arbetet beror främst på reläet och termistorn då temperaturen höjs kommer reläet att sättas på och om temperaturen sjunker under det förinställda värdet kommer reläet att stängas av. Hushållsapparaten som är ansluten till reläet slås också på och av i enlighet med detta. Här har vi använt en CFL-lampa som AC-apparat. Hela triggningsprocessen och temperaturvärdesinställningen utförs av det programmerade Arduino-kortet. Det ger oss också information om temperaturförändringen varje halv sekund och apparatstatus på LCD-skärmen.
Relä:
Relä är en elektromagnetisk omkopplare som styrs av liten ström och används för att slå PÅ och AV relativt mycket större ström. Med hjälp av en liten ström kan vi slå på reläet som låter mycket större ström strömma. Ett relä är ett bra exempel på att styra AC-enheterna (växelström) med en mycket mindre likström. Vanligt använt relä är SPDT- relä (Single Pole Double Throw), det har fem terminaler enligt nedan:
När det inte finns någon spänning på spolen, är COM (gemensam) ansluten till NC (normalt sluten kontakt). När det finns en viss spänning på spolen, produceras det elektromagnetiska fältet som lockar ankaret (spaken ansluten till fjädern), och COM och NO (normalt öppen kontakt) ansluts, vilket gör att en större ström kan strömma. Reläer finns i många betyg, här använde vi 5V driftspänningsrelä, vilket gör att 7A-250VAC ström kan flöda.
Reläet konfigureras med hjälp av en liten drivarkrets som består av en transistor, diod och ett motstånd. Transistor används för att förstärka strömmen så att fullström (från likströmskällan - 9v batteri) kan strömma genom en spole för att få full energi. Motståndet används för att ge förspänning till transistorn. Och dioder används för att förhindra omvänd strömflöde när transistorn stängs av. Varje induktorspole producerar lika och motsatt EMF när den plötsligt stängs av, detta kan orsaka permanenta skador på komponenterna, så dioden måste användas för att förhindra omvänd ström. En relämodul är lätt tillgänglig på marknaden med alla dess förarkretsar på kortet eller så kan du skapa den med hjälp av ovanstående komponenter. Här har vi använt 5V relämodul
Beräkning av temperatur med termistor:
Vi vet från spänningsdelarkretsen att:
V ut = (V in * Rt) / (R + Rt)
Så värdet på Rt kommer att vara:
Rt = R (Vin / Vout) - 1
Här kommer Rt att vara motståndet hos termistorn (Rt) och R kommer att vara 10k ohm motstånd.
Denna ekvation används för beräkning av termistormotstånd från det uppmätta värdet på utspänningen Vo. Vi kan få värdet av Voltage Vout från ADC-värdet vid stift A0 i Arduino som visas i Arduino-koden nedan.
Beräkning av temperatur från termistormotståndet
Matematiskt kan termistormotståndet bara beräknas med hjälp av Stein-Hart-ekvationen.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
Där A, B och C är konstanterna är Rt termistormotståndet och ln representerar log.
Det konstanta värdet för termistorn som används i projektet är A = 1.009249522 × 10 −3, B = 2.378405444 × 10 −4, C = 2.019202697 × 10 −7. Dessa konstanta värden kan erhållas från miniräknaren här genom att ange termistorns tre motståndsvärden vid tre olika temperaturer. Du kan antingen få dessa konstanta värden direkt från databladet för termistorn eller så kan du få tre motståndsvärden vid olika temperaturer och få konstantvärdena med den givna miniräknaren.
Så för att beräkna temperaturen behöver vi endast värdet av termistormotstånd. Efter att ha fått värdet Rt från beräkningen ovan, placera värdena i Stein-hart-ekvationen så får vi temperaturvärdet i enheten Kelvin. Eftersom det finns en mindre förändring i utspänningen kan temperaturen förändras.
Arduino-kod
Komplett Arduino-kod för dessa temperaturstyrda hushållsapparater ges i slutet av denna artikel. Här har vi förklarat några delar av det.
För att utföra matematisk operation använder vi rubrikfilen “#include
#omfatta
För installation Relay (som en output) och LCD vid tidpunkten för start vi måste skriva kod i tomrummet inställningsdelen
Ogiltig installation () {lcd.begin (16,2); lcd.clear (); pinMode (RELAY, OUTPUT); }
För beräkning av temperaturen med Stein-Hart-ekvationen med termistorns elektriska motstånd utför vi några enkla matematiska ekvationer i kod som förklaras i beräkningen ovan:
flottör a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07; flyta T, logRt, Tf, Tc; float Thermistor (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1,0 / (a + b * logRt + c * logRt * logRt * logRt)); // Vi får temperaturvärdet i Kelvin från denna Stein-Hart-ekvation Tc = T - 273,15; // Konvertera Kelvin till Celsius Tf = (Tc * 1,8) + 32,0; // Konvertera Kelvin till Fahrenheit returnera T; }
I nedanstående kod läser funktionstermistorn värdet från den analoga stiftet i Arduino och skriver ut temperaturvärdet genom att utföra den matematiska operationen
lcd.print ((Thermistor (analogRead (0))));
Och det värdet tas av termistorfunktionen och sedan börjar beräkningen att skriva ut
float Thermistor (int Vo)
Vi måste skriva koden för tillståndet för att tända och stänga av ljuset i enlighet med temperaturen eftersom vi ställer in temperaturvärdet som om temperaturen ökar mer än 28 grader Celsius tänds lamporna om mindre ljusen förblir släckta. Så när temperaturen går över 28 grader måste vi göra RELAY-stiftet (PIN 8) högt för att göra relämodulen PÅ. Och när temperaturen går under 28 grader måste vi göra RELAY-stiftet lågt för att stänga av relämodulen.
om (Tc> 28) digitalWrite (RELAY, HIGH), lcd.setCursor (0,1), lcd.print ("Ljusstatus: ON"), fördröjning (500); annars om (Tc <28) digitalWrite (RELAY, LOW), lcd.setCursor (0,1), lcd.print ("Ljusstatus: AV"), fördröjning (500);
Arbeta med temperaturstyrt hemautomationssystem:
För att ge leveransen till Arduino kan du driva den via USB till din bärbara dator eller ansluta 12v-adapter. En LCD är gränssnitt med Arduino för att visa temperaturvärden, termistor och relä är ansluten enligt kretsschemat. Den analoga stiftet (A0) används för att kontrollera spänningen i termistorpinnen vid varje ögonblick och efter beräkningen med Stein-Hart-ekvationen genom Arduino-koden kan vi få temperaturen och visa den på LCD i Celsius och Fahrenheit.
När temperaturen ökar mer än 28 grader Celsius Arduino gör att relämodulen slås på genom att stiften 8 är HÖG (där relämodulen är ansluten) när temperaturen går under 28 graders Arduino stänger av relämodulen genom att stifta LÅG. CFL-lampan slås också på och av enligt relämodulen.
Detta system kan vara mycket användbart i projektet för temperaturstyrd fläkt och automatisk AC-temperaturregulator.
Kontrollera också våra många typer av hemautomationsprojekt med olika tekniker och mikrokontroller som: