Talaan ng mga Nilalaman:

Arduino Smart Home System: 7 Mga Hakbang
Arduino Smart Home System: 7 Mga Hakbang

Video: Arduino Smart Home System: 7 Mga Hakbang

Video: Arduino Smart Home System: 7 Mga Hakbang
Video: Using 28BYJ-48 Stepper Motor Push button Speed with 8 projects: Ultimate Video Tutorial Lesson 107 2024, Hulyo
Anonim
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System

Sa Instructable na ito, ipapakita namin sa iyo kung paano lumikha ng iyong sariling smart home system kasama ang App Designer ng MATLAB na may Sparkfun Red board. Ang Instructable na ito ay maaaring magamit upang makatulong na makakuha ng isang pangunahing pag-unawa sa App Designer ng MATLAB, pati na rin ang paggamit ng isang photoresistor, servomotor, at isang sensor ng paggalaw ng PIR.

Hakbang 1: Upang Magsimula: Mga Kagamitan

Ang proyektong ito ay nangangailangan ng mga sumusunod na materyales:

- Arduino Uno (Para sa proyektong ito, gumamit kami ng Sparkfun Red board)

- Isang photoresistor

- Isang mini-servo motor

- Isang tuluy-tuloy na servo motor

- Isang sensor ng paggalaw ng PIR

- Isang sensor ng temperatura

- 2 LEDs

- Mga wire at resistor kung kinakailangan

Hakbang 2: Hakbang 2: Papalapit sa Suliranin upang Malutas

Ang pangunahing layunin ng proyektong ito ay upang lumikha ng isang madaling gamitin na smart home system sa pamamagitan ng pag-cod ng isang Arduino Uno board na may MATLAB. Una naming naisip ang pagtatrabaho lamang sa isang sensor ng temperatura at halumigmig, subalit kung manatili kami sa dalawang sensor na iyon ang aming smart home system ay hindi madaling maibebenta sa isang pangkalahatang madla. Napagpasyahan namin na nais naming lumikha ng isang pangkalahatang smart home system system na gagana na gagana bilang isang matalinong termostat at security system. Sa wakas, nais naming gumana sa AppLesigner ng MATLAB upang madaling baguhin ng gumagamit ang matalinong bahay ayon sa gusto nila.

Hakbang 3: Hakbang 3: Pag-configure ng GUI at Pangunahing Daloy ng Code

Hakbang 3: Pag-configure ng GUI at Pangunahing Daloy ng Code
Hakbang 3: Pag-configure ng GUI at Pangunahing Daloy ng Code

Upang magsimula kakailanganin mong buksan ang MATLABs AppDesigner at ilagay ang sumusunod:

Dalawang mga patlang ng pag-edit ng bilang para sa isang mainit at malamig na input ng threshold

Isang pindutan upang ma-unlock ang pinto

At apat na mga lampara ng tagapagpahiwatig para sa fireplace, pintuan, bentilador, at ilaw ng baha.

Dalawang label upang makipag-usap sa gumagamit.

Para sa proyektong ito, nakita naming mas madaling gumana sa mga pandaigdigan na variable at ang pag-andar ng startup sa loob ng taga-disenyo. Kakailanganin mo ang mga variable na ito sa loob ng pag-andar ng startup:

pandaigdigan a

a = arduino ('COM3', 'uno', 'Library', 'Servo'); pandaigdigang p p pandaigdigang hotUI pandaigdigan coldUI pandaigdigan pag-unlock ng pandaigdigang temp pandaigdigan curr_temp pandaigdigang int_light

Sa ngayon mayroon lamang kaming pagtatalaga para sa isang variable upang mabasa ng iyong computer ang arduino. Ang COM3 ay maaaring magkakaiba depende sa kung anong port ang maaaring gamitin ng iyong computer.

Kapag pinatakbo mo ang code, magsisimula ito sa loob ng pagpapaandar ng startup na lumilikha ng mga pandaigdigang variable at pagkakalibrate ng system. Sa pagtatapos ng pagpapaandar na ito magkakaroon ng isang function ng timer na tumatawag sa isang pag-aari na pinangalanan naming Timer. Sa loob ng pagmamay-ari ng Timer na ito inilalagay namin ang code na nagpapatakbo ng system ng bahay upang ang timer ay hindi muling patakbuhin ang code sa pagkakalibrate.

Tandaan: Hindi kami nagbigay ng anumang mga tagubilin sa mga kable para sa system. Sumangguni kami sa manwal na kasama ng SparkFun Red board.

Hakbang 4: Hakbang 3: Pagse-set up ng Therostat System

Hakbang 3: Pagse-set up ng Therestat System
Hakbang 3: Pagse-set up ng Therestat System
Hakbang 3: Pagse-set up ng Therestat System
Hakbang 3: Pagse-set up ng Therestat System

Ang pagpapaandar para sa termostat ay gumagana tulad ng sumusunod:

Ipapasok ng gumagamit kung anong temperatura ang isinasaalang-alang nilang masyadong mainit o sobrang lamig. Kapag ang thermometer ay tumatagal ng isang pagbabasa, kung ang bahay ay masyadong malamig pagkatapos ang "fireplace" (isang pulang LED) ay bubuksan at maiinit ang bahay. Kung ang bahay ay masyadong mainit pagkatapos ang isang "fan" (tuluy-tuloy na servo motor) ay magpapasara sa pagpapalamig ng bahay.

Upang mai-code ang Therostat system:

Magsisimula kami sa loob ng pag-andar ng startup upang ipakita ang kasalukuyang temp at hayaan ang gumagamit na mag-input ng kanilang malamig at mainit na mga threshold.

p = 'A0'% Pin ng Photoresistor

volt = readVoltage (a, temp); celc = (volt-0.5). * 100; curr_temp = celc * 9/5 + 32; app. Label_4. Txt = num2str (curr_temp); Maaaring baguhin ng numero ng label ang pag-pause (10); % Maaaring gustoing magbago !!!!!

Pagkatapos ay makukumpleto namin ang sistemang termostat sa loob ng pag-aari ng Timer.

pandaigdigang curr_temp

pandaigdigan coldUI pandaigdigan isang pandaigdigang hotUI kung curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; % Lumiliko ang berdeng GUI na berde magsulatPWMDutyCycle (a, 'D11',.9)% Ang susunod na tatlong linya ng code ay patakbuhin ang servo fan pause (10) magsulat ngPWMDutyCycle (a, 'D11',.0) iba pang app. FireplaceStateLamp. Color = [0.90 0.90 0.90]; % Patayin nito ang lahat ng mga GUI lamp at fireplace app. FanStateLamp. Color = [0.9 0.9 0.9]; isulatDigitalPin (a, 'D13', 0); magtapos

Hakbang 5: Hakbang 4: Pag-set up ng Sistema ng Pinto

Hakbang 4: Pag-set up ng Sistema ng Pinto
Hakbang 4: Pag-set up ng Sistema ng Pinto

Ang pagpapaandar para sa pinto ay gumagana tulad ng sumusunod:

Kapag pinatakbo mo muna ang iyong MATLAB code, hihilingin sa iyo ng app na buksan ang pinto upang ang photoresistor ay maaaring kumuha ng paunang ilaw na pagbasa. Kapag nakumpleto na iyon, ang timer ay magpapagana at ang photoresistor ay kukuha ng pangalawang pagbasa ng ilaw. Kung ang pangalawang ilaw na pagbasa ay mas magaan kaysa sa pauna, isang servo motor ang magkakandado ng pinto. Kung nais ng gumagamit na i-unlock ang pinto, maaari nilang pindutin ang isang pindutan sa app na i-unlock ang pinto.

Upang mai-configure ang servo motor at photoresistor:

Upang mai-code ang system ng pinto:

Magsisimula kami sa loob ng pagpapaandar ng startup upang gawin ang paunang pagbasa ng ilaw.

s = servo (a, 'D9')% Pin ay maaaring magbago batay sa mga kable

app. Label_4. Txt = 'Mangyaring buksan ang pinto upang i-calibrate ang system'; i-pause (15); % Nagbibigay ito ng oras para sa gumagamit na buksan ang pintuan int_light = readVoltage (a, p); app. Label_4. Txt = 'Maaari mong alisin ang iyong daliri';

Susunod, makukumpleto namin ang code sa loob ng pag-aari ng Timer

pandaigdigang pag-unlock

global int_light global s global a% Kumuha ng isang kasalukuyang pagbasa ng ilaw upang ihambing ang curr_light = readVoltage (a, p); % - Lock Door - kung int_light <curr_light writePosition (s, 1)% Posibleng magkakaiba ang mga posisyon ng Servo bawat pag-pause ng motor (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; pagtatapos% - I-unlock ang Pinto - kung i-unlock == 1234 pause (0.5); isulat angPosisyon (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; magtapos

Sa wakas lilikha kami ng unlock button na callback. Kapag pinindot ng gumagamit ang unlock button, ang global variable unlock ay bibigyan ng isang numero na maaaring makumpleto ang pangwakas kung pahayag sa pag-aari ng Timer.

pandaigdigang pag-unlock

i-unlock = 1234;

Hakbang 6: Hakbang 6: Pag-set up ng Flood Light System

Hakbang 6: Pag-set up ng Flood Light System
Hakbang 6: Pag-set up ng Flood Light System

Ang pagpapaandar para sa ilaw ng baha ay gumagana tulad ng sumusunod:

Kapag sinimulan mo ang MATLAB code, sisimulan ng sensor ng paggalaw ng PIR ang paggalaw. Kapag nakakita ito ng ilang uri ng paggalaw, puputulin nito ang isang signal ng kuryente. Kapag na-cut na ang signal na iyon, magbubukas ang ilaw ng baha sa labas ng bahay.

Upang mai-configure ang light light system:

Upang mai-code ang light light system:

Sa oras na ito maaari kaming lumaktaw sa pag-aari ng Timer dahil hindi namin kailangang magsulat ng anumang labis na mga variable.

human_detected = readDigitalPin (a, 'D2'); Maaaring magbago ang% Pin batay sa pagsasaayos kung human_detected == 0 writeDigitalPin (a, 'D7', 1)% Pin maaaring baguhin ang app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; isulat angDigitalPin (a, 'D7', 0)

Hakbang 7: Konklusyon

Ngayon na mayroon kang isang draft ng iyong GUI kasama ang App Designer at ang iyong code para sa Arduino handa ka nang gumawa ng iyong sariling mga pag-edit o i-plug ang iyong Arduino at pumunta!

Inirerekumendang: