Mums visiem ir pazīstams vārds “Automatizācija”, kur cilvēku mijiedarbība ir minimāla un lietas var kontrolēt automātiski vai attālināti. Mājas automatizācija ir ļoti populāra un prasīga koncepcija elektronikas jomā, un mēs arī darām visu iespējamo, lai šī koncepcija būtu viegli saprotama un vadāma kā elektronikas projekti. Iepriekš mēs esam izstrādājuši vairākus mājas automatizācijas projektu veidus ar darbojošos video un kodu, lūdzu, pārbaudiet:
- DTMF balstīta mājas automatizācija
- GSM bāzes mājas automatizācija, izmantojot Arduino
- Datora kontrolēta mājas automatizācija, izmantojot Arduino
- Bluetooth kontrolēta mājas automatizācija, izmantojot 8051
- IR tālvadības kontrolēta mājas automatizācija, izmantojot Arduino
Šajā projektā mēs izveidosim nākamo mājas automatizācijas projektu, izmantojot MATLAB un Arduino, kas ir GUI balstīta mājas automatizācijas sistēma, izmantojot Arduino un MATLAB
Komponenti:
- Arduino UNO
- USB kabelis
- ULN2003
- Relejs 5 volti
- Spuldze ar turētāju
- Savienojošie vadi
- Klēpjdators
- Enerģijas padeve
- PVT
Darba skaidrojums:
Šajā projektā mēs izmantojam MATLAB ar Arduino, lai kontrolētu sadzīves tehniku, izmantojot datora grafisko lietotāja saskarni. Šeit mēs esam izmantojuši vadu sakarus, lai nosūtītu datus no datora (MATLAB) uz Arduino. Datora pusē MATLAB esam izmantojuši GUI, lai izveidotu dažas pogas sadzīves tehnikas kontrolei. Saziņai starp Arduino un MATLAB vispirms ir jāinstalē “ MATLAB un Simulink Support for Arduino ” vai “ Arduino IO Package ”. Lai to izdarītu, veiciet tālāk norādītās darbības vai pārbaudiet zemāk redzamo videoklipu:
- Lejupielādējiet Arduino IO pakotni šeit. Pirms lejupielādes jums jāreģistrējas.
- Pēc tam ierakstiet / augšupielādējiet adioe.pde failu Arduino, izmantojot Arduino IDE. Šis adioe.pde fails ir atrodams Arduino IO pakotnē - ArduinoIO \ pde \ adioe \ adioe.pde
- Pēc tam atveriet MATLAB programmatūru, pārejiet caur mapi Arduino IO, atveriet failu install_arduino.m un palaidiet to Matlab. MATLAB komandu logā redzēsiet ziņojumu “Ceļam pievienotas mapes Arduino”, tas nozīmē, ka MATLAB ceļš tiek atjaunināts uz Arduino mapēm.
Tā mēs veidojam Arduino, sazināmies ar MATLAB. Iepriekš minētā metode ir piemērota “MATLAB R2013b vai vecākām versijām”, ja izmantojat MATLAB augstāko versiju (piemēram, R2015b vai R2016a), varat tieši noklikšķināt uz cilnes Add-ons MATLAB un pēc tam noklikšķiniet uz “Get Hardware Support Packages”, no kurienes jūs varat instalēt MATLAB Arduino pakotnes.
Pēc failu instalēšanas tagad varat izveidot GUI mājas automatizācijas projektam. Būtībā GUI mēs izveidojam spiedpogas, lai kontrolētu sadzīves tehniku no datora. Pogas var izveidot, atverot MATLAB izvēlnes “Jauns” sadaļu “Grafiskā lietotāja saskarne”. Tālāk mēs varam iestatīt šo pogu nosaukumu un krāsas, mēs esam izveidojuši 8 pogas, kurās sešas ieslēdz un izslēdz trīs mājsaimniecības ierīces un divas pogas, lai vienlaikus ieslēgtu un izslēgtu visas ierīces.
Pēc pogu izveides, kad GUI logā noklikšķināt uz pogas Palaist, tā lūgs saglabāt šo GUI failu (ar paplašinājumu.fig), kas pazīstams arī kā “ vīģes fails”. Tiklīdz fails tiek saglabāts, tas automātiski izveidos koda failu (ar paplašinājumu.m), kas pazīstams arī kā “ M fails” (skat. Zemāk redzamo ekrānuzņēmumu), kur var ievietot kodu (norādīts zemāk sadaļā Kods). Šī projekta GUI failu un koda failu varat lejupielādēt šeit: Home_Automation_system.fig un Home_Automation_system.m (ar peles labo pogu noklikšķiniet un atlasiet Saglabāt saiti kā…), vai arī varat tos izveidot pats, kā mēs esam paskaidrojuši.
Pēc kodēšanas jūs tagad beidzot varat palaist.m failu no koda loga, komandu logā redzēsit “Mēģināt izveidot savienojumu..”. Tad, ja viss izdosies, parādās ziņojums “Arduino veiksmīgi savienots”. Visbeidzot, GUI logā redzēsiet iepriekš izveidoto GUI (pogas), no kuras jūs varat kontrolēt sadzīves tehniku, vienkārši noklikšķinot uz pogām savā datorā. Pārliecinieties, vai Arduino ir savienots ar Arduino, izmantojot USB kabeli. Šajā projektā mēs esam izmantojuši 3 spuldzes demonstrēšanai, kas norāda ventilatoru, gaismu un televizoru.
Visa projekta darbu, sākot no Arduino MATLAB atbalsta pakotnes instalēšanas līdz ierīces ieslēgšanai vai izslēgšanai, var saprast videoklipa beigās.
Ķēdes skaidrojums:
Šī projekta ķēde ir ļoti vienkārša. Releju vadīšanai šeit mēs izmantojām Arduino UNO dēli un releja draiveri ULN2003. Trīs 5 voltu SPDT releji ir savienoti ar Arduino tapām 3, 4 un 5, izmantojot releja draiveri ULN2003, lai attiecīgi kontrolētu LIGHT, FAN un TV.
Programmēšanas skaidrojums:
Kad mēs nospiežam jebkuru pogu no GUI loga, tas nosūta dažas komandas Arduino un pēc tam Arduino veic šo darbību. Pēc Arduino MATLAB IO atbalsta pakotnes instalēšanas mēs varam piekļūt Arduino no MATLAB, izmantojot tās pašas Arduino funkcijas, ar nelielām izmaiņām, piemēram:
Lai izveidotu tapu HIGH Arduino, mēs rakstām kodu kā digitalWrite (pin, HIGH)
MATLAB mēs izmantosim šo funkciju ar objekta vai mainīgā palīdzību, piemēram, un tāpat tāpat.
Pirms to izdarīt, mums ir jāinicializē šādi mainīgie:
Šajā projektā nav Arduino koda, izņemot Arduino MATLAB atbalsta pakotnes kodu vai failu. Kā paskaidrots iepriekš, koda fails (.m fails) tiek automātiski izveidots, saglabājot GUI failu (.fig fails)..M failā jau ir iepriekš uzrakstīts kods. Būtībā šīs ir spiedpogu atzvanīšanas funkcijas, kas nozīmē, ka mēs varam definēt, kam jānotiek, noklikšķinot uz šīm spiedpogām.
MATLAB kodā vispirms tiek inicializēts seriālais ports un padarīts par objektu, izmantojot mainīgo. Un tad mēs varam sākt programmēt kā Arduino, izmantojot mainīgo.
skaidrs ar; globālais ar; ar = arduino ('COM13'); ar.pinMode (3, 'OUTPUT'); ar.pinMode (4, 'OUTPUT'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'OUTPUT');
Katras pogas atzvanīšanas funkcijā mēs esam uzrakstījuši saistīto kodu ieslēgšanai vai izslēgšanai attiecīgajai sadzīves tehnikai, kas savienota ar Arduino, izmantojot releju. Tāpat kā, piemēram, zemāk ir norādīta atzvanīšanas funkcija ieslēgtai gaismai:
funkcija light_on_Callback (hObject, eventdata, rokturi)% hObject rokturis uz light_on (sk. GCBO)% eventdata rezervēts - jānosaka MATLAB turpmākajā versijā% rokturu struktūra ar rokturiem un lietotāja datiem (sk. GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
Tāpat mēs varam ierakstīt kodu visu pogu atzvanīšanas funkcijās, lai kontrolētu citas pievienotās sadzīves tehnikas, pārbaudiet pilnu MATLAB kodu zemāk (.m fails).