Мазмуну:

Arduino Smart Home системасы: 7 кадам
Arduino Smart Home системасы: 7 кадам

Video: Arduino Smart Home системасы: 7 кадам

Video: Arduino Smart Home системасы: 7 кадам
Video: УМНЫЕ ОТКАТНЫЕ ВОРОТА | Управление "Алисой" 2024, Июль
Anonim
Arduino Smart Home системасы
Arduino Smart Home системасы
Arduino Smart Home системасы
Arduino Smart Home системасы

Бул Нускамада биз сизге Sparkfun Red тактасы менен MATLABнын Колдонмо Дизайнери менен өзүңүздүн акылдуу үй системаңызды кантип түзүүнү көрсөтөбүз. Бул Instructable MATLABдын колдонмо дизайнери жөнүндө базалык түшүнүк алуу үчүн, ошондой эле фоторезистор, сервомотор жана PIR кыймыл сенсорун колдонуу үчүн колдонулушу мүмкүн.

1 -кадам: Баштоо үчүн: материалдар

Бул долбоор төмөнкү материалдарды талап кылат:

- Arduino Uno (Бул долбоор үчүн биз Sparkfun Red тактасын колдондук)

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

- Бир мини-servo мотор

- Бир үзгүлтүксүз servo мотор

- Бир PIR кыймыл сенсору

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

- 2 LED

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

2 -кадам: 2 -кадам: Маселени чечүү үчүн жакындап келүү

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

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

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

Баштоо үчүн MATLABs AppDesignerди ачып, төмөнкүлөрдү коюңуз:

Ысык жана муздак босого киргизүү үчүн эки сандык түзөтүү талаасы

Эшиктин кулпусун ачуучу баскыч

Жана очок үчүн төрт индикатор лампа, эшик, желдеткич жана жарык.

Колдонуучу менен байланышуу үчүн эки этикетка.

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

дүйнөлүк а

a = arduino ('COM3', 'uno', 'Китепканалар', 'Servo'); глобалдык дүйнөлүк г глобалдык ысык интернеттеги глобалдык муздактыктын дүйнөлүк кулпусун ачуу глобалдык темп дүйнөлүк Curr_temp глобалдык int_light

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

Сиз кодду иштеткенде, ал глобалдык өзгөрмөлөрдү түзүүчү жана тутумду калибрлөөчү старт функциясында башталат. Бул функциянын аягында Таймер деп аталган касиетке чакыруучу таймер функциясы болот. Бул Таймер касиетине биз үй системасын иштетүүчү кодду киргизебиз, андыктан таймер калибрлөө кодун кайра иштетпейт.

Эскертүү: Биз тутумга зым боюнча көрсөтмө берген жокпуз. Биз SparkFun Red тактасы менен келген колдонмого кайрылдык.

4 -кадам: 3 -кадам: Термостат системасын орнотуу

3 -кадам: Термостат системасын орнотуу
3 -кадам: Термостат системасын орнотуу
3 -кадам: Термостат системасын орнотуу
3 -кадам: Термостат системасын орнотуу

Термостаттын функциясы төмөнкүдөй иштейт:

Колдонуучу кайсы температураны өтө ысык же өтө муздак деп киргизет. Термометр көрсөткүчтү алгандан кийин, эгер үй өтө суук болсо, "очок" (кызыл LED) күйүп, үйдү жылытат. Эгерде үй өтө ысык болсо, анда "желдеткич" (үзгүлтүксүз серво мотору) үйдү муздатууну күйгүзөт.

Термостат системасын коддоо үчүн:

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

p = 'A0' %Photoresistor пин

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

Андан кийин биз Таймердин ичинде термостат системасын бүтүрөбүз.

дүйнөлүк Curr_temp

global coldUI глобалдык глобалдык hotUI if Curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %GUI чырагын жашыл түскө айландырат WritePWMDutyCycle (a, 'D11',.9) %Коддун кийинки үч сабы servo fan күйгүзүүсүн иштетет (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 кодуңузду биринчи жолу иштеткениңизде, колдонмо сизден эшикти ачууну суранат, ошондо фоторезистор жарыктын баштапкы окуусун кабыл алат. Бул аяктагандан кийин, таймер активдешет жана фоторезистор экинчи жарык көрсөткүчтөрүн алат. Экинчи жарыктын көрсөткүчү башталгычтан жеңил болсо, servo мотор эшикти бекитип коет. Колдонуучу эшиктин кулпусун ачууну кааласа, колдонмонун эшигин ача турган баскычты басса болот.

Серво моторун жана фоторезисторду конфигурациялоо үчүн:

Эшик системасын коддоо үчүн:

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

s = servo (a, 'D9') %Pin зымга жараша өзгөрүшү мүмкүн

app. Label_4. Text = 'Системаны калибрлөө үчүн эшикти ачыңыз'; тыным (15); %Бул колдонуучуга эшикти ачууга убакыт берет int_light = readVoltage (a, p); app. Label_4. Text = 'Манжаңызды алып салсаңыз болот';

Андан кийин, биз кодду Таймер касиетинде толтурабыз

глобалдык кулпуну ачуу

глобалдык int_light глобалдык s глобалдык a %Curr_light = readVoltage (a, p) менен салыштыруу үчүн учурдагы жарык көрсөткүчүн алыңыз; % - Эшикти кулпулоо - эгер int_light <Curr_light writePosition (s, 1) % Servo кызматтары ар бир мотордук тыныгууга жараша айырмаланышы мүмкүн (0,5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; аягы % - Эшиктин кулпусун ачуу - эгерде ачуу == 1234 пауза (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; аяктоо

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

глобалдык кулпуну ачуу

ачуу = 1234;

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

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

Сел жарыгы үчүн функция төмөнкүдөй иштейт:

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

Жарык системасын конфигурациялоо үчүн:

Сел жарык системасын коддоо үчүн:

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

human_detected = readDigitalPin (a, 'D2'); %Пин конфигурацияга жараша өзгөрүшү мүмкүн, эгер 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ңузду туташтырууга даярсыз!

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