Obsah:

Inteligentní domácí termostat: 4 kroky
Inteligentní domácí termostat: 4 kroky

Video: Inteligentní domácí termostat: 4 kroky

Video: Inteligentní domácí termostat: 4 kroky
Video: Eve Thermo | Kolik dokáže ušetři chytrý ventil na topení? (Alisczech vol. 639) 2024, Červenec
Anonim
Chytrý domácí termostat
Chytrý domácí termostat

Náš inteligentní domácí termostat je program, který dokáže automaticky ušetřit peníze domácnosti na účtech za energie na základě preferencí osoby.

Krok 1: Přehled

Inteligentní domácí termostat používá teplotní čidlo k měření teploty v domácnosti. Tato hodnota teploty je vložena do programu, kde rozhodne, zda klimatizační systém potřebuje vytápět nebo chladit dům na základě požadované teploty majitele domu.

Termostat má dva režimy: manuální a automatický. Manuální režim, který nastaví teplotu domu na jakoukoli požadovanou teplotu, nastavenou uživatelem. A automatický režim termostatu automaticky změní teplotu domova na teploty přednastavené uživatelem. V automatickém režimu budou dvě nastavení teploty: venkovní teplota a aktuální teplota. Vzdálená teplota se používá k úspoře energie změnou termostatu na přednastavenou úspornou teplotu, kdykoli uživatel není doma. Aktuální teplota bude použita, když je uživatel doma a chce příjemnou teplotu. V automatickém režimu termostatu pohybové senzory aktivně vyhledávají pohyb a zjišťují, zda je někdo doma nebo ne. Na základě jejich odečtu bude domácí teplota nastavena na venkovní teplotu nebo aktuální teplotu.

Krok 2: Díly a materiály

(15) Propojovací vodiče

(4) 220 ohmové odpory

(1) 10K ohmový odpor

(1) Čidlo teploty

(1) Fotografický odpor

(1) Mini DC převodovka DAGU

(1) Dioda

(1) Tranzistor

(1) Fotorezistor

(1) Breadboard

(1) Arduino MKR

Krok 3: Okruh

Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod

Obrázek 1 = Velký levý obrázek

Obrázek 2 = Vpravo nahoře

Obrázek 3 = Střední vpravo

Obrázek 4 = Vpravo dole

Obrázek 1

Pomocí výše uvedeného schématu jsme zapojili všechny naše tři LED diody. Rozdělili jsme každou LED, protože jsme pracovali s velkým chlebovým prkénkem. U menších chlebových desek může být nutné umístit diody blíže k sobě. Rovněž není nutné napájet prkénko, protože diody LED odebírají tak málo energie. Pro LED diody jsme nepoužili 5V připojení na desce. Každé připojení LED diod k našemu Arduinu bylo provedeno tak, jak je nahoře zelený vodič. Naše červené, modré a zelené LED diody jsou připojeny k digitálnímu pinu 8, 9 a 10, v daném obrázku jsou označeny červeným, modrým a zeleným vodičem.

Obrázek 2

Výše uvedený diagram byl použit k zapojení fotorezistoru. Provedli jsme několik vlastních oprav; koncepty jsou však stále stejné. Fotorezistor musí být připojen k analogovému pinu, který máme v pinu A1. Pro odpor nejblíže fotorezistoru použijte 10k ohmový odpor.

Obrázek 3

Toto je schéma použité k připojení teplotního senzoru. Použitý tranzistor si určitě nezaměňte s teplotním čidlem. Vypadají téměř identicky. Teplotní senzor bude pravděpodobně mít na ploché straně senzoru napsaný TMP nebo jiný skript. Zapojení je zde velmi jednoduché, náš teplotní senzor je zapojen do analogového pinu A0 bílým vodičem.

Obrázek 4

Výše uvedený obrázek byl použit k zapojení převodovky DAGU Mini DC Gearbox. Zelený vodič připojený k převodovce je ve skutečnosti červený vodič, který je k němu připojen na našem obrázku. Převodovka je v našem modelu připojena k digitálnímu kolíku 11 oranžovým vodičem. Použitý tranzistor si určitě nezaměňte s teplotním čidlem. Vypadají téměř identicky. Teplotní senzor bude pravděpodobně mít na ploché straně senzoru napsaný TMP nebo jiný skript. Zde musíte použít tranzistor a ne teplotní čidlo.

Krok 4: Arduino kód

Zde jsou vysvětleny nejdůležitější části kódu. Kód nebude fungovat pouze s tím, co je zde uvedeno. Chcete -li získat úplný pracovní kód, je v dolní části stránky odkaz.

Při vytváření kódu programovatelného termostatu je jednou z prvních věcí, které provedete, nastavení senzorů a vytvoření smyčky for, která bude neustále získávat hodnoty teploty z teplotního senzoru.

Nastavení teplotního senzoru a LED:

tempPin = 'A0';%definuje anonymní funkci, která převádí napětí na teplotu tempCfromVolts = @(volty) (volty-0,5)*100; samplingDuration = 5; %sekundy. Jak dlouho chceme vzorkovat pro samplingInterval = 1; %Kolik sekund mezi odečty teploty %nastavit vektor vzorkovací doby vzorkování Časy = 0: vzorkování Interval: vzorkováníDoba trvání; %vypočítat počet vzorků na základě doby trvání a intervalu numSamples = délka (samplingTimes); %preallocate temp variables and variable for the number of read it will store tempC = zeros (numSamples, 1); tempF = tempC; %Tentokrát použijeme smyčku for, abychom provedli předem určený počet %teplotních odečtů

Smyčka pro:

pro index = 1: numSamples %přečtěte napětí na tempPin a uložte do proměnných voltů volts = readVoltage (a, tempPin); tempC (index) = -1*tempCfromVolts (volty+0,3); tempF (index) = tempC (index)*(9/5) +32; %Formátovaný výstup displeje sdělující aktuální čtení teploty fprintf ('Teplota v %d sekundách je %5,2f C nebo %5,2f F. / n', … vzorkovací časy (index), tempC (index), tempF (index)); %Všimněte si, že tento výstup zobrazení bude viditelný pouze najednou po % %spuštění kódu, pokud nezkopírujete/vložíte kód do souboru mfile prostého skriptu. pauza (samplingInterval) %zpoždění do konce dalšího vzorku

Dále vytvoříme uživatelské menu, aby se uživatel rozhodl, zda přepne termostat do manuálního nebo automatického režimu. Pokud uživatel nevybere ani jednu z těchto dvou možností, vytvoříme také chybový kód.

Nabídka Manuální režim vyžaduje, aby uživatel nastavil číslo pro teplotu termostatu, poté buď vytápí dům, ochlazuje dům nebo je nečinný na základě naměřených hodnot. K nastavení této části kódu jste použili odečty teploty z teplotního čidla a vytvořili kód, který ochlazuje dům, když je teplota vyšší než nastavená teplota, a vytápí dům, když je teplota nižší než nastavená teplota.

Jakmile máte naměřené hodnoty teploty, můžete vytvořit kód, který řekne termostatu, aby ochladil dům, když je teplota vyšší než nastavená teplota, a vytápěl dům, když je teplota nižší než nastavená teplota. U prototypu se modré světlo rozsvítí, když by měl termostat vychladnout, a červené světlo, když se termostat zahřívá.

Nastavení nabídky:

options = {'Automatic', 'Manual'}; imode = menu ('Mode', options) if imode> 0 h = msgbox (['You asked' options {imode}]); else h = warndlg ('Zavřeli jste nabídku, aniž byste si vybrali') end waitfor (h);

Manuální režim vyžaduje, aby uživatel zadal teplotu pro termostat, poté na základě odečtů z teplotního čidla začne buď ochlazovat dům vytápění domu. Pokud je hodnota teplotního čidla vyšší než nastavená teplota, začne dům ochlazovat. Pokud je hodnota teplotního čidla nižší než nastavená teplota, vytápí dům.

Spustí se manuální režim:

if imode == 2 dlg_prompts = {'Jakou teplotu byste upřednostnili?'}; dlg_title = 'Teplota'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Zrušili jste příkaz inputdlg'); else temp_manual = str2double (dlg_ans {1}) %[Přidat snímek nastavení regulace teploty níže] konec

Uvnitř příkazu if pro manuální režim musíte napsat rozhraní nabídky, aby si uživatel vybral požadovanou domácí teplotu, a poté implementovat příkaz while, který bude regulovat domácí teplotu.

Nastavení regulace teploty:

zatímco temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); konec, zatímco temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); konec

Automatický režim vyžaduje více vstupů než manuální režim. Po vstupu do automatického režimu uživatel nastaví pro svůj termostat normální a nepřítomnou teplotu. Po jejich výběru se podle toho, v jakém režimu se termostat nachází, vrátí zpět do režimu regulace teploty

Nastavte automatický režim:

elseif imode == 1 dlg_prompts = {'Normální', 'Pryč'}; dlg_title = 'Nastavení teploty'; dlg_defaults = {'68', '64'}; opts. Resize = 'zapnuto'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Zrušili jste příkaz inputdlg'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) konec čekání (h); %[Přidat krok detektoru pohybu níže]

Musíme také nastavit pohybový senzor pro nastavení automatického režimu. Když detektor pohybu zachytí pohyb, udrží teplotu na aktuálním nastavení teploty, v opačném případě se nastaví na teplotu venkovní teploty.

Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) whatever pin red light is in also motor for fan writeDigitalPin (a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %change to whatever pin the normal light is in while temp tempF writeDigitalPin (a, 'D6', 1) whatever pin red light is in also motor pro zápis ventilátoruDigitalPin (a, 'D9', 1); konec konec

Celý kód najdete zde.

Doporučuje: