Përmbajtje:

Termostati Smart Home: 4 hapa
Termostati Smart Home: 4 hapa

Video: Termostati Smart Home: 4 hapa

Video: Termostati Smart Home: 4 hapa
Video: Термостат для газового котла, комнатный термостат AVATTO и голосовое управление. Мастер до всех дел. 2024, Korrik
Anonim
Termostat i Shtëpisë së Zgjuar
Termostat i Shtëpisë së Zgjuar

Termostati ynë Smart Home është një program që mund të kursejë automatikisht një para shtëpie në faturat e shërbimeve bazuar në preferencat e një personi.

Hapi 1: Vështrim i përgjithshëm

Termostati Smart Home përdor një sensor të temperaturës për të marrë temperaturën e shtëpisë. Ky lexim i temperaturës futet në program ku do të vendosë nëse sistemi i kondicionimit duhet të ngrohë ose ftojë shtëpinë bazuar në temperaturën e dëshiruar të pronarit të shtëpisë.

Ekzistojnë dy mënyra për termostatin: manual dhe automatik. Modaliteti manual që do të rregullojë temperaturën e shtëpisë në cilindo temperaturë të dëshiruar të vendosur nga përdoruesi. Dhe mënyra automatike e termostatit do të ndryshojë automatikisht temperaturën e shtëpisë në temperaturat e paracaktuara nga përdoruesi. Do të ketë dy cilësime të temperaturës për modalitetin automatik: temperatura larg dhe temperatura aktuale. Temperatura e largët përdoret për të kursyer energji duke ndryshuar termostatin në një temperaturë të paracaktuar të kursimit të energjisë sa herë që përdoruesi nuk është në shtëpi. Temperatura aktuale do të përdoret kur përdoruesi është në shtëpi dhe dëshiron një temperaturë të rehatshme. Kur jeni në modalitetin automatik të termostatit, sensorët e lëvizjes kërkojnë në mënyrë aktive lëvizjen për të përcaktuar nëse dikush është në shtëpi apo jo. Bazuar në leximin e tyre, temperatura e shtëpisë ose do të vendoset në temperaturën e largët ose temperaturën aktuale.

Hapi 2: Pjesët dhe materialet

(15) Telat Jumper

(4) Rezistenca 220 Ohm

(1) Rezistencë 10K Ohm

(1) Sensori i Temp

(1) Rezistenca e fotove

(1) Kuti ingranazhi DAGU Mini DC

(1) Diodë

(1) Transistor

(1) Fotorezistor

(1) Breadboard

(1) Arduino MKR

Hapi 3: Qarku

Qarku
Qarku
Qarku
Qarku
Qarku
Qarku
Qarku
Qarku

Figura 1 = Fotografi e madhe majtas

Figura 2 = Sipër djathtas

Figura 3 = E Djathta e Mesme

Figura 4 = Djathtas poshtë

Figura 1

Duke përdorur diagramin e mësipërm, ne lidhëm secilën prej tre LED -ve tanë. Ne e ndamë secilën LED që kur po punonim me një dërrasë të madhe bukë. Për dërrasat më të vogla të bukës, mund të jetë e nevojshme të vendosni LED -të më afër njëri -tjetrit. Gjithashtu, është e panevojshme të fuqizoni bordin e bukës pasi LED -të tërheqin kaq pak energji. Ne nuk përdorëm lidhjen 5V në panelin e bukës për LED. Çdo lidhje nga LED -të me Arduino -n tonë është bërë sikur tela jeshile të jetë sipër. LED -et tona të kuqe, blu dhe jeshile janë të lidhura me Pin Pin 8, 9 dhe 10 respektivisht, të përcaktuar me një tel të kuq, blu dhe jeshil në figurën tonë.

Figura 2

Diagrami i mësipërm është përdorur për lidhjen e fotorezistencës. Ne bëmë disa korrigjime tona; megjithatë konceptet janë ende të njëjta. Fotorezistori duhet të lidhet me një kunj analog të cilin e kemi në kunjin A1. Sigurohuni që të përdorni një rezistencë 10K Ohm për rezistencën më të afërt me fotorezistuesin.

Figura 3

Ky është diagrami i përdorur për të lidhur sensorin e temperaturës. Sigurohuni që të mos gaboni transistorin e përdorur këtu me sensorin e temperaturës. Ata duken pothuajse identikë. Sensori i temperaturës ka të ngjarë të ketë TMP ose ndonjë skenar tjetër të shkruar në anën e sheshtë të sensorit. Instalimet elektrike këtu janë shumë të thjeshta sensori ynë i temperaturës është i kyçur në kunjin analog A0 me një tel të bardhë.

Figura 4

Fotografia e mësipërme është përdorur për të lidhur DAGU Mini DC Gearbox. Teli jeshil i bashkangjitur në kutinë e ingranazheve është në të vërtetë tela e kuqe e lidhur me të në foton tonë. Kutia e shpejtësisë është e lidhur me pinin dixhital 11 me një tel portokalli në modelin tonë. Sigurohuni që të mos gaboni transistorin e përdorur këtu me sensorin e temperaturës. Ata duken pothuajse identikë. Sensori i temperaturës ka të ngjarë të ketë TMP ose ndonjë skenar tjetër të shkruar në anën e sheshtë të sensorit. Këtu duhet të përdorni transistorin dhe jo sensorin e temperaturës.

Hapi 4: Kodi Arduino

Këtu, pjesët më të rëndësishme të kodit shpjegohen. Kodi nuk do të funksionojë vetëm me atë që është dhënë këtu. Për të marrë kodin e plotë të punës, ekziston një lidhje në fund të faqes.

Kur krijoni kodin e programueshëm të termostatit, një nga gjërat e para që bëni është të vendosni sensorët dhe të krijoni një lak për që do të marrë vazhdimisht lexime të temperaturave nga sensori i temperaturës.

Vendosja e sensorit të temperaturës dhe LED:

tempPin = 'A0';%përcaktojnë funksionin anonim që konverton tensionin në temperaturë tempCfromVolts = @(volt) (volt-0.5)*100; samplingDuration = 5; %sekonda. Sa kohë duam të marrim mostër për marrjen e mostrësInterval = 1; %Sa sekonda midis leximeve të temperaturës %krijoi vektorin e kohës së marrjes së kampionit samplingTimes = 0: samplingInterval: samplingDuration; %llogarit numrin e mostrave bazuar në kohëzgjatjen dhe intervalin Numrat e mostrave = gjatësia (koha e marrjes së mostrave); %paraalokoni variablat temp dhe ndryshoren për numrin e leximeve që do të ruajë tempC = zero (numSample, 1); tempF = tempC; %Ne do të përdorim një lak for këtë herë për të marrë një numër të paracaktuar të %leximeve të temperaturës

Lak për for:

për indeksin = 1: numS shembujt %lexojnë tensionin në tempPin dhe ruajnë në volt të ndryshueshëm volt = lexoTension (a, tempPin); tempC (indeksi) = -1*tempCfromVolts (volt+0.3); tempF (indeksi) = tempC (indeksi)*(9/5) +32; %Shfaq daljen e formatuar që komunikon leximin e temperaturës aktuale fprintf ('Temperatura në %d sekonda është %5.2f C ose %5.2f F. / n',… samplingTimes (indeksi), tempC (indeksi), tempF (indeksi)); %vini re se kjo dalje e ekranit do të bëhet e dukshme vetëm njëherësh pasi kodi të ketë mbaruar %nëse nuk e kopjoni/ngjisni kodin në një skedar të thjeshtë skripti. pauzë (samplingInterval) %vonesë deri në përfundimin e mostrës tjetër

Tjetra, ne krijojmë menunë tonë të përdoruesit që përdoruesi të vendosë nëse do ta vendosë Termostatin në modalitetin manual ose automatik. Ne gjithashtu krijojmë një kod gabimi nëse përdoruesi nuk zgjedh asnjë nga dy opsionet.

Menyja e modalitetit manual kërkon nga përdoruesi të caktojë një numër për temperaturën e termostatit, atëherë ai ose do të ngrohë shtëpinë, do të ftojë shtëpinë ose do të jetë i papunë bazuar në leximet. Për të konfiguruar këtë pjesë të kodit, keni përdorur leximet e temperaturës nga sensori i temperaturës dhe keni krijuar kod që do ta ftohë shtëpinë kur leximi i temperaturës është më i lartë se temperatura e caktuar dhe do ta ngroh shtëpinë kur leximi i temperaturës është më i ulët se temperatura e caktuar.

Pasi të keni leximet e temperaturës, mund të krijoni kodin që do t'i tregojë termostatit të ftojë shtëpinë kur leximi i temperaturës është më i lartë se temperatura e caktuar dhe ngrohni shtëpinë kur leximi i temperaturës është më i ulët se temperatura e caktuar. Për prototipin, drita blu ndizet kur termostati duhet të ftohet dhe drita e kuqe ndizet kur termostati duhet të nxehet.

Konfigurimi i menysë:

zgjedhje = {'Automatike', 'Manual'}; imode = menu ('Modaliteti', zgjedhje) nëse imode> 0 h = msgbox (['Ti zgjodhe' zgjedhjet {imode}]); else h = warndlg ("Mbyllët menunë pa bërë zgjedhje") përfundoni pritjen (h);

Modaliteti manual kërkon që përdoruesi të vendosë një temperaturë për termostatin, pastaj bazuar në leximet nga sensori i temperaturës, ai do të fillojë ose të ftohë shtëpinë e ngrohjes së shtëpisë. Nëse leximi i sensorit të temperaturës është më i lartë se temperatura e caktuar, do të fillojë ftohjen e shtëpisë. Nëse leximi i sensorit të temperaturës është më i ulët se temperatura e caktuar, ai do të ngrohë shtëpinë.

Modaliteti manual do të fillojë:

nëse imode == 2 dlg_prompts = {'Çfarë temperature do të preferonit?'}; dlg_title = 'Temperatura'; dlg_defaults = {'68'}; opts. Resize = 'aktiv'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opt); nëse është i zbrazët (dlg_ans) h = warndlg ('Ke anuluar komandën inputdlg'); tjetër temp_manual = str2double (dlg_ans {1}) %[Shto rrëshqitjen e Konfigurimit të Rregullimit të Temperaturës më poshtë] fund

Brenda deklaratës if për modalitetin manual, duhet të shkruani ndërfaqen e menysë që përdoruesi të zgjedhë temperaturën e dëshiruar të shtëpisë, dhe më pas të zbatojë një deklaratë ndërkohë që do të rregullojë temperaturën e shtëpisë.

Konfigurimi i rregullimit të temperaturës:

ndërsa temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); përfundoj ndërsa temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); fund

Modaliteti automatik kërkon më shumë hyrje sesa mënyra manuale. Pas hyrjes në modalitetin automatik, përdoruesi do të vendosë një temperaturë Normale dhe një Larg për termostatin e tyre. Pas zgjedhjes së këtyre, në bazë të cilës gjendje është termostati, ai do të kthehet përsëri në modalitetin e rregullimit të temperaturës

Vendosni modalitetin automatik:

elseif imode == 1 dlg_prompts = {'Normal', 'Larg'}; dlg_title = 'Cilësimet e temperaturës'; dlg_defaults = {'68', '64'}; opts. Resize = 'aktiv'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opt); nëse është i zbrazët (dlg_ans) h = warndlg ('Ke anuluar komandën inputdlg'); përndryshe temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) fund pritjeje (h); %[Shto hapin e detektorit të lëvizjes më poshtë]

Ne gjithashtu duhet të konfigurojmë sensorin e lëvizjes për cilësimet e modalitetit automatik. Kur detektori i lëvizjes merr lëvizje, ai do të mbajë temperaturën në cilësimin e temperaturës aktuale, përndryshe do të vendoset në cilësimin e temperaturës larg.

Run_Motion_Detector (a, inf) ndërsa lightStr == 0 temp = temp_away ndërsa temp tempF writeDigitalPin (a, 'D6', 1) çfarëdo drite e kuqe pin është gjithashtu në motorin për shkrimin e ventilatorit DigitalPin (a, 'D9', 1); mbaron ndërsa dritaStr == 1 temp = temp_ormal shkrimDigitalPin (a, 'D6', 1) %ndryshim në cilindo kunj në të cilën ndodhet drita normale, ndërsa temp tempF shkruajDigitalPin (a, 'D6', 1) në çfarëdo dritë të kuqe pin është gjithashtu motor për shkrimin e ventilatoritDigitalPin (a, 'D9', 1); fund fund

Kodin e plotë mund ta gjeni këtu.

Recommended: