Obsah:

Inteligentný domáci termostat: 4 kroky
Inteligentný domáci termostat: 4 kroky

Video: Inteligentný domáci termostat: 4 kroky

Video: Inteligentný domáci termostat: 4 kroky
Video: Domoticz a tydenni termostat 2024, November
Anonim
Inteligentný domáci termostat
Inteligentný domáci termostat

Náš inteligentný domáci termostat je program, ktorý dokáže automaticky ušetriť peniaze domácnosti na účtoch za energie na základe preferencií osoby.

Krok 1: Prehľad

Inteligentný domáci termostat používa na meranie teploty v domácnosti teplotný senzor. Tieto údaje o teplote sa vložia do programu, kde rozhodne, či klimatizačný systém potrebuje vykurovať alebo chladiť dom na základe požadovanej teploty vlastníka domu.

Termostat má dva režimy: manuálny a automatický. Manuálny režim, ktorý nastaví teplotu domu na akúkoľvek požadovanú teplotu, nastavenú užívateľom. A automatický režim termostatu automaticky zmení teplotu domu na teploty prednastavené užívateľom. V automatickom režime budú dve nastavenia teploty: vonkajšia teplota a aktuálna teplota. Vonkajšia teplota sa používa na úsporu energie zmenou termostatu na prednastavenú úspornú teplotu vždy, keď používateľ nie je doma. Súčasná teplota sa použije, keď je používateľ doma a chce príjemnú teplotu. V automatickom režime termostatu pohybové senzory aktívne hľadajú pohyb, aby zistili, či je niekto doma alebo nie. Na základe ich údajov bude domáca teplota nastavená na teplotu vonku alebo na súčasnú teplotu.

Krok 2: Diely a materiály

(15) Prepojovacie vodiče

(4) 220 ohmové odpory

(1) 10K ohmový odpor

(1) Snímač teploty

(1) Fotografický odpor

(1) Mini DC prevodovka DAGU

(1) Dióda

(1) Tranzistor

(1) Fotorezistor

(1) Breadboard

(1) Arduino MKR

Krok 3: Okruh

Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod
Obvod

Obrázok 1 = Veľký obrázok vľavo

Obrázok 2 = Vpravo hore

Obrázok 3 = Stredný pravý

Obrázok 4 = Vpravo dole

postava 1

Pomocou vyššie uvedeného diagramu sme zapojili všetky naše tri diódy LED. Rozložili sme každú LED diódu, pretože sme pracovali s veľkou doskou na chlieb. Pri menších doskách na chlieb môže byť potrebné umiestniť LED diódy bližšie k sebe. Nie je tiež potrebné napájať dosku, pretože diódy LED odoberajú tak málo energie. Pre diódy LED sme nepoužili 5V pripojenie na doske. Každé pripojenie LED k nášmu Arduinu bolo vykonané tak, ako je zelený vodič vyššie. Naše červené, modré a zelené LED diódy sú prepojené s digitálnym kolíkom 8, 9 a 10, v tomto obrázku sú označené červeným, modrým a zeleným vodičom.

Obrázok 2

Vyššie uvedený diagram bol použitý na zapojenie fotoodporu. Vykonali sme niekoľko vlastných opráv; koncepty sú však stále rovnaké. Fotorezistor musí byť pripojený k analógovému kolíku, ktorý máme v kolíku A1. Na odpor najbližšie k fotorezistoru používajte odpor 10 K ohmov.

Obrázok 3

Toto je schéma používaná na zapojenie snímača teploty. Použitý tranzistor si určite nepomýlite s teplotným snímačom. Vyzerajú takmer identicky. Snímač teploty bude pravdepodobne mať na plochej strane snímača napísaný TMP alebo iný skript. Zapojenie je veľmi jednoduché, náš snímač teploty je zapojený do analógového kolíka A0 bielym vodičom.

Obrázok 4

Vyššie uvedený obrázok bol použitý na zapojenie prevodovky DAGU Mini DC Gearbox. Zelený vodič pripojený k prevodovke je v skutočnosti červený vodič, ktorý je k nemu pripojený na našom obrázku. Prevodovka je v našom modeli prepojená s digitálnym kolíkom 11 oranžovým vodičom. Použitý tranzistor si určite nepomýlite s teplotným snímačom. Vyzerajú takmer identicky. Snímač teploty bude pravdepodobne mať na plochej strane snímača napísaný TMP alebo iný skript. Tu musíte použiť tranzistor a nie snímač teploty.

Krok 4: Arduino kód

Tu sú vysvetlené najdôležitejšie časti kódu. Kód nebude fungovať iba s tým, čo je tu uvedené. Ak chcete získať úplný funkčný kód, v spodnej časti stránky je odkaz.

Pri vytváraní kódu programovateľného termostatu je jednou z prvých vecí, ktoré urobíte, nastavenie senzorov a vytvorenie slučky for, ktorá bude neustále získavať hodnoty teploty z teplotného senzora.

Nastavenie snímača teploty a LED:

tempPin = 'A0';%definuje anonymnú funkciu, ktorá prevádza napätie na teplotu tempCfromVolts = @(volty) (volty-0,5)*100; samplingDuration = 5; %sekúnd. Ako dlho chceme vzorkovať na vzorkovanieInterval = 1; %Koľko sekúnd medzi hodnotami teploty %nastaviť vektor vzorkovacích časov vzorkovanieČasy = 0: vzorkovanieInterval: vzorkovanieDoba trvania; %vypočítajte počet vzoriek na základe trvania a intervalu numSamples = dĺžka (vzorkovacie časy); %preallocate temp variables and variable for the number of read it will store tempC = nuly (numSamples, 1); tempF = tempC; %Tentoraz použijeme slučku for, aby sme vykonali vopred určený počet %odčítaní teploty

Slučka for:

pre index = 1: numSamples %prečítajte napätie na tempPin a uložte do premenných voltov volty = readVoltage (a, tempPin); tempC (index) = -1*tempCfromVolts (volty+0,3); tempF (index) = tempC (index)*(9/5) +32; %Formátovaný výstup displeja komunikujúci s údajmi o aktuálnej teplote fprintf („Teplota v %d sekundách je %5,2f C alebo %5,2f F. / n“,… vzorkovacie časy (index), tempC (index), tempF (index)); %všimnite si, že tento výstup z displeja bude viditeľný iba naraz po % %spustení kódu, pokiaľ neskopírujete/prilepíte kód do súboru mfile obyčajného skriptu. pauza (samplingInterval) %oneskorenie do konca ďalšej vzorky

Ďalej vytvoríme používateľskú ponuku, aby sa používateľ mohol rozhodnúť, či uvedie termostat do manuálneho alebo automatického režimu. Chybový kód vytvoríme aj vtedy, ak si používateľ nevyberie ani jednu z týchto dvoch možností.

Ponuka manuálneho režimu vyžaduje, aby užívateľ nastavil číslo teploty termostatu, potom bude buď vykurovať domácnosť, chladiť domácnosť alebo bude nečinný na základe nameraných hodnôt. Na nastavenie tejto časti kódu ste použili hodnoty teploty z teplotného senzora a vytvorili ste kód, ktorý ochladí domácnosť, keď je teplota vyššia ako nastavená teplota, a vytopí domácnosť, keď je teplota nižšia ako nastavená teplota.

Akonáhle máte namerané hodnoty teploty, môžete vytvoriť kód, ktorý oznámi termostatu, aby chladil domácnosť, keď je teplota vyššia ako nastavená teplota, a vykuroval dom, keď je teplota nižšia ako nastavená teplota. U prototypu sa modré svetlo rozsvieti, keď by mal termostat vychladnúť, a červené svetlo, keď sa termostat zahrieva.

Nastavenie ponuky:

options = {'Automatic', 'Manual'}; imode = menu ('Mode', options) if imode> 0 h = msgbox (['You asked' options {imode}]); else h = warndlg ('Zatvorili ste menu bez výberu') end waitfor (h);

Manuálny režim vyžaduje, aby užívateľ zadal teplotu pre termostat, a potom na základe údajov z teplotného senzora začne buď chladiť dom vykurovania domu. Ak je hodnota snímača teploty vyššia ako nastavená teplota, začne chladiť domácnosť. Ak je hodnota snímača teploty nižšia ako nastavená teplota, vykuruje domácnosť.

Spustí sa manuálny režim:

if imode == 2 dlg_prompts = {'Akú teplotu by ste uprednostnili?'}; dlg_title = 'Teplota'; dlg_defaults = {'68'}; opts. Resize = 'zapnuté'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Zrušili ste príkaz inputdlg'); else temp_manual = str2double (dlg_ans {1}) %[Pridať snímku nastavenia regulácie teploty nižšie] koniec

Do príkazu if pre manuálny režim musíte napísať používateľské rozhranie ponuky, aby si používateľ vybral požadovanú domácu teplotu, a potom implementovať príkaz while, ktorý bude regulovať domácu teplotu.

Nastavenie regulácie teploty:

zatiaľ čo temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); skončiť, kým temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); koniec

Automatický režim vyžaduje viac vstupov ako manuálny režim. Po vstupe do automatického režimu používateľ nastaví svojmu termostatu normálnu a neprítomnú teplotu. Po ich zvolení sa na základe toho, v ktorom režime je termostat, vráti späť do režimu regulácie teploty

Nastavte automatický režim:

elseif imode == 1 dlg_prompts = {'Normal', 'Away'}; dlg_title = 'Nastavenia teploty'; dlg_defaults = {'68', '64'}; opts. Resize = 'zapnuté'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Zrušili ste príkaz inputdlg'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) koniec čakania (h); %[Pridať krok detektora pohybu nižšie]

Tiež musíme nastaviť snímač pohybu pre nastavenia automatického režimu. Keď detektor pohybu zachytí pohyb, udrží teplotu na aktuálnom nastavení teploty, inak sa nastaví na teplotu mimo domu.

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); koniec konca, zatiaľ čo 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 pre zápis ventilátoraDigitalPin (a, 'D9', 1); koniec koniec

Celý kód nájdete tu.

Odporúča: