Tartalomjegyzék:

Intelligens otthoni termosztát: 4 lépés
Intelligens otthoni termosztát: 4 lépés

Videó: Intelligens otthoni termosztát: 4 lépés

Videó: Intelligens otthoni termosztát: 4 lépés
Videó: 3 мегапикселя камера видеонаблюдения. Стоит ли покупать? На что влияет разрешение? 2024, Július
Anonim
Intelligens otthoni termosztát
Intelligens otthoni termosztát

Intelligens otthoni termosztátunk egy olyan program, amely automatikusan megtakarítja a háztartások pénzét a közüzemi számlákon az adott személy preferenciái alapján.

1. lépés: Áttekintés

Az intelligens otthoni termosztát hőmérséklet -érzékelőt használ az otthon hőmérsékletének meghatározására. Ezt a hőmérsékleti értéket a programba helyezik, ahol a kívánt lakástulajdonos hőmérséklete alapján eldönti, hogy a légkondicionálónak fűteni vagy hűteni kell -e a házat.

A termosztátnak két módja van: manuális és automatikus. A manuális mód, amely a felhasználó által beállított kívánt hőmérsékletre állítja be az otthon hőmérsékletét. A termosztát automatikus üzemmódja pedig automatikusan megváltoztatja a lakás hőmérsékletét a felhasználó által előre beállított hőmérsékletre. Az automatikus üzemmódhoz két hőmérséklet -beállítás áll rendelkezésre: távoli hőmérséklet és jelenlegi hőmérséklet. A távoli hőmérséklet energiatakarékosságra szolgál, ha a termosztátot előre beállított energiatakarékos hőmérsékletre változtatja, amikor a felhasználó nincs otthon. A jelenlegi hőmérsékletet akkor kell használni, ha a felhasználó otthon van, és kényelmes hőmérsékletet szeretne. A termosztát automatikus üzemmódjában a mozgásérzékelők aktívan keresik a mozgást annak megállapítására, hogy valaki otthon van -e vagy sem. A leolvasott adatok alapján az otthoni hőmérséklet vagy az idegen, vagy a jelenlegi hőmérsékletre lesz beállítva.

2. lépés: Alkatrészek és anyagok

(15) Jumper vezetékek

(4) 220 ohmos ellenállások

(1) 10K ohmos ellenállás

(1) Hőmérséklet érzékelő

(1) Fényellenállás

(1) DAGU Mini DC sebességváltó

(1) Dióda

(1) Tranzisztor

(1) Fotorezisztor

(1) Kenyeretábla

(1) Arduino MKR

3. lépés: Áramkör

Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör

1. ábra = Nagy bal oldali kép

2. ábra = Jobb felső

3. ábra = Jobbközép

4. ábra = Jobb alsó

1.ábra

A fenti ábra segítségével bekötöttük mindhárom LED -edet. Minden LED -et elosztottunk egymástól, mivel egy nagy kenyértáblával dolgoztunk. Kisebb kenyértáblák esetén szükség lehet a LED -ek közelebb való elhelyezésére. Ezenkívül szükségtelen a kenyérsütő tápellátása, mivel a LED -ek olyan kevés energiát fogyasztanak. A LED -ekhez nem a kenyértáblán lévő 5V -os csatlakozót használtuk. A LED -ek és az Arduino -nk között minden kapcsolat úgy történt, mint a zöld vezeték fent. Piros, kék és zöld LED -jeink a 8 -as, 9 -es és 10 -es digitális tüskéhez vannak csatlakoztatva, képünkön piros, kék és zöld vezetékkel jelölve.

2. ábra

A fenti diagramot használtuk a fényellenállás vezetékezésére. Néhány saját korrekciót hajtottunk végre; azonban a fogalmak továbbra is ugyanazok. A fényellenállást az analóg tűhöz kell csatlakoztatni, amely az A1 -es tűben van. Ügyeljen arra, hogy 10K ohmos ellenállást használjon a fotorezisztorhoz legközelebb álló ellenálláshoz.

3. ábra

Ez az ábra a hőmérséklet -érzékelő vezetékezésére szolgál. Ügyeljen arra, hogy ne tévessze össze az itt használt tranzisztorokat a hőmérséklet -érzékelővel. Majdnem egyformának tűnnek. A hőmérséklet -érzékelő valószínűleg TMP -t vagy más szkriptet ír az érzékelő lapos oldalára. A kábelezés itt nagyon egyszerű, a hőmérséklet -érzékelőnk fehér vezetékkel van csatlakoztatva az A0 analóg érintkezőhöz.

4. ábra

A fenti képet a DAGU Mini DC sebességváltó huzalozására használtuk. A sebességváltóhoz rögzített zöld vezeték valójában a képen látható piros vezeték. A sebességváltó modellünkben narancssárga vezetékkel csatlakozik a 11. digitális csaphoz. Ügyeljen arra, hogy ne tévessze össze az itt használt tranzisztorokat a hőmérséklet -érzékelővel. Majdnem egyformának tűnnek. A hőmérséklet -érzékelő valószínűleg TMP -t vagy más szkriptet ír az érzékelő lapos oldalára. Itt a tranzisztort kell használni, és nem a hőmérséklet -érzékelőt.

4. lépés: Arduino kód

Itt ismertetjük a kód legfontosabb részeit. A kód nem csak az itt megadottal fog működni. A teljes működőkód megtekintéséhez az oldal alján található egy link.

A programozható termosztát kódjának létrehozásakor az egyik első dolog, amit meg kell tennie, az érzékelők beállítása, és egy for -hurok létrehozása, amely folyamatosan le fogja olvasni a hőmérséklet -érzékelőket.

A hőmérséklet -érzékelő és a LED beállítása:

tempPin = 'A0';%meghatározza a névtelen függvényt, amely a feszültséget hőmérsékletté alakítja tempCfromVolts = @(volt) (0,5 volt)*100; samplingDuration = 5; %másodperc. Meddig akarunk mintát venni a mintavételhezInterval = 1; %Hány másodperc a hőmérsékleti leolvasások között %beállította a mintavételi idők vektorát samplingTimes = 0: samplingInterval: samplingDuration; %kiszámítja a minták számát az időtartam és az intervallum alapján numSamples = length (samplingTimes); %előre kiosztott hőmérsékleti változók és változó az olvasások számához tárolja a tempC = nullákat (numSamples, 1); tempF = tempC; %Ezúttal egy for ciklusot használunk egy előre meghatározott számú %-os hőmérséklet leolvasásához

A for hurok:

index = 1 esetén: numSamples %leolvassa a feszültséget a tempPin -nél, és tárolja változó voltban, voltban = readVoltage (a, tempPin); tempC (index) = -1*tempCfromVolts (volt+0,3); tempF (index) = tempC (index)*(9/5) +32; %Megjeleníti a formázott kimenetet, amely kommunikálja az aktuális hőmérsékletet fprintf ('A hőmérséklet %d másodperc alatt %5,2f C vagy %5,2f F. / n',… samplingTimes (index), tempC (index), tempF (index)); %megjegyzés: ez a kijelző kimenet csak akkor lesz látható, ha a kód végrehajtása befejeződött, hacsak nem másolja/illessze be a kódot egy egyszerű script mfile -be. szünet (samplingInterval) %késés a minta következő végéig

Ezután létrehozzuk a felhasználói menüt, hogy a felhasználó eldönthesse, hogy a termosztátot kézi vagy automatikus üzemmódba állítja -e. Hibakódot is létrehozunk, ha a felhasználó nem választja ki a két lehetőség egyikét sem.

A Kézi üzemmód menüben a felhasználónak be kell állítania egy számot a termosztát hőmérsékletére, akkor az vagy a fűtést, a ház hűtését vagy a leolvasások alapján tétlen állapotot mutat. A kód ezen részének beállításához a hőmérséklet -érzékelő hőmérséklet -leolvasásait használta, és olyan kódot hozott létre, amely lehűti az otthont, ha a hőmérséklet -érték magasabb, mint a beállított hőmérséklet, és felmelegíti a lakást, ha a hőmérséklet -érték alacsonyabb, mint a beállított hőmérséklet.

Ha megvannak a hőmérsékleti értékek, létrehozhat egy kódot, amely jelzi a termosztátnak, hogy hűtse le az otthont, ha a hőmérséklet -érték magasabb, mint a beállított hőmérséklet, és felmelegíti az otthont, ha a hőmérséklet -érték alacsonyabb, mint a beállított hőmérséklet. A prototípus esetében a kék fény akkor gyullad ki, amikor a termosztátnak le kell hűlnie, a piros pedig akkor, amikor a termosztát felmelegszik.

Menü beállítás:

options = {'Automatic', 'Manual'}; imode = menu ('Mode', options) if imode> 0 h = msgbox (['Ön választotta a választásokat {imode}]); else h = warndlg ('Választás nélkül bezártad a menüt') end waitfor (h);

A kézi üzemmód megköveteli a felhasználótól, hogy adjon meg egy hőmérsékletet a termosztátnak, majd a hőmérséklet -érzékelő leolvasása alapján elkezdi a ház fűtését. Ha a hőmérséklet -érzékelő értéke magasabb, mint a beállított hőmérséklet, akkor megkezdi a ház hűtését. Ha a hőmérséklet -érzékelő értéke alacsonyabb, mint a beállított hőmérséklet, akkor felmelegíti a lakást.

A kézi üzemmód elindul:

if imode == 2 dlg_prompts = {'Milyen hőmérsékletet szeretne?'}; dlg_title = 'Hőmérséklet'; dlg_defaults = {'68'}; opts. Resize = 'be'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Törölted az inputdlg parancsot'); else temp_manual = str2double (dlg_ans {1}) %[Hőmérséklet -szabályozó beállításának hozzáadása lentebb] vége

A kézi üzemmód if utasításában meg kell írni a menü felületet, hogy a felhasználó kiválaszthassa a kívánt otthoni hőmérsékletet, majd végre kell hajtania egy ideig tartó utasítást, amely szabályozza az otthoni hőmérsékletet.

Hőmérséklet -szabályozás beállítása:

míg temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); end while temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); vége

Az automatikus üzemmód több bemenetet igényel, mint a kézi üzemmód. Az automatikus üzemmódba való belépés után a felhasználó normál és távoli hőmérsékletet állít be termosztátjához. Ezek kiválasztása után, a termosztát melyik üzemmódja alapján visszatér a hőmérséklet -szabályozási módba

Az automatikus üzemmód beállítása:

elseif imode == 1 dlg_prompts = {'Normál', 'Távol'}; dlg_title = 'Hőmérséklet beállítások'; dlg_defaults = {'68', '64'}; opts. Resize = 'be'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Törölted az inputdlg parancsot'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h); %[Mozgásérzékelő hozzáadása alább]

Be kell állítanunk a mozgásérzékelőt az automatikus üzemmód beállításaihoz. Amikor a mozgásérzékelő felveszi a mozgást, akkor a hőmérsékletet a jelenlegi hőmérsékleten tartja, ellenkező esetben a távoli hőmérsékletre áll.

Run_Motion_Detector (a, inf), míg lightStr == 0 temp = temp_away, míg temp tempF writeDigitalPin (a, 'D6', 1) bármilyen pin piros fény van a ventilátor írásának motorjában isDigitalPin (a, 'D9', 1); vége vége, míg fény motor ventilátor íráshoz DigitálisPin (a, 'D9', 1); vége vége

A teljes kód itt található.

Ajánlott: