Sisukord:
Video: Nutika kodu termostaat: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Meie nutika kodu termostaat on programm, mis võib automaatselt säästa leibkonna raha kommunaalarvetelt, lähtudes inimese eelistustest.
1. samm: ülevaade
Nutika kodu termostaat kasutab kodu temperatuuri mõõtmiseks temperatuuriandurit. See temperatuurinäit lisatakse programmi, kus see otsustab, kas kliimaseade peab maja soojendama või jahutama, lähtudes soovitud majaomaniku temperatuurist.
Termostaadil on kaks režiimi: käsitsi ja automaatselt. Käsirežiim, mis reguleerib kodu temperatuuri vastavalt kasutaja soovitud temperatuurile. Termostaadi automaatrežiim muudab kodu temperatuuri automaatselt kasutaja poolt määratud temperatuuriks. Automaatrežiimi jaoks on kaks temperatuuri seadistust: eemalolev temperatuur ja praegune temperatuur. Eemaldatud temperatuuri kasutatakse energia säästmiseks, muutes termostaadi eelseadistatud energiasäästu temperatuuriks alati, kui kasutaja pole kodus. Praegust temperatuuri kasutatakse siis, kui kasutaja on kodus ja soovib mugavat temperatuuri. Termostaadi automaatrežiimis olles otsivad liikumisandurid aktiivselt liikumist, et teha kindlaks, kas keegi on kodus või mitte. Nende näidu põhjal seatakse kodutemperatuur kas eemaloleva või praeguse temperatuuri juurde.
Samm: osad ja materjalid
(15) Jumper traadid
(4) 220 oomi takistid
(1) 10K oomi takisti
(1) Temperatuuriandur
(1) Foto takisti
(1) DAGU Mini DC käigukast
(1) Diood
(1) Transistor
(1) Fototakisti
(1) Leivalaud
(1) Arduino MKR
3. samm: ahel
Joonis 1 = suur vasakpoolne pilt
Joonis 2 = üleval paremal
Joonis 3 = paremal keskel
Joonis 4 = paremal all
Joonis 1
Ülaltoodud skeemi kasutades ühendasime kõik meie kolm LED -i. Me eraldasime iga LED -i, kuna töötasime suure leivalauaga. Väiksemate leivalaudade puhul võib osutuda vajalikuks LED -de üksteisele lähemale asetamine. Samuti ei ole vaja leivaplaati toita, kuna LED -id tarbivad nii vähe energiat. Me ei kasutanud LED -ide jaoks leivaplaadil olevat 5V ühendust. Iga ühendus LED -ide ja meie Arduino vahel tehti nagu roheline traat on ülal. Meie punased, sinised ja rohelised LED -id on ühendatud vastavalt digitaalse tihvtiga 8, 9 ja 10, mis on meie pildil tähistatud punase, sinise ja rohelise juhtmega.
Joonis 2
Ülaltoodud skeemi kasutati fototakisti juhtmestamiseks. Tegime mõned parandused ise; mõisted on siiski samad. Fototakisti peab olema ühendatud analoogpistikuga, mis on tihvtis A1. Kasutage kindlasti 10K oomi takistit fototakisti lähima takisti jaoks.
Joonis 3
Seda skeemi kasutatakse temperatuurianduri juhtmestikus. Kindlasti ärge eksitage siin kasutatavat transistorit temperatuurianduriga. Nad näevad välja peaaegu identsed. Temperatuurianduril on tõenäoliselt tasapinnale kirjutatud TMP või mõni muu skript. Juhtmestik on siin väga lihtne, meie temperatuuriandur on ühendatud valge juhtmega analoogpistikuga A0.
Joonis 4
Ülaltoodud pilti kasutati DAGU Mini DC käigukasti juhtmestamiseks. Käigukasti külge kinnitatud roheline juhe on tegelikult meie pildil sellega ühendatud punane juhe. Käigukast on meie mudeli oranži juhtmega ühendatud digitaalse tihvtiga 11. Kindlasti ärge eksitage siin kasutatavat transistorit temperatuurianduriga. Nad näevad välja peaaegu identsed. Temperatuurianduril on tõenäoliselt tasapinnale kirjutatud TMP või mõni muu skript. Siin peate kasutama transistorit, mitte temperatuuriandurit.
Samm: Arduino kood
Siin selgitatakse koodi olulisemaid osi. Kood ei tööta ainult siin esitatud andmetega. Täieliku töökoodi saamiseks on lehe allosas link.
Programmeeritava termostaadi koodi loomisel on üks esimesi asju, mida te teete, andurite seadistamine ja for -loopi loomine, mis saab temperatuuriandurilt pidevalt näitu.
Temperatuuri anduri ja LED -i seadistamine:
tempPin = 'A0';%määratlevad anonüümse funktsiooni, mis teisendab pinge temperatuuriks tempCfromVolts = @(volti) (volti-0,5)*100; proovide võtmineKestus = 5; %sekundit. Kui kaua tahame proovide võtmiseks proovi võttaInterval = 1; %Mitu sekundit temperatuurinäitude vahel %seadistatud proovivõtmise aegade vektor samplingTimes = 0: samplingInterval: samplingDuration; %arvutab proovide arvu kestuse ja intervalli põhjal numSamples = pikkus (samplingTimes); temp -muutujate erallokaatorite %ja näitude arvu muutuja see salvestab tempC = nullid (numSamples, 1); tempF = tempC; %Kasutame seekord for-tsüklit, et teha etteantud arv %temperatuurinäitu
Ahela jaoks:
indeksi = 1 korral: numSamples %loeb pinget tempPin ja salvestab muutuva voltidega voltides = readVoltage (a, tempPin); tempC (indeks) = -1*tempCfromVolts (volt+0,3); tempF (indeks) = tempC (indeks)*(9/5) +32; %Kuva vormindatud väljund, mis edastab praeguse temperatuurinäidu fprintf ('Temperatuur %d sekundis on %5,2f C või %5,2f F. / n',… samplingTimes (indeks), tempC (indeks), tempF (indeks)); %märkus see kuvaväljund muutub nähtavaks alles pärast koodi täitmist, kui te ei kopeeri/kleepige koodi tavalisse skripti faili. paus (samplingInterval) %viivitus järgmise proovi lõpuni
Seejärel loome kasutajamenüü, et kasutaja saaks otsustada, kas lülitada termostaat käsitsi või automaatrežiimi. Samuti loome veakoodi, kui kasutaja ei vali kumbagi kahest suvandist.
Käsirežiimi menüü nõuab, et kasutaja määraks termostaadi temperatuuri numbri, seejärel soojendab see kodu, jahutab kodu või töötab näitude põhjal jõude. Selle koodi osa seadistamiseks kasutasite temperatuurianduri temperatuurinäiteid ja koostasite koodi, mis jahutab kodu, kui temperatuurinäit on seadistatud temperatuurist kõrgem, ja soojendab kodu, kui temperatuurinäit on seadistatud temperatuurist madalam.
Kui teil on temperatuurinäidud, saate luua koodi, mis käsib termostaadil kodu jahutada, kui temperatuurinäit on seadistatud temperatuurist kõrgem, ja kütta kodu, kui temperatuurinäit on seadistatud temperatuurist madalam. Prototüübi puhul süttib sinine tuli, kui termostaat peaks jahtuma, ja punane tuli süttib, kui termostaat peaks soojenema.
Menüü seadistamine:
options = {'Automatic', 'Manual'}; imode = menu ('Mode', options) if imode> 0 h = msgbox (['Valisite' valikud {imode}]); else h = warndlg ('Sulgesite menüü valikut tegemata') end waitfor (h);
Käsirežiim nõuab, et kasutaja sisestaks termostaadile temperatuuri, seejärel alustab see temperatuurianduri näitude põhjal kas maja kütmise maja jahutamist. Kui temperatuurianduri näit on seadistatud temperatuurist kõrgem, hakkab see kodu jahutama. Kui temperatuurianduri näit on seadistatud temperatuurist madalam, soojendab see kodu.
Käsitsi režiim käivitub:
if imode == 2 dlg_prompts = {'Millist temperatuuri eelistaksite?'}; dlg_title = 'Temperatuur'; dlg_defaults = {'68'}; valib. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Tühistasite käsu inputdlg'); else temp_manual = str2double (dlg_ans {1}) %[Lisa temperatuuri reguleerimise seadistamise slaid allpool] lõpp
Käsirežiimi if -avalduse sees peate kirjutama menüüliidese, et kasutaja saaks valida soovitud kodutemperatuuri, ja seejärel rakendama mõne aja lause, mis reguleerib kodutemperatuuri.
Temperatuuri reguleerimise seadistus:
samas temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); end samas temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); lõpp
Automaatrežiim nõuab rohkem sisendeid kui käsitsi. Pärast automaatrežiimi sisenemist määrab kasutaja oma termostaadile normaalse ja eemal oleva temperatuuri. Pärast nende valimist läheb termostaat selle režiimi põhjal tagasi temperatuuri reguleerimise režiimi
Automaatrežiimi seadistamine:
elseif imode == 1 dlg_prompts = {'Tavaline', 'Eemal'}; dlg_title = 'Temperatuuri seaded'; dlg_defaults = {'68', '64'}; valib. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Tühistasite käsu inputdlg'); muidu temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h); %[Lisa liikumisdetektor allpool]
Samuti peame seadistama liikumisanduri automaatrežiimi seadete jaoks. Kui liikumisandur võtab liikumise vastu, hoiab see temperatuuri praegusel temperatuuril, vastasel juhul lülitub see eemal asuvale temperatuurile.
Run_Motion_Detector (a, inf) samas lightStr == 0 temp = temp_away samas temp tempF writeDigitalPin (a, 'D6', 1) ükskõik milline punane tuli on ka ventilaatori kirjutamise mootorisDigitalPin (a, 'D9', 1); end end samal ajal kui valgusStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %muutus ükskõik millise tihvtiga, kus tavaline valgus on sees, samas temp tempF writeDigitalPin (a, 'D6', 1) mis tahes punane tuli on ka sees ventilaatori kirjutamise mootor DigitalPin (a, 'D9', 1); lõpp lõpp
Täieliku koodi leiate siit.
Soovitan:
Tehke nutika kodu juhtimissüsteem STONE HMI displeil: 23 sammu
Tehke nutika kodu juhtimissüsteem STONE HMI Disp'is: Projekti tutvustus Järgnev õpetus näitab teile, kuidas kasutada puuteekraanimoodulit STONE STVC050WT-01 lihtsa kodumasina juhtimissüsteemi loomiseks
ForgetMeNot - nutika kodu teavitusplatvorm: 14 sammu (piltidega)
ForgetMeNot - nutika kodu teavitusplatvorm: hõivatud kolledžiõpilastena, kes liiguvad klasside, töökohtade ja perekohustuste vahel, kipume pisiasjad unustama. Sünnipäev tuleb ja läheb, ilma et me seda märkaksime, oluline tähtaeg jääb unaruse tõttu vahele ja mõnikord lihtsalt
Täielik nutika kodu lisand: 8 sammu
Täielik nutika kodu lisand: minu eelmine projekt " Täielik nutikas kodu " töötab edukalt peaaegu 5 aastat ilma probleemideta. Nüüd, kui otsustasin lisada sellele tagasisidet ilma praegust vooluahelat ja skeemi muutmata. Nii et see lisamine pro
Nutika kodu automatiseerimine Energenie pistikupesadega - läheduspesad: 4 sammu
Nutika kodu automatiseerimine Energenie pistikupesadega - läheduspesad: Sissejuhatus Seal on palju näiteid nutika kodu automatiseerimisest, kuid see on lihtne ja on minu majas aasta aega väga tõhusalt toiminud, nii et loodan, et teile meeldib see. Kui olete lõpetanud, on teil seade, mis suudab võrku skannida
[HASS.IO] Alustage oma nutika kodu ehitamist ilma kodeerimiseta, vähem kui 100 dollari eest: 6 sammu
[HASS.IO] Alustage oma nutika kodu ehitamist ilma kodeerimiseta, hinnaga alla 100 dollari: viimasel ajal olen jama ajanud ja oma maja edukalt vähem "idiootseks" muutnud. Nii et ma jagan, kuidas teha nutikas kodusüsteem madala hinnasildiga, suure ühilduvusega, mis töötaks sujuvalt ja stabiilselt