Turinys:
Video: „Smart Home“termostatas: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Mūsų išmaniųjų namų termostatas yra programa, kuri gali automatiškai sutaupyti namų ūkio pinigus už komunalines paslaugas, atsižvelgiant į asmens pageidavimus.
1 žingsnis: apžvalga
„Smart Home“termostatas naudoja temperatūros jutiklį, kad nustatytų namų temperatūrą. Šis temperatūros rodmuo įtraukiamas į programą, kurioje pagal pageidaujamą būsto savininko temperatūrą bus nuspręsta, ar oro kondicionavimo sistemai reikia šildyti ar vėsinti namą.
Yra du termostato režimai: rankinis ir automatinis. Rankinis režimas, kuris sureguliuos namų temperatūrą pagal bet kurią norimą vartotojo nustatytą temperatūrą. Automatinis termostato režimas automatiškai pakeis namo temperatūrą į vartotojo nustatytą temperatūrą. Automatiniam režimui bus du temperatūros nustatymai: išvykimo temperatūra ir esama temperatūra. Išvykimo temperatūra naudojama taupyti energiją keičiant termostatą į iš anksto nustatytą energijos taupymo temperatūrą, kai vartotojas nėra namuose. Esama temperatūra bus naudojama, kai vartotojas yra namuose ir nori patogios temperatūros. Kai automatinis termostato režimas, judesio jutikliai aktyviai ieško judesio, kad nustatytų, ar kas nors yra namuose, ar ne. Remiantis jų rodmenimis, namų temperatūra bus nustatyta kaip išvykimo temperatūra arba esama temperatūra.
2 žingsnis: dalys ir medžiagos
(15) Jungiamieji laidai
(4) 220 omų rezistoriai
(1) 10K omų rezistorius
(1) Temperatūros jutiklis
(1) Nuotraukų rezistorius
(1) „DAGU Mini DC“pavarų dėžė
(1) Diodas
(1) Tranzistorius
(1) Fotorezistorius
(1) Duonos lenta
(1) Arduino MKR
3 žingsnis: grandinė
1 paveikslas = didelis vaizdas kairėje
2 paveikslas = viršuje dešinėje
3 paveikslas = vidurinė dešinė
4 paveikslas = apačioje dešinėje
figūra 1
Naudodami aukščiau pateiktą schemą, sujungėme kiekvieną iš trijų šviesos diodų. Mes išdėstėme kiekvieną šviesos diodą, nes dirbome su didele duonos lenta. Mažesnėms duonos lentoms gali prireikti šviesos diodus sujungti arčiau. Be to, nereikia maitinti duonos lentos, nes šviesos diodai sunaudoja tiek mažai energijos. Šviesos diodams nenaudojome 5V jungties ant duonos lentos. Kiekvienas ryšys nuo šviesos diodų prie mūsų „Arduino“buvo padarytas taip, kaip žalia viela yra aukščiau. Mūsų raudoni, mėlyni ir žali šviesos diodai yra prijungti prie atitinkamai 8, 9 ir 10 skaitmeninio kaiščio, mūsų paveikslėlyje pažymėti raudona, mėlyna ir žalia viela.
2 pav
Aukščiau pateikta schema buvo naudojama fotorezistoriui prijungti. Mes padarėme keletą savo pataisymų; tačiau sąvokos vis dar yra tos pačios. Fotorezistorius turi būti prijungtas prie analoginio kaiščio, kurį turime kaištyje A1. Arčiausiai fotorezistoriaus esančiam rezistoriui būtinai naudokite 10K omą.
3 pav
Ši schema naudojama temperatūros jutikliui prijungti. Nepamirškite supainioti čia naudojamo tranzistoriaus su temperatūros jutikliu. Jie atrodo beveik identiški. Temperatūros jutiklio plokščioje jutiklio pusėje greičiausiai bus parašytas TMP arba koks nors kitas scenarijus. Laidavimas čia yra labai paprastas, mūsų temperatūros jutiklis yra prijungtas prie analoginio kaiščio A0 su baltu laidu.
4 pav
Aukščiau esanti nuotrauka buvo naudojama „DAGU Mini DC“pavarų dėžės vielai prijungti. Žalia viela, pritvirtinta prie pavarų dėžės, iš tikrųjų yra raudona viela, prijungta prie mūsų paveikslėlyje. Pavarų dėžė prie mūsų modelio oranžine viela prijungta prie skaitmeninio kaiščio 11. Nepamirškite supainioti čia naudojamo tranzistoriaus su temperatūros jutikliu. Jie atrodo beveik identiški. Temperatūros jutiklio plokščioje jutiklio pusėje greičiausiai bus parašytas TMP arba koks nors kitas scenarijus. Čia turite naudoti tranzistorių, o ne temperatūros jutiklį.
4 žingsnis: „Arduino“kodas
Čia paaiškinamos svarbiausios kodo dalys. Kodas neveiks tik su tuo, kas čia pateikta. Norėdami gauti visą darbo kodą, puslapio apačioje yra nuoroda.
Kurdami programuojamo termostato kodą, vienas iš pirmųjų dalykų, kurį turite padaryti, yra nustatyti jutiklius ir sukurti kilpą, kuri nuolat gaus temperatūros rodmenis iš temperatūros jutiklio.
Temperatūros jutiklio ir šviesos diodo nustatymas:
tempPin = 'A0';%apibrėžia anoniminę funkciją, kuri įtampą paverčia temperatūra tempCfromVolts = @(voltai) (0,5 volto)*100; mėginių ėmimo trukmė = 5; %sekundžių. Kiek laiko norime imti mėginius atrankaiInterval = 1; %Kiek sekundžių tarp temperatūros rodmenų %nustatyti mėginių ėmimo laiko vektorių samplingTimes = 0: samplingInterval: samplingDuration; %apskaičiuoja mėginių skaičių pagal trukmę ir intervalą numSamples = ilgis (samplingTimes); %iš anksto paskirstyti temp kintamuosius ir rodmenų skaičiaus kintamąjį, kuriame bus saugomi tempC = nuliai (numSamples, 1); tempF = tempC; %Šį kartą naudosime ciklą, kad iš anksto nustatytume %temperatūros rodmenų skaičių
Kilpa:
indeksui = 1: numSamples %nuskaito įtampą tempPin ir saugo kintamųjų voltų voltais = readVoltage (a, tempPin); tempC (indeksas) = -1*tempCfromVolts (voltai+0,3); tempF (indeksas) = tempC (indeksas)*(9/5) +32; %Rodyti suformatuotą išvestį, perduodančią esamą temperatūros rodinį fprintf ('Temperatūra %d sekundėje yra %5,2f C arba %5,2f F. / n',… samplingTimes (indeksas), tempC (indeksas), tempF (indeksas)); %pastaba: šis rodomas vaizdas bus matomas tik iškart po to, kai kodas bus baigtas vykdyti, nebent nukopijuosite/įklijuosite kodą į paprastą scenarijaus failą. pauzė (samplingInterval) %vėlavimas iki kito mėginio pabaigos
Tada sukuriame savo vartotojo meniu, kad vartotojas galėtų nuspręsti, ar įjungti termostatą į rankinį, ar automatinį. Taip pat sukuriame klaidos kodą, jei vartotojas nepasirenka nė vienos iš dviejų parinkčių.
Rankinio režimo meniu reikalauja, kad vartotojas nustatytų termostato temperatūros numerį, tada jis, remdamasis rodmenimis, šildys namus, atvėsins namus arba veiks tuščiąja eiga. Norėdami nustatyti šią kodo dalį, naudojote temperatūros jutiklio temperatūros rodmenis ir sukūrėte kodą, kuris atvėsins namus, kai temperatūra bus aukštesnė už nustatytą temperatūrą, ir šildys namus, kai temperatūra bus žemesnė už nustatytą temperatūrą.
Gavę temperatūros rodmenis, galite sukurti kodą, kuris nurodys termostatui atvėsinti namus, kai temperatūra yra aukštesnė už nustatytą temperatūrą, ir šildyti namus, kai temperatūra yra žemesnė už nustatytą temperatūrą. Prototipo atveju mėlyna lemputė užsidega, kai termostatas turi atvėsti, o raudona lemputė užsidega, kai termostatas turi įkaisti.
Meniu sąranka:
pasirinkimai = {'Automatinis', 'Rankinis'}; imode = meniu ('Režimas', pasirinkimai), jei imode> 0 h = msgbox (['Jūs pasirinkote' pasirinkimus {imode}]); else h = warndlg ('Jūs uždarėte meniu nepasirinkę') end waitfor (h);
Rankinis režimas reikalauja, kad vartotojas įvestų termostato temperatūrą, tada, remdamasis temperatūros jutiklio rodmenimis, jis pradės arba vėsinti namo šildymo namus. Jei temperatūros jutiklio rodmenys viršys nustatytą temperatūrą, jis pradės vėsinti namus. Jei temperatūros jutiklio rodmenys yra žemesni už nustatytą temperatūrą, jis šildys namus.
Rankinis režimas prasidės:
if imode == 2 dlg_prompts = {'Kokios temperatūros norėtumėte?'}; dlg_title = 'Temperatūra'; dlg_defaults = {'68'}; opts. Resize = 'įjungtas'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Atšaukėte komandą inputdlg'); else temp_manual = str2double (dlg_ans {1}) %[Pridėti temperatūros reguliavimo sąrankos skaidrę žemiau] pabaiga
Rankinio režimo „if“teiginio viduje turite parašyti meniu sąsają, kad vartotojas galėtų pasirinkti norimą namų temperatūrą, tada įdiekite tam tikrą teiginį, kuris reguliuos namų temperatūrą.
Temperatūros reguliavimas:
tuo tarpu temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); pabaiga, kol temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); galas
Automatinis režimas reikalauja daugiau įėjimų nei rankinis. Įjungęs automatinį režimą, vartotojas savo termostatui nustatys įprastą ir išvykimo temperatūrą. Pasirinkęs šias parinktis, atsižvelgdamas į tai, kuriame režime yra termostatas, jis grįš į temperatūros reguliavimo režimą
Nustatykite automatinį režimą:
elseif imode == 1 dlg_prompts = {'Normal', 'Away'}; dlg_title = 'Temperatūros nustatymai'; dlg_defaults = {'68', '64'}; opts. Resize = 'įjungtas'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Atšaukėte komandą inputdlg'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) pabaigos laukimas (h); %[Pridėti judesio detektoriaus žingsnį žemiau]
Taip pat turime nustatyti judesio jutiklį automatinio režimo nustatymams. Kai judesio detektorius surenka judesį, jis išlaikys esamą temperatūrą, priešingu atveju nustatys tolimą temperatūrą.
Run_Motion_Detector (a, inf), o lightStr == 0 temp = temp_away, o temp tempF writeDigitalPin (a, 'D6', 1) kokia raudona lemputė yra taip pat ventiliatoriaus rašymo variklyjeDigitalPin (a, 'D9', 1); pabaiga pabaiga, kol šviesaStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %pasikeičia į bet kokį smeigtuką, kuriame yra įprasta šviesa, o temp tempF writeDigitalPin (a, 'D6', 1) taip pat įjungta raudona lemputė variklis, skirtas ventiliatoriaus rašymuiDigitalPin (a, 'D9', 1); pabaiga galas
Visą kodą rasite čia.
Rekomenduojamas:
Kambario termostatas - „Arduino + Ethernet“: 3 žingsniai
Kambario termostatas-„Arduino + Ethernet“: Kalbant apie techninę įrangą, projekte naudojami: „Arduino Uno“/ „Mega 2560 Ethernet“skydas „Wiznet W5100“/ „Ethernet“modulis „Wiznet W5200-W5500 DS18B20“temperatūros jutiklis ant „OneWire“magistralės relės SRD-5VDC-SL-C, naudojamas katilui perjungimas
Išmanusis termostatas ESP8266: 6 žingsniai (su nuotraukomis)
Išmanusis termostatas ESP8266: Bienvenue sur ce nouvel straipsnis. On se retrouve aujourd'hui pour un projet que j'ai réalisé durant tout ce temps libre que m'a offert le encinement. Siūlome pasiūlyti vieną, bet ne vieną efektyvią déménager dans une vieille maison et l
„HestiaPi Smart“termostatas FR4: 3 žingsniai
„HestiaPi Smart Thermostat FR4“dėklas: „HestiaPi“yra atviras išmanusis termostatas, skirtas jūsų namams. Jis veikia „OpenHAB“įrenginyje „Raspberry Pi Zero W“, jame yra jutiklinis ekranas, temperatūros/drėgmės jutiklis ir relės, kurios maitinamos tiesiogiai iš esamos jūsų namų elektros instaliacijos. buvo paleistas
LapStat - nešiojamojo kompiuterio termostatas: 6 žingsniai
„LapStat“- nešiojamojo kompiuterio termostatas: „LapStat“yra jūsų nešiojamojo kompiuterio termostatas! Nešiojamojo kompiuterio temperatūrai matuoti naudojami du temperatūros jutikliai kiekvienoje nešiojamojo kompiuterio pusėje. Tada jis valdo dviejų ventiliatorių greitį, kad atvėsintų jūsų kompiuterį. Ventiliatoriai yra galingesni už
„HestiaPi Touch“- atidarytas išmanusis termostatas: 9 žingsniai (su nuotraukomis)
„HestiaPi Touch“- atviras išmanusis termostatas: Apie „HestiaPi Touch“„HestiaPi Touch“yra visiškai atviro kodo išmanusis termostatas jūsų namams. Visi skaitmeniniai failai ir informacija yra prieinami žemiau ir mūsų pagrindinėje svetainėje. Su juo galite stebėti savo namų temperatūrą, santykinę drėgmę ir atmosferą