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, Studeni
Anonim
Termostat pametne kuće
Termostat pametne kuće

Naš termostat za pametnu kuću program je koji može automatski uštedjeti novac kućanstva na računima za komunalne usluge na temelju preferencija osobe.

Korak 1: Pregled

Termostat pametne kuće koristi temperaturni senzor za mjerenje temperature doma. Ovo očitanje temperature stavlja se u program gdje će odlučiti treba li sustav klimatizacije grijati ili hladiti kuću na temelju željene temperature vlasnika kuće.

Postoje dva načina rada termostata: ručni i automatski. Ručni način rada koji će prilagoditi 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 u odlasku koristi se za uštedu energije promjenom termostata na unaprijed postavljenu temperaturu za uštedu energije kad god korisnik nije kod kuće. Trenutna temperatura koristit će se kada je korisnik kod kuće i želi ugodnu temperaturu. U automatskom načinu rada termostata senzori pokreta aktivno traže kretanje kako bi utvrdili je li netko kod kuće ili nije. Na temelju njihovih očitanja, kućna će se temperatura postaviti na temperaturu u odlasku ili na trenutnu temperaturu.

Korak 2: Dijelovi i materijali

(15) Žice kratkospojnika

(4) Otpornici od 220 ohma

(1) 10K ohmski otpornik

(1) Senzor temperature

(1) Fotootpornik

(1) DAGU Mini DC mjenjač

(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 budući da 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 ploči za LED diode. Svako povezivanje LED dioda s našim Arduinom bilo je izvedeno kao zelena žica iznad. Naše crvene, plave i zelene LED diode spojene 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 vlastitih 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 10K ohmski otpornik.

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 vjerojatno će imati TMP ili neku drugu skriptu napisanu na ravnoj strani senzora. Ovdje je ožičenje vrlo jednostavno, naš senzor temperature je priključen na 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 u našem modelu spojen na digitalni pin 11 narančastom žicom. Pazite da tranzistor koji se ovdje koristi ne zamijenite s osjetnikom temperature. Izgledaju gotovo identično. Senzor temperature vjerojatno će imati TMP ili neku drugu skriptu napisanu na ravnoj strani senzora. Ovdje morate koristiti tranzistor, a ne osjetnik 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 kôd, na dnu stranice nalazi se veza.

Prilikom izrade programabilnog koda termostata, jedna od prvih stvari koju napravite je postavljanje senzora i stvaranje for petlje koja će stalno dobivati očitanja temperature s osjetnika 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čitanja temperature %postaviti vektor vremena uzorkovanja samplingTimes = 0: samplingInterval: samplingDuration; %izračunati broj uzoraka na temelju trajanja i intervala numSamples = length (samplingTimes); %predallokacije temp varijabli i varijable za broj očitanja koje će pohraniti tempC = nule (numSamples, 1); tempF = tempC; %Ovaj put ćemo koristiti for petlju za uzimanje unaprijed određenog broja očitanja %temperature

For petlja:

za indeks = 1: numSamples %očitava napon pri tempPin i sprema u promjenjivim voltima volti = readVoltage (a, tempPin); tempC (indeks) = -1*tempCodVolti (volti+0,3); tempF (indeks) = tempC (indeks)*(9/5) +32; %Prikaz izlaznog formata koji prikazuje trenutno očitanje temperature fprintf ('Temperatura u %d sekundama je %5,2f C ili %5,2f F. / n',… vrijeme uzorkovanja (indeks), tempC (indeks), tempF (indeks)); %napomena: ovaj prikaz na zaslonu postat će vidljiv odjednom nakon što se kôd %izvrši, osim ako ne kopirate/zalijepite kôd u običnu datoteku skripte mfile. pauza (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 pogreške ako korisnik ne odabere nijednu od dvije opcije.

Izbornik Ručni način rada zahtijeva da korisnik postavi broj za temperaturu termostata, a zatim će zagrijati dom, rashladiti dom ili raditi u praznom hodu na temelju očitanja. Za postavljanje ovog dijela koda upotrijebili ste očitanja temperature s osjetnika temperature i stvorili kôd koji će rashladiti dom kad je očitanje temperature veće od zadane temperature, a zagrijati dom kad 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 kad 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 se termostat treba ohladiti, a crveno svijetli kada se termostat treba zagrijati.

Postavljanje izbornika:

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

Ručni način rada zahtijeva od korisnika da unese temperaturu za termostat, a zatim će na temelju očitanja senzora temperature početi hladiti kuću ili grijati kuću. Ako je očitanje osjetnika 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 pokrenut će se:

if imode == 2 dlg_prompts = {'Koju biste temperaturu 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 statement koji će regulirati kućnu temperaturu.

Postavljanje regulacije temperature:

while 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

Postavljanje automatskog načina 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 u nastavku]

Također moramo postaviti senzor pokreta za postavke automatskog načina rada. Kad detektor pokreta uhvati gibanje, 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 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 crvenom svjetlu pina motor za ventilator writeDigitalPin (a, 'D9', 1); kraj kraj

Cijeli kod možete pronaći ovdje.

Preporučeni: