Innehållsförteckning:
Video: Smart hemtermostat: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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:
Smart Desk LED -ljus - Smart Lighting W/ Arduino - Neopixels arbetsyta: 10 steg (med bilder)
Smart Desk LED -ljus | Smart Lighting W/ Arduino | Neopixels arbetsyta: Nu till dags spenderar vi mycket tid hemma, studerar och arbetar virtuellt, så varför inte göra vår arbetsyta större med ett anpassat och smart belysningssystem Arduino och Ws2812b lysdioder baserade. Här visar jag dig hur du bygger din Smart LED -lampa i skrivbordet som
Lägg till en användarmonitor till en hemtermostat: 4 steg
Lägg till en användarmonitor till en hemtermostat: Länge, länge sedan, långt innan det fanns något som en " smart " termostat, jag hade en hemtermostat som gav en daglig (tror jag - kanske varje vecka) totalt " i tid " för mitt värme- och luftkonditioneringssystem. saker förändrats … las
Hardware and Software Hack Smart Devices, Tuya and Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: 7 Steg
Hardware and Software Hack Smart Devices, Tuya and Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: I den här instruktionsboken visar jag dig hur jag blinkade flera smarta enheter med min egen firmware, så jag kan styra dem med MQTT via min Openhab -inställning. nya enheter när jag hackade dem. Naturligtvis finns det andra mjukvarubaserade metoder för att flasha anpassade f
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: 10 steg (med bilder)
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: Har du någonsin velat ha en smart klocka? I så fall är detta lösningen för dig! Jag gjorde Smart Alarm Clock, det här är en klocka som du kan ändra alarmtiden enligt webbplatsen. När larmet går går det ett ljud (summer) och 2 lampor lyser
IoT -baserat smart trädgård och smart jordbruk med ESP32: 7 steg
IoT -baserat smart trädgårdsskötsel och smart jordbruk Användning av ESP32: Världen förändras med tiden och jordbruk. Numera integrerar människor elektronik på alla områden och jordbruket är inget undantag för detta. Denna sammanslagning av elektronik i jordbruket hjälper bönder och människor som förvaltar trädgårdar