Мазмұны:

Ақылды үй термостаты: 4 қадам
Ақылды үй термостаты: 4 қадам

Бейне: Ақылды үй термостаты: 4 қадам

Бейне: Ақылды үй термостаты: 4 қадам
Бейне: ARO - Қимастық жыры (Live) 2024, Қараша
Anonim
Ақылды үй термостаты
Ақылды үй термостаты

Біздің Smart Home термостаты - бұл адамның қалауы бойынша коммуналдық төлемдерге үй шаруашылығының ақшасын автоматты түрде үнемдей алатын бағдарлама.

1 -қадам: Шолу

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

Термостаттың екі режимі бар: қолмен және автоматты. Қолданушы режимі үй температурасын қалаған температураға реттейді. Ал термостаттың автоматты режимі үйдегі температураны пайдаланушы алдын ала орнатқан температураға автоматты түрде өзгертеді. Автоматты режим үшін екі температура параметрі болады: алыс және қазіргі температура. Қашықтағы температура пайдаланушы үйде болмаған кезде термостатты алдын ала орнатылған энергия үнемдеу температурасына өзгерту арқылы энергияны үнемдеу үшін қолданылады. Қазіргі температура пайдаланушы үйде болғанда және қолайлы температураны қалаған кезде қолданылады. Термостаттың автоматты режимінде қозғалыс сенсорлары біреудің үйде немесе жоқтығын анықтау үшін қозғалысты белсенді түрде іздейді. Олардың көрсеткіштеріне сүйене отырып, үйдегі температура алыс немесе қазіргі температураға қойылады.

2 -қадам: Бөлшектер мен материалдар

(15) Өтпелі сымдар

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

(1) 10К Ом резисторы

(1) Температура сенсоры

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

(1) DAGU Mini DC беріліс қорабы

(1) диод

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

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

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

(1) Arduino MKR

3 -қадам: Схема

Схема
Схема
Схема
Схема
Схема
Схема
Схема
Схема

1 -сурет = Үлкен сол жақ сурет

2 -сурет = Жоғарғы оң жақ

3 -сурет = Ортаңғы оң жақ

4 -сурет = Төменгі оң жақ

Сурет 1

Жоғарыдағы диаграмманы қолдана отырып, біз үш светодиодтың әрқайсысын жалғадық. Біз үлкен нан тақтамен жұмыс істеген кезден бастап әр жарық диодты бөліп алдық. Кішкене нан тақталары үшін светодиодтарды жақынырақ қою қажет болуы мүмкін. Сонымен қатар, тақтаны қуаттандырудың қажеті жоқ, себебі светодиодтар аз қуат алады. Біз светодиодтар үшін тақтаның 5В қосылымын пайдаланбадық. Светодиодтардан біздің Arduino -ға әр қосылу жоғарыдағы жасыл сым сияқты жасалды. Біздің қызыл, көк және жасыл светодиодтар сәйкесінше 8, 9 және 10 цифрлық түйреуішке қосылған, олар біздің суретте қызыл, көк және жасыл сыммен белгіленген.

2 -сурет

Жоғарыдағы диаграмма фоторезисторды сымға қосуға арналған. Біз өз бетімізше бірнеше түзетулер енгіздік; дегенмен тұжырымдамалар бұрынғыдай. Фоторезистор А1 түйреуішіндегі аналогтық түйреуішке қосылуы керек. Фоторезисторға ең жақын резистор үшін 10 К Ом резисторды қолданғаныңызға көз жеткізіңіз.

3 -сурет

Бұл температура датчигін сыммен қосуға арналған диаграмма. Мұнда қолданылатын транзисторды температура сенсорымен қателеспеңіз. Олар шамамен бірдей көрінеді. Температура сенсорында сенсордың жазық жағында TMP немесе басқа сценарий болуы мүмкін. Бұл жердегі сымдар өте қарапайым, біздің температура сенсоры ақ сыммен A0 аналогтық түйреуішіне қосылған.

Сурет 4

Жоғарыдағы сурет DAGU Mini DC беріліс қорабын сымдау үшін қолданылған. Редукторға бекітілген жасыл сым - бұл біздің суретте қосылған қызыл сым. Беріліс қорабы біздің модельде қызғылт сары сыммен сандық пин 11 -ге қосылған. Мұнда қолданылатын транзисторды температура сенсорымен қателеспеңіз. Олар шамамен бірдей көрінеді. Температура сенсорында сенсордың жазық жағында TMP немесе басқа сценарий болуы мүмкін. Мұнда температура сенсоры емес, транзисторды пайдалану керек.

4 -қадам: Arduino коды

Мұнда кодтың ең маңызды бөліктері түсіндіріледі. Код мұнда берілгендермен ғана жұмыс істемейді. Толық жұмыс кодын алу үшін беттің төменгі жағында сілтеме бар.

Бағдарламаланатын термостаттың кодын жасаған кезде, сенсорларды орнату және температура сенсорынан температура көрсеткіштерін үнемі алатын «цикл» құру бірінші болып табылады.

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

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

For циклы:

index = 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 -ге көшірмесеңіз/қоймасаңыз. кідіріс (іріктеу аралығы) %іріктеу келесі іріктеу соңына дейін

Содан кейін біз пайдаланушыға термостатты қолмен немесе автоматты режимге қоюды шешетін пайдаланушы мәзірін жасаймыз. Егер пайдаланушы екі нұсқаның бірін таңдамаса, біз қате кодын жасаймыз.

Қолмен жұмыс режимі мәзірі пайдаланушыға термостат температурасының нөмірін орнатуды талап етеді, содан кейін ол үйді жылытуға, үйді салқындатуға немесе көрсеткіштердің негізінде бос тұруға мүмкіндік береді. Кодтың осы бөлігін орнату үшін сіз температура сенсорынан температура көрсеткіштерін қолдандыңыз және температура көрсеткіші белгіленген температурадан жоғары болған кезде үйді салқындататын код құрдыңыз, ал температура көрсеткіші белгіленген температурадан төмен болғанда үйді жылытасыз.

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

Мәзірді орнату:

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 = «қосулы»; 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 = «қосулы»; 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}) күтудің соңы (с); %[Қозғалыс детекторының төмендегі қадамын қосу]

Біз сондай -ақ Автоматты режим параметрлері үшін қозғалыс сенсорын орнатуымыз керек. Қозғалыс детекторы қозғалысты алған кезде, ол температураны қазіргі температура режимінде ұстайды, әйтпесе ол алыс температура параметріне орнатылады.

Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) кез келген істікшенің қызыл шамы желдеткіштің WriteDigitalPin (a, 'D9', 1) қозғалтқышында болса; lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %қалыпты температура кез келген істікшеге өзгереді, ал temp tempF writeDigitalPin (a, 'D6', 1) кез келген істік қызыл шамы вентиляторға арналған қозғалтқышDigitalPin (a, 'D9', 1); соңы соңы

Толық кодты мына жерден табуға болады.

Ұсынылған: