Innehållsförteckning:

Smart hemtermostat: 4 steg
Smart hemtermostat: 4 steg

Video: Smart hemtermostat: 4 steg

Video: Smart hemtermostat: 4 steg
Video: 🏠 Best 10 Smart Home Thermostats of 2023 | Trends & Tips for Setup Home Automation Deals Unveiled! 2024, Juli
Anonim
Smart hemtermostat
Smart hemtermostat

Vår Smart Home Thermostat är ett program som automatiskt kan spara hushållets pengar på elräkningar baserat på en persons preferenser.

Steg 1: Översikt

Smart Home -termostaten använder en temperatursensor för att få temperaturen i hemmet. Denna temperaturavläsning sätts in i programmet där det avgör om luftkonditioneringssystemet behöver värma eller kyla huset baserat på den önskade husägarens temperatur.

Det finns två lägen för termostaten: manuell och automatisk. Det manuella läget som justerar hemmets temperatur till önskad temperatur ställs in av användaren. Och termostatens automatiska läge kommer automatiskt att ändra temperaturen i hemmet till temperaturer som är förinställda av användaren. Det kommer att finnas två temperaturinställningar för det automatiska läget: bortaktemperatur och nuvarande temperatur. Bortemperaturen används för att spara energi genom att ändra termostaten till en förinställd energisparande temperatur när användaren inte är hemma. Den nuvarande temperaturen kommer att användas när användaren är hemma och vill ha en behaglig temperatur. I termostatens automatiska läge letar rörelsesensorer aktivt efter rörelse för att avgöra om någon är hemma eller inte. Baserat på deras avläsning kommer hemtemperaturen antingen att ställas in på bortatemperatur eller nuvarande temperatur.

Steg 2: Delar och material

(15) Bygeltrådar

(4) 220 Ohm motstånd

(1) 10K Ohm motstånd

(1) Temp Sensor

(1) Foto motstånd

(1) DAGU Mini DC -växellåda

(1) Diod

(1) Transistor

(1) Fotoresistor

(1) Brödbräda

(1) Arduino MKR

Steg 3: Krets

Krets
Krets
Krets
Krets
Krets
Krets
Krets
Krets

Figur 1 = Stor vänster bild

Figur 2 = Överst till höger

Figur 3 = Mitt höger

Bild 4 = Nedre högra

Figur 1

Med hjälp av diagrammet ovan kopplade vi var och en av våra tre lysdioder. Vi sprang ut varje LED sedan vi arbetade med en stor brödbräda. För mindre brödbrädor kan det vara nödvändigt att sätta lysdioderna närmare varandra. Det är också onödigt att driva brödbrädan eftersom lysdioderna drar så lite ström. Vi använde inte 5V -anslutningen på brödbrädan för lysdioderna. Varje anslutning från lysdioderna till vår Arduino gjordes som den gröna tråden är ovan. Våra röda, blåa och gröna lysdioder är anslutna till Digital Pin 8, 9 respektive 10, markerade med en röd, blå och grön tråd i vår bild.

figur 2

Diagrammet ovan användes för att leda fotoresistorn. Vi gjorde några egna korrigeringar; men begreppen är fortfarande desamma. Fotoresistorn måste vara ansluten till den analoga stiftet som vi har i stift A1. Se till att använda ett 10K ohm motstånd för motståndet närmast fotoresistorn.

Figur 3

Detta är diagrammet som används för att koppla temperaturgivaren. Var noga med att inte misstaga transistorn som används här med temperaturgivaren. De ser nästan identiska ut. Temperatursensorn kommer sannolikt att ha TMP eller något annat skript skrivet på sensorns platta sida. Ledningarna här är väldigt enkla, vår temperatursensor är ansluten till analog stift A0 med en vit kabel.

Figur 4

Bilden ovan användes för att koppla DAGU Mini DC -växellådan. Den gröna tråden som är ansluten till växellådan är faktiskt den röda tråden som är ansluten till den i vår bild. Växellådan är ansluten till digital stift 11 med en orange ledning i vår modell. Var noga med att inte misstaga transistorn som används här med temperaturgivaren. De ser nästan identiska ut. Temperatursensorn kommer sannolikt att ha TMP eller något annat skript skrivet på sensorns platta sida. Du måste använda transistorn här och inte temperaturgivaren.

Steg 4: Arduino -kod

Här förklaras de viktigaste delarna av koden. Koden fungerar inte bara med det som anges här. För att få hela arbetskoden finns en länk längst ner på sidan.

När du skapar den programmerbara termostatkoden är en av de första sakerna du gör att konfigurera sensorerna och skapa en for loop som ständigt får temperaturavläsningar från temperaturgivaren.

Inställning av temperatursensor och LED:

tempPin = 'A0';%definierar anonym funktion som omvandlar spänningen till temperatur tempCfromVolts = @(volt) (volt-0,5)*100; samplingDuration = 5; %sekunder. Hur länge vill vi prova för samplingInterval = 1; %Hur många sekunder mellan temperaturavläsningar %ställ in vektor för provtagningstider samplingTimes = 0: samplingInterval: samplingDuration; %beräkna antalet prover baserat på varaktigheten och intervallet numSamples = length (samplingTimes); %fördela tempvariabler och variabler för antalet avläsningar det kommer att lagra tempC = nollor (numSamples, 1); tempF = tempC; %Vi använder en for loop den här gången för att ta ett förutbestämt antal %temperaturavläsningar

För -slingan:

för index = 1: numSamples %läser spänningen vid tempPin och lagrar i variabel volt volt = readVoltage (a, tempPin); tempC (index) = -1*tempCfromVolts (volt+0,3); tempF (index) = tempC (index)*(9/5) +32; %Displayformaterad utgång som kommunicerar aktuell temperaturavläsning fprintf ('Temperatur vid %d sekunder är %5.2f C eller %5.2f F. / n', … samplingTimes (index), tempC (index), tempF (index)); %Observera att den här visningsutmatningen bara blir synlig på en gång efter att koden har körts %om du inte kopierar/klistrar in koden till en vanlig skriptmfil. paus (samplingInterval) %fördröjning till nästa provslut

Därefter skapar vi vår användarmeny för användaren att bestämma om termostaten ska sättas i manuellt eller automatiskt läge. Vi skapar också en felkod om användaren inte väljer något av de två alternativen.

Menyn Manuellt läge kräver att användaren ställer in ett nummer för termostattemperaturen, sedan värmer det antingen hemmet, kyler hemmet eller är inaktivt baserat på avläsningar. För att ställa in denna del av koden använde du temperaturavläsningar från temperaturgivaren och skapade kod som kyler hemmet när temperaturavläsningen är högre än den inställda temperaturen och värmer bostaden när temperaturavläsningen är lägre än den inställda temperaturen.

När du har fått temperaturavläsningarna kan du skapa koden som säger till termostaten att kyla hemmet när temperaturavläsningen är högre än den inställda temperaturen och värma upp hemmet när temperaturavläsningen är lägre än den inställda temperaturen. För prototypen tänds det blå ljuset när termostaten ska svalna och den röda lampan tänds när termostaten ska värmas.

Menyinställning:

choice = {'Automatisk', 'Manuell'}; imode = meny ('Läge', val) om imode> 0 h = msgbox (['Du valde' val {imode}]); annars h = warndlg ('Du stängde menyn utan att välja') sluta vänta på (h);

Det manuella läget kräver att användaren matar in en temperatur för termostaten, sedan baserat på avläsningarna från temperaturgivaren, börjar den antingen kyla huset för uppvärmning av huset. Om temperaturgivarens avläsning är högre än den inställda temperaturen, börjar den kyla hemmet. Om temperaturgivarens avläsning är lägre än den inställda temperaturen värmer den upp hemmet.

Det manuella läget startar:

om imode == 2 dlg_prompts = {'Vilken temperatur skulle du föredra?'}; dlg_title = 'Temperatur'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Du avbröt kommandot inputdlg'); annars temp_manual = str2double (dlg_ans {1}) %[Lägg till bild för temperaturregleringsinställningar nedan] slut

Inuti if -satsen för det manuella läget måste du skriva menygränssnittet för användaren att välja önskad hemtemperatur och sedan implementera en while -sats som reglerar hemtemperaturen.

Inställning av temperaturreglering:

medan temp_manuell <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); avsluta medan temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); slutet

Automatiskt läge kräver fler ingångar än det manuella läget. Efter att ha gått in i automatiskt läge, kommer användaren att ställa in en normal och en borta temperatur för sin termostat. Efter att ha valt dessa, baserat på vilket läge termostaten är i, går den tillbaka till temperaturregleringsläget

Ställ in det automatiska läget:

elseif imode == 1 dlg_prompts = {'Normal', 'Borta'}; dlg_title = 'Temperaturinställningar'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Du avbröt kommandot inputdlg'); annars temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) sluta vänta på (h); %[Lägg till rörelsedetektor Steg nedan]

Vi måste också ställa in rörelsesensorn för inställningarna för automatiskt läge. När rörelsedetektorn tar upp rörelse, kommer den att behålla temperaturen på den aktuella temperaturinställningen, annars kommer den att ställas in på borttemperaturinställningen.

Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) vilken pin -röd lampa som helst finns i även motor för fläktskrivDigitalPin (a, 'D9', 1); slutet än medan lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %ändras till vilken stift det normala ljuset är i medan temp tempF writeDigitalPin (a, 'D6', 1) oavsett stiftets röda ljus är i motor för fläkt writeDigitalPin (a, 'D9', 1); slutet slut

Hela koden hittar du här.

Rekommenderad: