Orodha ya maudhui:

Smart Thermostat ya Nyumbani: Hatua 4
Smart Thermostat ya Nyumbani: Hatua 4

Video: Smart Thermostat ya Nyumbani: Hatua 4

Video: Smart Thermostat ya Nyumbani: Hatua 4
Video: Zuchu Amwaga Machozi Baada Ya kupewa Kiss Na Diamond Platinumz 2024, Julai
Anonim
Thermostat ya Nyumba ya Smart
Thermostat ya Nyumba ya Smart

Thermostat yetu ya Nyumba ya Smart ni mpango ambao unaweza kuokoa pesa za kaya moja kwa moja kwenye bili za matumizi kulingana na matakwa ya mtu.

Hatua ya 1: Muhtasari

Thermostat ya Nyumba ya Smart hutumia sensorer ya joto kupata joto la nyumba. Usomaji huu wa joto huwekwa kwenye programu ambapo itaamua ikiwa mfumo wa hali ya hewa unahitaji joto au kupoza nyumba kulingana na hali ya joto ya mmiliki wa nyumba.

Kuna njia mbili za thermostat: mwongozo na otomatiki. Njia ya mwongozo ambayo itarekebisha hali ya joto ya nyumbani kwa joto lolote linalohitajika limewekwa na mtumiaji. Na hali ya moja kwa moja ya thermostat itabadilisha moja kwa moja joto la nyumba kuwa hali ya joto iliyowekwa mapema na mtumiaji. Kutakuwa na mipangilio miwili ya joto kwa hali ya moja kwa moja: joto la mbali na joto la sasa. Joto la mbali hutumiwa kuokoa nishati kwa kubadilisha thermostat kuwa joto la kuweka-mapema la kuokoa nishati wakati wowote mtumiaji hayupo nyumbani. Joto la sasa litatumika wakati mtumiaji yuko nyumbani na anataka joto linalofaa. Wakati wa hali ya moja kwa moja ya thermostat, sensorer za mwendo hutafuta harakati ili kubaini ikiwa mtu yuko nyumbani au la. Kulingana na usomaji wao, hali ya joto ya nyumbani inaweza kuwekwa kwa joto la mbali au joto la sasa.

Hatua ya 2: Sehemu na Vifaa

(15) waya za jumper

(4) 220 Ohm Resistors

(1) 10K Mpingaji wa Ohm

(1) Sensorer ya Muda

(1) Mpingaji Picha

(1) DAGU Mini DC Sanduku la Gear

(1) Diode

(1) Transistor

(1) Mpiga picha

(1) Bodi ya mkate

(1) Arduino MKR

Hatua ya 3: Mzunguko

Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko

Kielelezo 1 = Picha Kubwa ya Kushoto

Kielelezo 2 = Kulia Juu

Kielelezo 3 = Kulia Kati

Kielelezo 4 = Chini kulia

Kielelezo 1

Kutumia mchoro hapo juu, tulitia waya kila moja ya LED zetu tatu. Tuligawanya kila LED kwani tulikuwa tukifanya kazi na bodi kubwa ya mkate. Kwa bodi ndogo za mkate, inaweza kuwa muhimu kuweka LED karibu zaidi. Pia, sio lazima kuwezesha ubao wa mkate kwani LED zinatoa nguvu kidogo sana. Hatukutumia unganisho la 5V kwenye ubao wa mkate kwa taa za LED. Kila unganisho kutoka kwa LED hadi Arduino yetu ilitengenezwa kama waya wa kijani uko juu. LED zetu nyekundu, bluu, na kijani zimeunganishwa na Dijiti ya Dijiti 8, 9, na 10 mtawaliwa, iliyotengwa na waya nyekundu, bluu, na kijani kwenye picha yetu.

Kielelezo 2

Mchoro hapo juu ulitumiwa kuweka waya wa picha. Tulifanya marekebisho machache yetu wenyewe; hata hivyo dhana bado ni sawa. Mpiga picha lazima aunganishwe na pini ya analog ambayo tunayo kwenye pini A1. Hakikisha kutumia kontena la 10K ohm kwa kipingamizi kilicho karibu na mpinga picha.

Kielelezo 3

Huu ndio mchoro unaotumiwa kushika waya sensor ya joto. Hakikisha usikosee transistor iliyotumiwa hapa na sensorer ya joto. Wanaonekana karibu sawa. Sensorer ya joto itakuwa na TMP au hati nyingine iliyoandikwa upande wa gorofa ya sensa. Wiring hapa ni rahisi sana sensor yetu ya joto imechomekwa kwenye pini ya Analog A0 na waya mweupe.

Kielelezo 4

Picha hapo juu ilitumika kuweka waya kwenye DAGU Mini DC Gearbox. Waya wa kijani uliowekwa kwenye sanduku la Gear ni waya mwekundu uliounganishwa nayo kwenye picha yetu. Sanduku la Gear limeunganishwa na pini ya dijiti 11 na waya wa machungwa katika mfano wetu. Hakikisha usikosee transistor iliyotumiwa hapa na sensorer ya joto. Wanaonekana karibu sawa. Sensorer ya joto itakuwa na TMP au maandishi mengine yaliyoandikwa upande wa gorofa ya sensa. Lazima utumie transistor hapa na sio sensorer ya joto.

Hatua ya 4: Msimbo wa Arduino

Hapa, sehemu muhimu zaidi za nambari zimefafanuliwa. Nambari hiyo haitafanya kazi na kile tu kinachopewa hapa. Ili kupata nambari kamili ya kufanya kazi, kuna kiunga chini ya ukurasa.

Wakati wa kuunda nambari ya thermostat inayoweza kupangwa, moja ya mambo ya kwanza unayofanya ni kusanidi sensorer na kuunda kitanzi ambacho kitapata usomaji wa joto kila wakati kutoka kwa sensorer ya joto.

Kuweka Sensor ya Joto na LED:

% fafanua kazi isiyojulikana ambayo inabadilisha voltage kuwa joto tempCfromVolts = @ (volts) (volts-0.5) * 100; sampuliUrefu = 5; Sekunde%. Tunataka kuchukua sampuli kwa muda gani kwa sampuliInterval = 1; Sekunde ngapi kati ya usomaji wa joto% kuanzisha vector ya sampuli za nyakati za sampuliTimes = 0: samplingInterval: samplingDuration; % hesabu idadi ya sampuli kulingana na muda na vipindi numSampuli = urefu (sampuliTimes); % chagua vigeugeu vya muda na ubadilishaji kwa idadi ya usomaji itahifadhi tempC = zeros (numSamples, 1); tempF = tempC; Tutatumia kitanzi wakati huu kuchukua idadi iliyoamuliwa mapema ya usomaji wa joto%

Kitanzi cha:

kwa index = 1: numSampuli% soma voltage kwenye tempPin na uhifadhi katika volts za kutofautisha = somaVoltage (a, tempPin); tempC (index) = -1 * tempCfromVolts (volts + 0.3); tempF (index) = tempC (index) * (9/5) +32; % Onyesha pato lililoumbizwa kuwasilisha hali ya joto ya sasa ya kusoma fprintf ('Joto kwa sekunde% d ni% 5.2f C au% 5.2f F. / n',… samplingTimes (index), tempC (index), tempF (index)); % kumbuka pato hili la onyesho litakuwa wazi kila wakati mara tu baada ya nambari kukamilika isipokuwa unakili / unabandika nambari hiyo kwa hati wazi ya mfile. pause (samplingInterval)% kuchelewa hadi mwisho wa sampuli ijayo

Ifuatayo, tunaunda menyu yetu ya mtumiaji kwa mtumiaji kuamua ikiwa ataweka Thermostat katika Njia ya Mwongozo au Moja kwa Moja. Pia tunaunda nambari ya makosa ikiwa mtumiaji haichagui moja wapo ya chaguo mbili.

Menyu ya Modi ya Mwongozo inahitaji mtumiaji kuweka nambari kwa joto la thermostat, basi itawasha moto nyumba, itapunguza nyumba, au inafanya uvivu kulingana na usomaji. Kuanzisha sehemu hii ya nambari, ulitumia usomaji wa joto kutoka kwa sensorer ya joto na kuunda nambari ambayo itapoa nyumba wakati usomaji wa joto uko juu kuliko joto lililowekwa, na pasha moto nyumba wakati usomaji wa joto uko chini kuliko joto lililowekwa.

Mara tu unapokuwa na usomaji wa joto, unaweza kuunda nambari ambayo itawaambia thermostat kupoza nyumba wakati usomaji wa joto uko juu kuliko joto lililowekwa, na ipishe nyumba wakati usomaji wa joto uko chini kuliko joto lililowekwa. Kwa mfano, taa ya samawati inakuja wakati thermostat inapaswa kupoa na taa nyekundu inakuja wakati thermostat inapaswa joto.

Usanidi wa Menyu:

uchaguzi = {'Moja kwa moja', 'Mwongozo'}; imode = menyu ('Njia', chaguzi) ikiwa imode> 0 h = msgbox (['Ulichagua' chaguo {imode}]); mwingine h = warndlg ('Ulifunga menyu bila kufanya chaguo') mwisho subiri (h);

Hali ya Mwongozo inahitaji mtumiaji kuingiza joto kwa thermostat, kisha ikitegemea masomo kutoka kwa sensa ya joto, itaanza kupoza nyumba ya kupokanzwa nyumba. Ikiwa kusoma kwa sensa ya joto ni kubwa kuliko joto lililowekwa, itaanza kupoza nyumba. Ikiwa usomaji wa sensorer ya joto uko chini kuliko joto lililowekwa, itapunguza nyumba.

Njia ya Mwongozo itaanza:

ikiwa imode == 2 dlg_prompts = {'Je! unapendelea joto gani?'}; dlg_title = 'Joto'; dlg_defaults = {'68'}; punguza. Resize = 'on'; dlg_ans = pembejeo dlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); ikiwa isempty (dlg_ans) h = warndlg ('Umeghairi amri ya inputdlg'); mwingine temp_manual = str2double (dlg_ans {1})% [Ongeza slaidi ya Udhibiti wa Joto chini] mwisho

Ndani ya taarifa ya iwapo kwa hali ya mwongozo, unahitaji kuandika kiolesura cha menyu kwa mtumiaji kuchukua joto analo taka nyumbani, na kisha kutekeleza taarifa ya wakati ambayo itadhibiti hali ya joto ya nyumbani.

Usanidi wa Udhibiti wa Joto:

wakati temp_manual <tempF writeDigitalPin (a, 'D9', 1) andikaDigitalPin (a, 'D11', 1); mwisho wakati temp_manual> tempF writeDigitalPin (a, 'D8', 1) andikaDigitalPin (a, 'D11', 1); mwisho

Hali ya Moja kwa Moja inahitaji pembejeo zaidi kuliko hali ya mwongozo. Baada ya kuingia katika hali ya Moja kwa moja, mtumiaji ataweka joto la Kawaida na la Kuondoka kwa thermostat yao.

Sanidi hali ya Moja kwa Moja:

elseif imode == 1 dlg_prompts = {'Kawaida', 'Mbali'}; dlg_title = 'Mipangilio ya Joto'; dlg_defaults = {'68', '64'}; punguza. Resize = 'on'; dlg_ans = pembejeo dlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); ikiwa isempty (dlg_ans) h = warndlg ('Umeghairi amri ya inputdlg'); mwingine temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) mwisho subiri (h); % [Ongeza Kitambuzi cha Mwendo chini]

Tunahitaji pia kuanzisha sensorer ya mwendo kwa mipangilio ya hali ya Moja kwa moja. Kigunduzi cha mwendo kinapochukua mwendo, itaweka joto kwenye mpangilio wa joto la sasa, vinginevyo itaweka kwenye hali ya joto ya mbali.

Run_Motion_Detector (a, inf) wakati lightStr == 0 temp = temp_away wakati tempF writeDigitalPin (a, 'D6', 1) taa yoyote nyekundu iliyoko ndani pia ni gari kwa shabiki writeDigitalPin (a, 'D9', 1); mwisho mwisho wakati lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1)% hubadilisha kuwa pini yoyote ile taa ya kawaida iko wakati tempF inaandikaDigitalPin (a, 'D6', 1) taa yoyote nyekundu iliyoko pia iko motor kwa shabiki writeDigitalPin (a, 'D9', 1); mwisho mwisho

Nambari kamili inaweza kupatikana hapa.

Ilipendekeza: