Բովանդակություն:

Arduino Smart Home համակարգ ՝ 7 քայլ
Arduino Smart Home համակարգ ՝ 7 քայլ

Video: Arduino Smart Home համակարգ ՝ 7 քայլ

Video: Arduino Smart Home համակարգ ՝ 7 քայլ
Video: Arduino UNO and Mega Windows 7, 8, 10 USB driver Solved 2024, Հուլիսի
Anonim
Arduino Smart Home համակարգ
Arduino Smart Home համակարգ
Arduino Smart Home համակարգ
Arduino Smart Home համակարգ

Այս Instructable- ում մենք ձեզ ցույց կտանք, թե ինչպես ստեղծել ձեր սեփական խելացի տան համակարգը MATLAB- ի App Designer- ի միջոցով Sparkfun Red տախտակով: Այս Instructable- ը կարող է օգտագործվել MATLAB- ի App Designer- ի վերաբերյալ հիմնական պատկերացում ձեռք բերելու, ինչպես նաև ֆոտոընդդիմադիր, սերվոմոտորային և PIR շարժման տվիչ օգտագործելու համար:

Քայլ 1: Սկսելու համար. Նյութեր

Այս նախագիծը պահանջում է հետևյալ նյութերը.

- Arduino Uno (այս նախագծի համար մենք օգտագործեցինք Sparkfun Red տախտակ)

- Մեկ ֆոտոընդդիմադիր

- Մեկ մինի-սերվո շարժիչ

- Մեկ անընդհատ servo շարժիչ

- Մեկ PIR շարժման տվիչ

- Մեկ ջերմաստիճանի տվիչ

- 2 լուսադիոդ

- Հաղորդալարեր և ռեզիստորներ ըստ անհրաժեշտության

Քայլ 2: Քայլ 2. Մոտենալով լուծման խնդրին

Այս նախագծի հիմնական նպատակն էր ստեղծել հեշտ օգտագործման խելացի տան համակարգ `Arduino Uno տախտակի ծածկագրմամբ MATLAB- ով: Մենք սկզբում մտածում էինք միայն ջերմաստիճանի և խոնավության տվիչի հետ աշխատելու մասին, սակայն եթե այդ երկու սենսորների հետ մնայինք, մեր խելացի տան համակարգը հեշտ շուկայահանելի չէր լինի ընդհանուր լսարանի համար: Մենք որոշեցինք, որ ցանկանում ենք ստեղծել ընդհանուր խելացի տան էներգետիկ համակարգ, որը կաշխատի որպես խելացի թերմոստատ և անվտանգության համակարգ: Ի վերջո, մենք ցանկանում էինք աշխատել MATLAB- ի AppDesigner- ի հետ, որպեսզի օգտվողը կարողանա հեշտությամբ փոխել խելացի տունը, ինչպես ցանկանում է:

Քայլ 3. Քայլ 3. Կարգավորեք GUI- ն և հիմնական կոդի հոսքը

Քայլ 3. Կարգավորեք GUI- ն և հիմնական ծածկագրի հոսքը
Քայլ 3. Կարգավորեք GUI- ն և հիմնական ծածկագրի հոսքը

Սկսելու համար հարկավոր է բացել MATLABs AppDesigner և տեղադրել հետևյալը.

Երկու թվային խմբագրման դաշտ ՝ տաք և սառը շեմի մուտքագրման համար

Կոճակ դուռը բացելու համար

Եվ չորս ցուցիչ լամպեր բուխարիի, դռան, օդափոխիչի և ջրհեղեղի համար:

Երկու պիտակ օգտագործողի հետ շփվելու համար:

Այս նախագծի համար մենք ավելի հեշտ գտանք աշխատել գլոբալ փոփոխականների և դիզայների ներսում գործարկման գործառույթի հետ: Գործարկման գործառույթում ձեզ անհրաժեշտ կլինեն այս փոփոխականները.

գլոբալ ա

a = arduino («COM3», «uno», «Գրադարաններ», «Servo»); global s global p global hotUI global coldUI global unlock global temp global curr_temp global int_light

Այս պահին մենք ունենք միայն փոփոխականի առաջադրանք, որպեսզի ձեր համակարգիչը կարողանա կարդալ arduino- ն: COM3- ը կարող է տարբեր լինել `կախված այն բանից, թե ձեր համակարգիչն ինչ պորտից կարող է օգտվել:

Երբ գործարկեք կոդը, այն կսկսվի գործարկման գործառույթի շրջանակներում ՝ ստեղծելով գլոբալ փոփոխականներ և կալիբրացնել համակարգը: Այս ֆունկցիայի վերջում կլինի ժմչփ գործառույթ, որը կանչում է մի հատկություն, որը մենք անվանել ենք ժմչփ: Timամաչափի այս հատկության մեջ մենք տեղադրում ենք տան համակարգը աշխատող կոդը, որպեսզի ժամաչափը չվերագործարկի ստուգաչափման կոդը:

Նշում. Մենք համակարգի համար միացման ցուցումներ չենք տվել: Մենք վկայակոչեցինք ձեռնարկը, որն ուղեկցվում է SparkFun Red տախտակով:

Քայլ 4: Քայլ 3. Թերմոստատի համակարգի կարգավորում

Քայլ 3: Թերմոստատի համակարգի տեղադրում
Քայլ 3: Թերմոստատի համակարգի տեղադրում
Քայլ 3: Թերմոստատի համակարգի տեղադրում
Քայլ 3: Թերմոստատի համակարգի տեղադրում

Թերմոստատի գործառույթը հետևյալն է.

Օգտվողը մուտքագրելու է այն ջերմաստիճանը, որը նա համարում է չափազանց տաք կամ շատ ցուրտ: Theերմաչափը կարդալուց հետո, եթե տունը շատ ցուրտ է, ապա «բուխարին» (կարմիր LED) կբացվի և կջերմացնի տունը: Եթե տունը շատ տաք է, ապա «օդափոխիչը» (շարունակական servo շարժիչ) միացնում է տան հովացումը:

Թերմոստատ համակարգը կոդավորելու համար.

Մենք կսկսենք գործարկման գործառույթի շրջանակներում `ներկայիս ջերմաստիճանը ցուցադրելու համար և թույլ կտանք օգտվողին մուտքագրել իր սառը և տաք շեմերը:

p = 'A0' %Photoresistor pin

volt = 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 global a global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %Ստացվում է GUI լամպը կանաչ գրելու համար PWMDutyCycle (a, 'D11',.9) %Կոդի հաջորդ երեք տողերը գործարկում են servo fan pause (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 շարժիչը կողպելու է դուռը: Եթե օգտվողը ցանկանում է, որ դուռն ապակողպված լինի, կարող է սեղմել հավելվածի կոճակը, որը կբացի դուռը:

Servo շարժիչը և ֆոտոընդդիմադիրը կազմաձևելու համար.

Դռների համակարգը կոդավորելու համար.

Մենք կսկսենք գործարկման ֆունկցիայի շրջանակում ՝ սկզբնական լուսաչափերը վերցնելու համար:

s = servo (a, 'D9') %Pin- ը կարող է փոխվել `հիմնված էլեկտրագծերի վրա

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) % Servo դիրքերը կարող են տարբերվել մեկ շարժիչային դադարից (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; վերջ % - Բացել դուռը - եթե բացել == 1234 դադար (0.5); writePosition (ներ,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; վերջ

Վերջապես մենք կստեղծենք ապակողպման կոճակի հետադարձ կապ: Երբ օգտվողը սեղմում է ապակողպման կոճակը, գլոբալ փոփոխականին բացելու համար կտրվի մի թիվ, որը կարող է լրացնել ifամաչափի հատկության վերջնական if հայտարարությունը:

գլոբալ ապակողպում

բացել = 1234;

Քայլ 6: Քայլ 6. Loodրհեղեղի լույսի համակարգի կարգավորում

Քայլ 6. Loodրհեղեղի լույսի համակարգի կարգավորում
Քայլ 6. Loodրհեղեղի լույսի համակարգի կարգավորում

Theրհեղեղի լույսի գործառույթը գործում է հետևյալ կերպ.

Երբ սկսում եք MATLAB ծածկագիրը, PIR շարժման տվիչը կսկսի հայտնաբերել շարժումը: Երբ որևէ տեսակի շարժում է հայտնաբերում, այն կկտրի էներգիայի ազդանշանը: Երբ այդ ազդանշանը կտրվի, ջրհեղեղի լույսը կվառվի տնից դուրս:

Theրհեղեղի լուսային համակարգը կազմաձևելու համար.

Theրհեղեղի լույսի համակարգը կոդավորելու համար.

Այս անգամ մենք կարող ենք անցնել erամաչափի հատկությանը, քանի որ լրացուցիչ փոփոխականներ գրելու կարիք չունենք:

human_detected = կարդալDigitalPin (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- ի նախագիծը App Designer- ի և ձեր Arduino- ի ծածկագրի հետ, պատրաստ եք կատարել ձեր սեփական խմբագրումները կամ միացնել ձեր Arduino- ն և գնալ:

Խորհուրդ ենք տալիս: