Мазмуну:

Smart Home термостаты: 4 кадам
Smart Home термостаты: 4 кадам

Video: Smart Home термостаты: 4 кадам

Video: Smart Home термостаты: 4 кадам
Video: Запомни эту хитрость по доработке перфораторы для ровного сверления 2024, Июль
Anonim
Smart Home термостаты
Smart Home термостаты

Биздин Smart Home Thermostat - бул адамдын каалоосуна жараша коммуналдык төлөмдөр боюнча автоматтык түрдө үй чарбасынын акчасын үнөмдөөгө жардам берүүчү программа.

1 -кадам: Обзор

Smart Home термостаты үйдүн температурасын алуу үчүн температура сенсорун колдонот. Бул температура көрсөткүчү программага киргизилген, анда кондиционер тутуму үйдүн каалаган температурасына жараша үйдү жылытуу же муздатуу керекпи, ошону чечет.

Термостаттын эки режими бар: кол менен жана автоматтык. Колдонуучу каалаган температурага үйдүн температурасын тууралоочу кол режими. Ал эми термостаттын автоматтык режими колдонуучунун алдын ала койгон температурасына автоматтык түрдө үйдүн температурасын өзгөртөт. Автоматтык режимде эки температура орнотуулары болот: алыскы температура жана учурдагы температура. Колдонуучу үйдө болбогондо термостатты алдын ала белгиленген энергияны үнөмдөөчү температурага өзгөртүү аркылуу энергияны үнөмдөө үчүн колдонулат. Учурдагы температура колдонуучу үйдө жана ыңгайлуу температураны каалаганда колдонулат. Термостаттын автоматтык режиминде болгондо, кыймыл сенсорлору кимдир бирөөнүн үйдө же жок экенин аныктоо үчүн активдүү түрдө кыймыл издешет. Алардын окуусунун негизинде үйдүн температурасы алыскы температурага же азыркы температурага коюлат.

2 -кадам: Бөлүктөр жана материалдар

(15) Jumper Wires

(4) 220 Ом резисторлор

(1) 10K Ом резистору

(1) Temp Sensor

(1) Сүрөт резистору

(1) DAGU Mini DC редуктору

(1) Диод

(1) Транзистор

(1) фоторезистор

(1) Нан тактасы

(1) Arduino MKR

3 -кадам: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Figure 1 = Чоң сол сүрөт

Figure 2 = Жогорку оң

Figure 3 = Орто оң

Figure 4 = Оң жактагы

Figure 1

Жогорудагы диаграмманы колдонуп, биз үч светодиоддун ар бирине зым тарттык. Биз чоң нан тактасы менен иштегендиктен ар бир LEDди бөлүп койдук. Кичинекей нан такталары үчүн, LED ди жакыныраак коюу керек болушу мүмкүн. Ошондой эле, панелди күйгүзүүнүн кажети жок, анткени светодиоддор өтө аз энергия тартат. Биз светодиоддор үчүн панельдеги 5V байланышын колдонгон жокпуз. Светодиоддордон биздин Arduinoго ар бир байланыш жашыл зым жогорудагыдай жасалды. Биздин кызыл, көк жана жашыл диоддорубуз тиешелүү түрдө Digital Pin 8, 9 жана 10го туташып, биздин сүрөттө кызыл, көк жана жашыл зым менен белгиленген.

Figure 2

Жогорудагы диаграмма фоторезисторду зымга салуу үчүн колдонулган. Биз өзүбүздүн бир нече оңдоолорубузду киргиздик; бирок түшүнүктөр мурдагыдай эле. Фоторезистор А1 пининде бар аналогдук пинге туташтырылышы керек. Фоторезисторго эң жакын резистор үчүн 10K Ом резисторун колдонууну тактаңыз.

Figure 3

Бул диаграмма температура сенсору үчүн колдонулат. Бул жерде колдонулган транзисторду температура сенсору менен жаңылтпагыла. Алар дээрлик окшош көрүнөт. Температура сенсорунда, балким, сенсордун жалпак тарабында TMP же башка скрипт жазылган болот. Бул жердеги электр өткөргүчтөрү абдан жөнөкөй, биздин температура сенсорубуз ак зым менен A0 аналогдук пинге туташтырылган.

Figure 4

Жогорудагы сүрөт DAGU Mini DC редукторун зым менен жабуу үчүн колдонулган. Редукторго тиркелген жашыл зым чындыгында биздин сүрөттө ага туташкан кызыл зым. Редуктор биздин модельде кызгылт сары зым менен санарип пин 11ге туташкан. Бул жерде колдонулган транзисторду температура сенсору менен жаңылтпагыла. Алар дээрлик окшош көрүнөт. Температура сенсорунда, балким, сенсордун жалпак тарабында TMP же башка скрипт жазылган болот. Бул жерде температура сенсорун эмес, транзисторду колдонуу керек.

4 -кадам: Arduino коду

Бул жерде коддун эң маанилүү бөлүктөрү түшүндүрүлөт. Код бул жерде берилгендер менен гана иштебейт. Толук иштөө кодун алуу үчүн, беттин ылдый жагында шилтеме бар.

Программалануучу термостаттын кодун түзүүдө, эң биринчи кылгандардын бири - сенсорлорду орнотуу жана температура сенсорунан температуранын көрсөткүчтөрүн дайыма ала турган цикл түзүү.

Температура сенсорун жана LEDди орнотуу:

tempPin = 'A0';%чыңалууну температурага айландыруучу анонимдүү функцияны аныктайт tempCfromVolts = @(вольт) (вольт-0,5)*100; samplingDuration = 5; %секунд. SamplingInterval = 1 үчүн канча убакыт үлгү алгыбыз келет? %Температуранын көрсөткүчтөрүнүн ортосунда канча секунд %үлгү алуу убактысынын векторун орнотту samplingTimes = 0: samplingInterval: samplelingDuration; %үлгүлөрдүн санын эсептөөнүн узактыгы жана интервалынын негизинде numSamples = узундугу (samplingTimes); %темп өзгөрмөлөрүн жана ал окуган саны үчүн өзгөрмөнү алдын ала бөлүштүрөт, бул tempC = нөлдөрдү сактайт (numSamples, 1); tempF = tempC; %Бул жолу %циклинин алдын ала аныкталган санын алуу үчүн for циклин колдонобуз

For цикли:

индекс үчүн = 1: numSamples %tempPinдеги чыңалууну окуп, өзгөрмө вольтто сактайт = readVoltage (a, tempPin); tempC (индекс) = -1*tempCfromVolts (вольт+0.3); tempF (индекс) = tempC (индекс)*(9/5) +32; %Учурдагы температуранын fprintf окуусун билдирүүчү форматталган чыгууну көрсөтүү (' %d секундадагы температура %5.2f C же %5.2f F. / n',… samplingTimes (индекс), tempC (индекс), tempF (индекс)); %көңүл буруңуз, бул дисплейдин чыгышы код %аткарылгандан кийин дароо эле көрүнүп калат, эгер сиз кодду жөнөкөй скрипт mfile көчүрүп/чаптабасаңыз. пауза (samplingInterval) %кечиктирүү кийинки үлгү аягына чейин

Андан кийин, биз колдонуучуга термостатты колго же автоматтык режимге коюуну чечүү үчүн колдонуучу менюсун түзөбүз. Колдонуучу эки тандоонун бирин тандабаса, биз дагы ката кодун түзөбүз.

Кол режиминин менюсу колдонуучудан термостаттын температурасына номер коюуну талап кылат, андан кийин ал үйдү жылытат, үйдү муздайт же окуунун негизинде бош турат. Коддун бул бөлүгүн орнотуу үчүн, сиз температура сенсорунун температура көрсөткүчтөрүн колдондуңуз жана температура көрсөткүчү белгиленген температурадан жогору болгондо үйдү муздатуучу кодду түздүңүз жана температура көрсөткүчү белгиленген температурадан төмөн болгондо үйдү жылытасыз.

Температуранын көрсөткүчтөрүнө ээ болгондон кийин, сиз термостатка температуранын көрсөткүчү белгиленген температурадан жогору болгондо үйдү муздатууну жана температуранын көрсөткүчү белгиленген температурадан төмөн болгондо үйдү жылытууну айткан кодду түзө аласыз. Прототип үчүн термостат муздашы керек болгондо көк жарык күйөт, ал эми термостат ысытканда кызыл жарык күйөт.

Менюну орнотуу:

choices = {'Автоматтык', 'Кол менен'}; imode = меню ('Режим', тандоолор) эгерде imode> 0 h = msgbox (['Сиз тандаган' тандоолор {imode}]); else h = warningdlg ('Тандоо кылбай эле менюну жаптыңыз') end waitfor (h);

Кол режими колдонуучудан термостаттын температурасын киргизүүнү талап кылат, андан кийин температура сенсорунун көрсөткүчтөрүнө таянып, ал үйдү жылытуу үчүн муздай баштайт. Эгерде температура сенсорунун көрсөткүчү белгиленген температурадан жогору болсо, анда ал үйдү муздата баштайт. Эгерде температура сенсорунун көрсөткүчү белгиленген температурадан төмөн болсо, ал үйдү жылытат.

Кол режими башталат:

if imode == 2 dlg_prompts = {'Кайсы температураны каалайт элеңиз?'}; dlg_title = 'Температура'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warningdlg ('Сиз inputdlg буйругун жокко чыгардыңыз'); else temp_manual = str2double (dlg_ans {1}) %[Температураны жөнгө салуу слайдын астына кошуу] аягы

Колдонуу режими үчүн if билдирүүсүнүн ичинде, колдонуучу каалаган үй температурасын тандап алышы үчүн меню интерфейсин жазып, анан үй температурасын жөнгө сала турган while операторун ишке ашыруу керек.

Температураны жөнгө салуу:

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); аяктоо

Автоматтык режим кол режимине караганда көбүрөөк киргизүүнү талап кылат. Автоматтык режимге киргенден кийин, колдонуучу термостат үчүн Кадимки жана Сырттагы температураны орнотот. Термостат кайсы режимде экенине жараша буларды тандагандан кийин, ал кайра температураны жөнгө салуу режимине кайтат.

Автоматтык режимди орнотуу:

elseif imode == 1 dlg_prompts = {'Кадимки', 'Сыртта'}; dlg_title = 'Температуранын жөндөөлөрү'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warningdlg ('Сиз inputdlg буйругун жокко чыгардыңыз'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) күтүү мөөнөтүн аяктоо (h); %[Төмөндө Кыймыл детекторунун кадамын кошуу]

Биз ошондой эле Автоматтык режимдин орнотуулары үчүн кыймыл сенсорун орнотушубуз керек. Кыймыл детектору кыймылга келгенде, ал температураны учурдагы температура режиминде кармап турат, болбосо ал алыскы температура жөндөөсүнө коюлат.

Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) күйгүзгүч кызыл жарык күйгүзгүчтүн моторунда кандай болсо дагы жазууDigitalPin (a, 'D9', 1); lightStr == 1 темп = temp_normal writeDigitalPin (a, 'D6', 1) %, темп tempF writeDigitalPin (a, 'D6', 1) кадимки жарык турган нерсеге өзгөрөт. fanDijitalPin үчүн күйүүчү мотор (a, 'D9', 1); аягы аягы

Толук кодду бул жерден тапса болот.

Сунушталууда: