Sadržaj:

Termostat pametne kuće: 4 koraka
Termostat pametne kuće: 4 koraka

Video: Termostat pametne kuće: 4 koraka

Video: Termostat pametne kuće: 4 koraka
Video: Zigbee пульт управления для умного дома Moes на 4 кнопки. Обзор, интеграция в Home Assistant 2024, Juli
Anonim
Termostat pametne kuće
Termostat pametne kuće

Naš termostat pametne kuće program je koji može automatski uštedjeti novac domaćinstva na računima za komunalne usluge na osnovu preferencija osobe.

Korak 1: Pregled

Termostat pametne kuće koristi temperaturni senzor za mjerenje temperature doma. Ovo očitavanje temperature stavlja se u program gdje će odlučiti da li klima uređaj treba grijati ili hladiti kuću na osnovu željene temperature vlasnika kuće.

Postoje dva načina rada termostata: ručni i automatski. Ručni način rada koji će podesiti temperaturu doma na željenu temperaturu koju je postavio korisnik. Automatski način rada termostata automatski će promijeniti temperaturu doma na temperature koje je korisnik unaprijed postavio. Za automatski način rada bit će dvije postavke temperature: udaljena temperatura i trenutna temperatura. Temperatura na odlasku se koristi za uštedu energije promjenom termostata na unaprijed postavljenu temperaturu za uštedu energije kad god korisnik nije kod kuće. Trenutna temperatura će se koristiti kada je korisnik kod kuće i želi ugodnu temperaturu. Kada su u automatskom načinu rada termostata, senzori pokreta aktivno traže kretanje kako bi utvrdili je li netko kod kuće ili nije. Na osnovu očitavanja, kućna temperatura će se ili postaviti na temperaturu u blizini ili na trenutnu temperaturu.

Korak 2: Dijelovi i materijali

(15) Premosne žice

(4) Otpornici od 220 ohma

(1) 10K ohmski otpornik

(1) Senzor temperature

(1) Fotootpornik

(1) Mini DC mjenjač DAGU

(1) Dioda

(1) Tranzistor

(1) Fotootpornik

(1) Oglasna ploča

(1) Arduino MKR

Korak 3: Krug

Krug
Krug
Krug
Krug
Krug
Krug
Krug
Krug

Slika 1 = Velika lijeva slika

Slika 2 = Gore desno

Slika 3 = Srednje desno

Slika 4 = Dolje desno

Slika 1

Koristeći gornji dijagram, ožičili smo svaku od naše tri LED diode. Rasporedili smo svaku LED lampicu jer smo radili s velikom pločom za kruh. Za manje ploče za kruh, možda će biti potrebno LED diode približiti jedna drugoj. Također, nije potrebno napajati matičnu ploču jer LED diode troše tako malo energije. Nismo koristili 5V vezu na matičnoj ploči za LED diode. Svako povezivanje LED dioda na naš Arduino bilo je izvedeno kao zelena žica iznad. Naše crvene, plave i zelene LED diode povezane su na digitalni pin 8, 9 i 10, označene crvenom, plavom i zelenom žicom na našoj slici.

Slika 2

Gornji dijagram je korišten za ožičenje fotootpornika. Napravili smo nekoliko sopstvenih ispravki; međutim koncepti su i dalje isti. Fotootpornik mora biti spojen na analogni pin koji imamo u pinu A1. Za otpornik najbliži fotootporniku upotrijebite otpornik od 10K ohma.

Slika 3

Ovo je dijagram koji se koristi za povezivanje osjetnika temperature. Pazite da tranzistor koji se ovdje koristi ne zamijenite s osjetnikom temperature. Izgledaju gotovo identično. Senzor temperature će vjerojatno imati TMP ili neku drugu skriptu napisanu na ravnoj strani senzora. Ovdje je ožičenje vrlo jednostavno, naš senzor temperature je uključen u analogni pin A0 s bijelom žicom.

Slika 4

Gornja slika je korištena za ožičenje DAGU Mini DC mjenjača. Zelena žica pričvršćena na mjenjač zapravo je crvena žica spojena na nju na našoj slici. Mjenjač je spojen na digitalni pin 11 pomoću narančaste žice u našem modelu. Pazite da tranzistor koji se ovdje koristi ne zamijenite s osjetnikom temperature. Izgledaju gotovo identično. Senzor temperature će vjerojatno imati TMP ili neku drugu skriptu napisanu na ravnoj strani senzora. Ovdje morate koristiti tranzistor, a ne senzor temperature.

Korak 4: Arduino kod

Ovdje su objašnjeni najvažniji dijelovi koda. Kôd neće raditi samo s onim što je ovdje navedeno. Da biste dobili potpuni radni kod, na dnu stranice nalazi se veza.

Prilikom stvaranja programabilnog koda termostata, jedna od prvih stvari koje trebate učiniti je postaviti senzore i stvoriti for petlju koja će stalno dobivati očitanja temperature sa senzora temperature.

Postavljanje temperaturnog senzora i LED diode:

tempPin = 'A0';%definira anonimnu funkciju koja pretvara napon u temperaturu tempCfromVolts = @(volti) (volti-0,5)*100; samplingDuration = 5; %sekundi. Koliko dugo želimo uzorkovati za samplingInterval = 1; %Koliko sekundi između očitavanja temperature %postaviti vektor vremena uzorkovanja samplingTimes = 0: samplingInterval: samplingDuration; %izračunati broj uzoraka na osnovu trajanja i intervala numSamples = length (samplingTimes); %prealokacije temp promenljivih i promenljivih za broj očitavanja koje će čuvati tempC = nule (numSamples, 1); tempF = tempC; %Ovaj put ćemo koristiti for petlju za uzimanje unapred određenog broja očitavanja %temperature

For petlja:

za indeks = 1: numSamples %očitava napon na tempPin i sprema u promjenjivim voltima volti = readVoltage (a, tempPin); tempC (indeks) = -1*tempCfromVolts (volti+0,3); tempF (indeks) = tempC (indeks)*(9/5) +32; %Prikaz formatiranog izlaza koji komunicira s očitavanjem trenutne temperature fprintf ('Temperatura u %d sekundama je %5.2f C ili %5.2f F. / n',… samplingTimes (indeks), tempC (indeks), tempF (indeks)); %Napomena Ovaj izlaz za prikaz će postati vidljiv odjednom nakon što se kôd %izvrši, osim ako ne kopirate/zalepite kôd u običnu datoteku skripte mfile. pause (samplingInterval) %kašnjenja do kraja sljedećeg uzorka

Zatim kreiramo korisnički izbornik za korisnika da odluči hoće li termostat staviti u ručni ili automatski način rada. Također stvaramo kôd greške ako korisnik ne odabere nijednu od dvije opcije.

Izbornik Ručni način rada zahtijeva od korisnika da postavi broj za temperaturu termostata, a zatim će zagrijati kuću, rashladiti kuću ili raditi u praznom hodu na osnovu očitanja. Za postavljanje ovog dijela koda upotrijebili ste očitanja temperature sa senzora temperature i stvorili kôd koji će rashladiti dom kada je očitanje temperature veće od zadane temperature, a zagrijati dom kada je očitanje temperature niže od zadane temperature.

Nakon što očitate temperaturu, možete stvoriti kôd koji će termostatu reći da hladi dom kada je očitanje temperature veće od zadane temperature, a zagrijava dom kad je očitanje temperature niže od zadane temperature. Za prototip, plavo svjetlo svijetli kada bi se termostat trebao ohladiti, a crveno svijetli kada bi se termostat trebao zagrijati.

Podešavanje menija:

choices = {'Automatic', 'Manual'}; imode = menu ('Mode', choices) if imode> 0 h = msgbox (['Izabrali ste' izbore {imode}]); else h = warndlg ('Zatvorili ste meni bez izbora') end waitfor (h);

Ručni način rada zahtijeva od korisnika da unese temperaturu za termostat, a zatim će na osnovu očitanja senzora temperature početi hladiti kuću ili grijati kuću. Ako je očitanje senzora temperature veće od zadane temperature, počet će hlađenje doma. Ako je očitanje osjetnika temperature niže od zadane temperature, zagrijat će dom.

Ručni način rada će se pokrenuti:

if imode == 2 dlg_prompts = {'Koju temperaturu biste preferirali?'}; dlg_title = 'Temperatura'; dlg_defaults = {'68'}; opts. Resize = 'uključeno'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Otkazali ste naredbu inputdlg'); else temp_manual = str2double (dlg_ans {1}) %[Dodaj slajd za podešavanje regulacije temperature ispod] kraj

Unutar if naredbe za ručni način rada, morate napisati sučelje izbornika kako bi korisnik odabrao željenu kućnu temperaturu, a zatim implementirao while izjavu koja će regulirati kućnu temperaturu.

Podešavanje regulacije temperature:

dok je temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); end while temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); kraj

Automatski način rada zahtijeva više unosa od ručnog. Nakon ulaska u automatski način rada, korisnik će postaviti normalnu i izlaznu temperaturu za svoj termostat. Nakon što ih odabere, ovisno o načinu rada termostata, vratit će se u način regulacije temperature

Postavite automatski način rada:

elseif imode == 1 dlg_prompts = {'Normalno', 'Odsutan'}; dlg_title = 'Postavke temperature'; dlg_defaults = {'68', '64'}; opts. Resize = 'uključeno'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Otkazali ste naredbu inputdlg'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h); %[Dodaj korak otkrivanja pokreta ispod]

Također moramo postaviti senzor pokreta za postavke automatskog načina rada. Kada detektor pokreta primi kretanje, zadržat će temperaturu na trenutnoj postavci temperature, inače će se postaviti na udaljenu temperaturu.

Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) sve što je crveno svjetlo pina također u motoru za ventilator writeDigitalPin (a, 'D9', 1); end end while lightStr == 1 temp = temp_normalno writeDigitalPin (a, 'D6', 1) %se promijeni u bilo koju iglu na kojoj se nalazi normalno svjetlo, dok temp tempF writeDigitalPin (a, 'D6', 1) u bilo kojem pin crvenom svjetlu je također motor za ventilator writeDigitalPin (a, 'D9', 1); end end

Potpuni kod možete pronaći ovdje.

Preporučuje se: