Мазмұны:

Arduino Smart Home жүйесі: 7 қадам
Arduino Smart Home жүйесі: 7 қадам

Бейне: Arduino Smart Home жүйесі: 7 қадам

Бейне: Arduino Smart Home жүйесі: 7 қадам
Бейне: Arduino ультрадыбыстық ылғалдағышты қалай жасауға болады 2024, Шілде
Anonim
Arduino ақылды үй жүйесі
Arduino ақылды үй жүйесі
Arduino ақылды үй жүйесі
Arduino ақылды үй жүйесі

Бұл нұсқаулықта біз Sparkfun Red тақтасы бар MATLAB App Designer көмегімен ақылды үй жүйесін қалай құруға болатынын көрсетеміз. Бұл нұсқаулықты MATLAB -тың қолданбалы дизайнері туралы, сонымен қатар фоторезистор, сервомотор және PIR қозғалыс сенсоры туралы түсінік алу үшін қолдануға болады.

1 -қадам: Бастау: материалдар

Бұл жоба келесі материалдарды қажет етеді:

- Arduino Uno (бұл жоба үшін біз Sparkfun Red тақтасын қолдандық)

- Бір фоторезистор

- Бір мини-серво қозғалтқышы

- бір үздіксіз серво қозғалтқышы

- бір PIR қозғалыс сенсоры

- Бір температура сенсоры

- 2 жарық диоды

- Қажет болса, сымдар мен резисторлар

2 -қадам: 2 -қадам: Мәселені шешуге жақындау

Бұл жобаның басты мақсаты - Arduino Uno тақтасын MATLAB көмегімен кодтау арқылы ақылды үйдің қарапайым жүйесін құру. Біз алдымен температура мен ылғалдылық сенсорымен жұмыс істеу туралы ойладық, бірақ егер біз осы екі сенсорда қалсақ, біздің ақылды үй жүйесі қарапайым аудиторияға оңай сатылмайтын еді. Біз ақылды термостат пен қауіпсіздік жүйесі ретінде жұмыс істейтін ақылды үйдің жалпы энергия жүйесін құрғымыз келеді деп шештік. Ақырында, біз MATLAB -тың AppDesigner -мен жұмыс жасағымыз келді, сондықтан пайдаланушы ақылды үйді өз қалауынша оңай өзгерте алады.

3 -қадам: 3 -қадам: GUI мен негізгі код ағынын конфигурациялау

3 -қадам: GUI мен негізгі код ағынын конфигурациялау
3 -қадам: GUI мен негізгі код ағынын конфигурациялау

Бастау үшін MATLABs AppDesigner бағдарламасын ашып, келесіні қою қажет:

Ыстық және суық шектік енгізу үшін екі сандық өңдеу өрісі

Есіктің құлпын ашатын түйме

Каминге, есікке, желдеткішке және жарық шамына арналған төрт көрсеткіш шам.

Қолданушымен байланысу үшін екі белгі.

Бұл жоба үшін біз дизайнердегі жаһандық айнымалылармен және іске қосу функциясымен жұмыс жасауды жеңілдеттік. Іске қосу функциясында сізге бұл айнымалылар қажет болады:

жаһандық а

a = arduino ('COM3', 'uno', 'Кітапханалар', 'Серво'); жаһандық ғаламдық жаһандық қызу интерфейсінің жаһандық суық интерфейсі жаһандық темпті жаһандық құлыптан босату global Curr_temp global int_light

Дәл қазір бізде айнымалыға арналған тапсырма бар, сондықтан сіздің компьютеріңіз arduino -ны оқи алады. COM3 сіздің компьютеріңіз қолданатын портқа байланысты әр түрлі болуы мүмкін.

Сіз кодты іске қосқанда, ол жаһандық айнымалыларды құратын және жүйені калибрлейтін іске қосу функциясында басталады. Бұл функцияның соңында біз Таймер деп аталатын қасиетті шақыратын таймер функциясы болады. Таймер калибрлеу кодын қайта іске қоспайтындықтан, бұл Timer қасиетіне біз үй жүйесін басқаратын кодты енгіземіз.

Ескертпе: біз жүйеге сымдар туралы нұсқаулар бермедік. Біз SparkFun Red тақтасымен бірге келетін нұсқаулықты қарастырдық.

4 -қадам: 3 -қадам: Термостат жүйесін орнату

3 -қадам: Термостат жүйесін орнату
3 -қадам: Термостат жүйесін орнату
3 -қадам: Термостат жүйесін орнату
3 -қадам: Термостат жүйесін орнату

Термостат функциясы келесідей жұмыс істейді:

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

Термостат жүйесін кодтау үшін:

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

p = 'A0' %Фоторезисторлы түйреуіш

вольт = readVoltage (a, temp); celc = (вольт-0,5).*100; Curr_temp = celc*9/5+32; app. Label_4. Text = num2str (Curr_temp); %Белгі нөмірі кідірісті өзгерте алады (10); %Өзгергісі келуі мүмкін !!!!!

Содан кейін біз Timer қасиетіндегі термостат жүйесін аяқтаймыз.

жаһандық Curr_temp

global coldUI жаһандық жаһандық hotUI егер Curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0.19]; %GUI шамын жасыл түске айналдырады WritePWMDutyCycle (a, 'D11',.9) %Келесі үш код жолы servo желдеткішінің кідірісін (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Бұл барлық GUI шамдары мен камин қосымшасын өшіреді. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); Соңы

5 -қадам: 4 -қадам: Есік жүйесін орнату

4 -қадам: Есік жүйесін орнату
4 -қадам: Есік жүйесін орнату

Есіктің функциясы келесідей жұмыс істейді:

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

Серво қозғалтқышы мен фоторезисторды конфигурациялау үшін:

Есік жүйесін кодтау үшін:

Біз бастапқы жарық көрсеткіштерін алу үшін іске қосу функциясынан бастаймыз.

s = servo (a, 'D9') %Сымға байланысты түйреуіш өзгеруі мүмкін

app. Label_4. Text = 'Жүйені калибрлеу үшін есікті ашыңыз'; үзіліс (15); %Бұл пайдаланушыға int_light = readVoltage (a, p) есігін ашуға уақыт береді; app. Label_4. Text = 'Сіз саусағыңызды алып тастай аласыз';

Содан кейін біз кодты Timer қасиетінде аяқтаймыз

жаһандық құлыпты ашу

global int_light global s global a %Curr_light = readVoltage (a, p) салыстыру үшін ағымдағы жарық көрсеткішін алыңыз; % - Есікті құлыптау - егер int_light <Curr_light writePosition (s, 1) % Серво позициялары әр қозғалтқыш кідірісінде әр түрлі болуы мүмкін (0,5); app. DoorStateLamp. Color = [0,47 0,67 0.19]; end % - Unlock Door - егер құлыпты ашу == 1234 кідіріс (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0.10]; Соңы

Соңында біз құлыпты ашу түймесін қайта шақыруды жасаймыз. Пайдаланушы құлыптан босату түймесін басқаннан кейін, жаһандық айнымалы құлыпқа Timer қасиетіндегі if операторын аяқтай алатын нөмір беріледі.

жаһандық құлыпты ашу

құлпын ашу = 1234;

6 -қадам: 6 -қадам: Су тасқыны жүйесін орнату

6 -қадам: Су тасқыны жүйесін орнату
6 -қадам: Су тасқыны жүйесін орнату

Су тасқыны функциясы келесідей жұмыс істейді:

Сіз MATLAB кодын бастаған кезде PIR қозғалыс сенсоры қозғалысты анықтай бастайды. Ол қозғалыстың қандай да бір түрін анықтағаннан кейін, ол қуат сигналын өшіреді. Бұл сигнал үзілгеннен кейін, үйдің сыртында тасқын шамы жанады.

Жарықтандыру жүйесін реттеу үшін:

Тасқын жарық жүйесін кодтау үшін:

Бұл жолы біз Timer қасиетіне ауыса аламыз, себебі қосымша айнымалыларды жазудың қажеті жоқ.

human_detected = readDigitalPin (a, 'D2'); %PIN коды конфигурацияға байланысты өзгеруі мүмкін, егер human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D7', 0) соңы

7 -қадам: Қорытынды

Енді сізде GUI қосымшасының конструкторы бар жоба және Arduino коды бар, сіз өзіңіздің өңдеулеріңізді жасауға немесе Arduino -ды қосуға дайынсыз!

Ұсынылған: