Sisällysluettelo:

Älykkään kodin termostaatti: 4 vaihetta
Älykkään kodin termostaatti: 4 vaihetta

Video: Älykkään kodin termostaatti: 4 vaihetta

Video: Älykkään kodin termostaatti: 4 vaihetta
Video: Näin säästät sähköä DEVIreg-termostaateilla - Taloon.com 2024, Marraskuu
Anonim
Älykkään kodin termostaatti
Älykkään kodin termostaatti

Älykkään kodin termostaattimme on ohjelma, joka voi automaattisesti säästää kotitalouden rahaa sähkölaskuissa henkilön mieltymysten perusteella.

Vaihe 1: Yleiskatsaus

Smart Home -termostaatti käyttää lämpötila -anturia kodin lämpötilan mittaamiseen. Tämä lämpötilalukema lisätään ohjelmaan, jossa se päättää, tarvitseeko ilmastointijärjestelmän lämmittää tai jäähdyttää taloa halutun asunnon omistajan lämpötilan perusteella.

Termostaatille on kaksi tilaa: manuaalinen ja automaattinen. Manuaalinen tila, joka säätää kodin lämpötilan käyttäjän asettamaan haluttuun lämpötilaan. Ja termostaatin automaattinen tila muuttaa automaattisesti kodin lämpötilan käyttäjän asettamiin lämpötiloihin. Automaattisessa tilassa on kaksi lämpötila -asetusta: poissa lämpötila ja nykyinen lämpötila. Poislämpötilaa käytetään energian säästämiseen vaihtamalla termostaatti ennalta asetettuun energiansäästölämpötilaan aina, kun käyttäjä ei ole kotona. Nykyistä lämpötilaa käytetään, kun käyttäjä on kotona ja haluaa mukavan lämpötilan. Termostaatin automaattitilassa liiketunnistimet etsivät aktiivisesti liikettä määrittääkseen, onko joku kotona vai ei. Lukemien perusteella kodin lämpötila asetetaan joko poislämpötilaan tai nykyiseen lämpötilaan.

Vaihe 2: Osat ja materiaalit

(15) Jännitejohdot

(4) 220 ohmin vastukset

(1) 10 K ohmin vastus

(1) Lämpötila -anturi

(1) Valovastus

(1) DAGU Mini DC -vaihteisto

(1) Diodi

(1) Transistori

(1) Valovastus

(1) Leipälauta

(1) Arduino MKR

Vaihe 3: Piiri

Piiri
Piiri
Piiri
Piiri
Piiri
Piiri
Piiri
Piiri

Kuva 1 = suuri vasen kuva

Kuva 2 = Oikea ylhäältä

Kuva 3 = Keskellä oikeaa

Kuva 4 = Oikea alareuna

Kuvio 1

Yllä olevan kaavion avulla kytkeimme kaikki kolme LEDiämme. Erotimme jokaisen LED -valon, koska työskentelimme suuren leipälevyn kanssa. Pienemmille leipälaudoille voi olla tarpeen laittaa LEDit lähemmäs toisiaan. Lisäksi leipälevylle ei tarvitse syöttää virtaa, koska LEDit kuluttavat niin vähän virtaa. Emme käyttäneet leipälevyn 5V -liitäntää LED -valoja varten. Jokainen yhteys LED -valoista Arduinoon tehtiin kuten vihreä johto on yllä. Punaiset, siniset ja vihreät LED -valomme on kytketty digitaaliseen nastaan 8, 9 ja 10, jotka on merkitty kuvassa punaisella, sinisellä ja vihreällä johdolla.

Kuva 2

Yllä olevaa kaaviota käytettiin valoresistorin johdotukseen. Teimme muutamia omia korjauksiamme; käsitteet ovat kuitenkin edelleen samat. Valovastus on kytkettävä analogiseen nastaan, joka on tapissa A1. Varmista, että käytät 10K ohmin vastusta lähimmälle valovastukselle.

Kuva 3

Tätä kaaviota käytetään lämpötila -anturin johtamiseen. Älä sekoita tässä käytettyä transistoria lämpötila -anturin kanssa. Ne näyttävät lähes identtisiltä. Lämpötila -anturissa on todennäköisesti TMP tai jokin muu käsikirjoitus anturin tasaiselle puolelle. Johdotus on täällä hyvin yksinkertaista. Lämpötila -anturimme on kytketty analogiseen nastaan A0 valkoisella johdolla.

Kuva 4

Yllä olevaa kuvaa käytettiin DAGU Mini DC -vaihteiston johdotukseen. Vaihteistoon kiinnitetty vihreä johto on itse asiassa siihen liitetty punainen johto kuvassa. Vaihdelaatikko on kytketty digitaaliseen nastaan 11 oranssilla johdolla mallissamme. Älä sekoita tässä käytettyä transistoria lämpötila -anturin kanssa. Ne näyttävät lähes identtisiltä. Lämpötila -anturissa on todennäköisesti TMP tai jokin muu käsikirjoitus anturin tasaiselle puolelle. Tässä on käytettävä transistoria eikä lämpötila -anturia.

Vaihe 4: Arduino -koodi

Tässä selitetään koodin tärkeimmät osat. Koodi ei toimi vain tässä annetun kanssa. Koko työkoodin saat sivun alareunassa olevasta linkistä.

Kun luot ohjelmoitavaa termostaatin koodia, yksi ensimmäisistä asioista on antureiden asentaminen ja for -silmukan luominen, joka saa jatkuvasti lämpötila -anturit lämpötila -anturista.

Lämpötila -anturin ja LEDin asettaminen:

tempPin = 'A0';%määrittävät nimettömän funktion, joka muuntaa jännitteen lämpötilaksi tempCfromVolts = @(volttia) (volttia-0,5)*100; näytteenottoKesto = 5; %sekuntia. Kuinka kauan haluamme ottaa näytteitä näytteenottoa vartenInterval = 1; %Kuinka monta sekuntia lämpötilalukemien välillä %näytteenottoajan vektori samplingTimes = 0: samplingInterval: samplingDuration; %laskee näytteiden määrän keston ja aikavälin perusteella numSamples = pituus (näytteenottoajat); %ennalta kohdennettuja temp -muuttujia ja muuttuja lukemien lukumäärälle se tallentaa tempC = nollia (numSamples, 1); tempF = tempC; %Käytämme tällä kertaa for-silmukkaa ottaaksemme ennalta määrätyn määrän %lämpötilan lukemia

For silmukka:

indeksille = 1: numSamples %lukee jännitteen tempPinissä ja tallentaa vaihteleviin voltteihin voltteina = readVoltage (a, tempPin); tempC (indeksi) = -1*tempCfromVolts (volttia+0,3); tempF (indeksi) = tempC (indeksi)*(9/5) +32; %Näyttää muotoillun lähdön, joka välittää nykyisen lämpötilan lukeman fprintf ('Lämpötila %d sekunnissa on %5,2f C tai %5,2f F. / n',… samplingTimes (index), tempC (index), tempF (index)); %Huomaa, että tämä näyttölaite tulee näkyviin vasta kerralla, kun koodi on suoritettu %, ellet kopioi/liitä koodia tavalliseen komentosarjatiedostoon. tauko (samplingInterval) %viive seuraavan näytteen loppuun

Seuraavaksi luomme käyttäjävalikon, jossa käyttäjä voi päättää, laitetaanko termostaatti manuaaliseen vai automaattiseen tilaan. Luomme myös virhekoodin, jos käyttäjä ei valitse kumpaakaan kahdesta vaihtoehdosta.

Manuaalinen tila -valikko vaatii käyttäjän asettamaan termostaatin lämpötilan numeron, jolloin se joko lämmittää kotia, viilentää kotia tai on joutokäynnillä lukemien perusteella. Tämän koodin osan määrittämiseen käytit lämpötila -anturin lämpötilalukemia ja loit koodin, joka jäähdyttää asuntoa, kun lämpötila on korkeampi kuin asetettu lämpötila, ja lämmittää kotia, kun lämpötilalukema on alempi kuin asetettu lämpötila.

Kun olet lukenut lämpötilan, voit luoda koodin, joka kertoo termostaatin jäähdyttämään kodin, kun lämpötila on korkeampi kuin asetettu lämpötila, ja lämmittämään kotia, kun lämpötilalukema on alempi kuin asetettu lämpötila. Prototyypin kohdalla sininen valo syttyy, kun termostaatti jäähtyy, ja punainen valo syttyy, kun termostaatti lämpenee.

Valikon asetukset:

options = {'Automatic', 'Manual'}; imode = menu ('Mode', options) if imode> 0 h = msgbox (['Valitsit' vaihtoehdot {imode}]); else h = warndlg ('Suljit valikon tekemättä valintaa') end waitfor (h);

Manuaalinen tila vaatii käyttäjän syöttämään lämpötilan termostaatille, jonka jälkeen lämpötila -anturin lukemien perusteella se joko jäähdyttää talon lämmitystä. Jos lämpötila -anturin lukema on korkeampi kuin asetettu lämpötila, se alkaa jäähdyttää kotia. Jos lämpötila -anturin lukema on alle asetetun lämpötilan, se lämmittää kotia.

Manuaalinen tila käynnistyy:

if imode == 2 dlg_prompts = {'Minkä lämpötilan haluaisit?'}; dlg_title = 'Lämpötila'; dlg_defaults = {'68'}; opts. Resize = 'päällä'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Peruutit inputdlg -komennon'); else temp_manual = str2double (dlg_ans {1}) %[Lisää lämpötilan säätöasetusten dia alla] loppu

Manuaalista tilaa koskevan if -lausekkeen sisälle sinun on kirjoitettava valikkokäyttöliittymä, jotta käyttäjä voi valita haluamansa kodin lämpötilan, ja otettava sitten käyttöön jonkin aikaa -lauseke, joka säätelee kodin lämpötilaa.

Lämpötilan säätöasetus:

kun taas temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); end kun temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); loppuun

Automaattinen tila vaatii enemmän tuloja kuin manuaalinen tila. Automaattitilaan siirtymisen jälkeen käyttäjä asettaa termostaatilleen normaalin ja poissa olevan lämpötilan. Kun olet valinnut nämä, sen mukaan, missä tilassa termostaatti on, se palaa lämpötilan säätötilaan

Aseta automaattinen tila:

elseif imode == 1 dlg_prompts = {'Normaali', 'Poissa'}; dlg_title = 'Lämpötila -asetukset'; dlg_defaults = {'68', '64'}; opts. Resize = 'päällä'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Peruutit inputdlg -komennon'); muuten temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h); %[Lisää liiketunnistimen vaihe alla]

Meidän on myös asetettava liikeanturi automaattitilan asetuksia varten. Kun liiketunnistin havaitsee liikettä, se pitää lämpötilan nykyisellä lämpötila -asetuksella, muuten se asettaa pois -lämpötila -asetuksen.

Run_Motion_Detector (a, inf) kun valoStr == 0 temp = temp_away kun temp tempF writeDigitalPin (a, 'D6', 1) mikä tahansa nastainen punainen valo on myös tuulettimen kirjoituksen moottorissaDigitalPin (a, 'D9', 1); loppu loppu kun valoStr == 1 temp = temp_normaali kirjoitus moottori tuulettimen kirjoittamiseen DigitalPin (a, 'D9', 1); loppu loppu

Koko koodi löytyy täältä.

Suositeltava: