Vsi poznamo besedo „avtomatizacija“, kjer je človeška interakcija minimalna in je stvari mogoče nadzorovati samodejno ali na daljavo. Domača avtomatizacija je zelo priljubljen in zahteven koncept na področju elektronike, prav tako pa si po najboljših močeh prizadevamo, da bi bil ta koncept lahko razumljiv in obvladljiv kot projekti elektronike. Pred tem smo razvili več vrst projektov avtomatizacije domov z delujočim videom in kodo, preverite:
- DTMF avtomatizacija na domu
- Domača avtomatizacija na osnovi GSM z uporabo Arduina
- Domača avtomatizacija, ki jo nadzoruje računalnik z uporabo Arduina
- Brezžična nadzorna avtomatizacija doma z uporabo 8051
- IR daljinsko vodena avtomatizacija doma z uporabo Arduina
V tem projektu bomo zgradili naslednji projekt avtomatizacije stanovanj z uporabo MATLAB in Arduino, ki je sistem za avtomatizacijo domov na osnovi GUI, ki uporablja Arduino in MATLAB.
Sestavni deli:
- Arduino UNO
- Kabel USB
- ULN2003
- Rele 5 voltov
- Žarnica z držalom
- Priključne žice
- Prenosnik
- Napajanje
- PVT
Delovna razlaga:
V tem projektu uporabljamo MATLAB z Arduino za nadzor gospodinjskih aparatov prek grafičnega uporabniškega vmesnika v računalniku. Tu smo uporabili žično komunikacijo za pošiljanje podatkov iz računalnika (MATLAB) v Arduino. Na strani računalnika smo uporabili GUI v MATLAB-u, da smo ustvarili nekaj gumbov za nadzor gospodinjskih aparatov. Za komunikacijo med Arduino in MATLAB moramo najprej namestiti “ MATLAB in Simulink Support for Arduino ” ali “ Arduino IO Package ”. Če želite to narediti, sledite spodnjim korakom ali preverite spodnji video:
- Prenesite paket Arduino IO od tukaj. Pred prenosom se morate prijaviti.
- Nato datoteko adioe.pde zapisite / naložite v Arduino z uporabo Arduino IDE. To datoteko adioe.pde najdete v paketu Arduino IO - ArduinoIO \ pde \ adioe \ adioe.pde
- Nato odprite programsko opremo MATLAB, pojdite skozi mapo Arduino IO, odprite datoteko install_arduino.m in jo zaženite v Matlabu. V ukaznem oknu MATLAB boste videli sporočilo »Mape Arduino so dodane na pot«, kar pomeni, da je pot MATLAB posodobljena na mape Arduino.
Tako izdelujemo Arduino, komuniciramo z MATLAB-om. Zgornja metoda je primerna za “MATLAB R2013b ali starejše različice”, če uporabljate višjo različico MATLAB (na primer R2015b ali R2016a), lahko neposredno kliknete zavihek Dodatki v MATLAB in nato kliknete “Pridobite pakete za podporo strojni opremi”, od koder lahko namestite pakete Arduino za MATLAB.
Po namestitvi datotek lahko zdaj ustvarite GUI za projekt avtomatizacije domov. V bistvu v GUI ustvarjamo gumbe za nadzor gospodinjskih aparatov iz računalnika. Gumbe lahko ustvarite tako, da odprete »Grafični uporabniški vmesnik« v meniju »Novo« v MATLAB-u. Nadalje lahko nastavimo ime in barve teh gumbov, ustvarili smo 8 gumbov, v katerih šest vklopite in izklopite tri gospodinjske aparate in dva gumba za vklop in izklop vseh naprav hkrati.
Ko v tem oknu GUI kliknete gumb Zaženi, vas bo po ustvarjanju gumbov pozvalo, da shranite to datoteko GUI (s pripono.fig), znano tudi kot ' fig datoteka'. Takoj ko shranite datoteko, bo samodejno ustvarila kodno datoteko (s pripono.m), znano tudi kot „ datoteka M“ (glejte spodnji posnetek zaslona), kamor lahko vstavite kodo (podana v spodnjem odseku kode). Datoteko GUI in datoteko kode za ta projekt lahko prenesete od tukaj: Home_Automation_system.fig in Home_Automation_system.m (z desno miškino tipko izberite Shrani povezavo kot…) ali pa jih lahko ustvarite sami, kot smo razložili.
Po kodiranju lahko končno zaženete datoteko.m iz okna s kodo, v ukaznem oknu boste videli “Poskus povezave..”. Nato se prikaže sporočilo »Arduino je uspešno povezan«, če gre vse v redu. In končno boste v oknu GUI videli prej ustvarjeni GUI (gumbi), od koder lahko nadzorujete gospodinjske aparate s klikom na gumbe v računalniku. Prepričajte se, da je Arduino povezan z Arduino prek kabla USB. V tem projektu smo za predstavitev uporabili 3 žarnice, ki označujejo ventilator, svetlobo in televizijo.
Delovanje celotnega projekta, od namestitve podpornega paketa Arduino MATLAB do vklopa ali izklopa naprave, je razvidno iz videa na koncu.
Pojasnilo vezja:
Vezje tega projekta je zelo enostavno. Tu smo za pogonske releje uporabili ploščo Arduino UNO in gonilnik releja ULN2003. Trije 5-voltni SPDT releji so prek gonilnika releja ULN2003 priključeni na Arduino pin št. 3, 4 in 5 za krmiljenje LIGHT, FAN in TV.
Pojasnilo programiranja:
Ko v oknu grafičnega uporabniškega vmesnika pritisnemo kateri koli gumb, pošlje Arduinu nekaj ukazov in nato Arduino izvede to operacijo. Po namestitvi paketa podpore za Arduino MATLAB IO lahko dostopamo do Arduina iz MATLAB-a z uporabo istih funkcij Arduino z nekaj majhnimi različicami, kot so:
Za izdelavo PIN-a HIGH v Arduinu zapišemo kodo kot digitalWrite (pin, HIGH)
V MATLAB-u bomo to funkcijo uporabili s pomočjo predmeta ali spremenljivke, kot je
in podobno tako naprej.
Pred tem moramo inicializirati spremenljivko takole:
V tem projektu ni nobene kode Arduino, razen kode ali datoteke podpornega paketa Arduino MATLAB. Kot smo že pojasnili, se kodna datoteka (datoteka.m) samodejno ustvari med shranjevanjem datoteke GUI (datoteka.fig). V datoteki.m je že vnaprej napisana koda. V bistvu gre za funkcije povratnega klica za gumbe, kar pomeni, da lahko določimo, kaj naj se zgodi s klikom na te gumbe.
V kodi MATLAB najprej inicializiramo serijska vrata in s spremenljivko postanemo objekt. In potem lahko s spremenljivko začnemo programirati kot Arduino.
čist ar; globalni ar; ar = arduino ('COM13'); ar.pinMode (3, 'IZHOD'); ar.pinMode (4, 'IZHOD'); ar.pinMode (5, 'IZHOD'); ar.pinMode (13, 'IZHOD');
V funkcijo povratnega klica vsakega gumba smo zapisali pripadajočo kodo za vklop ali izklop ustreznih gospodinjskih aparatov, povezanih z Arduino prek releja. Kot na primer je funkcija povratnega klica za Light ON podana spodaj:
funkcija light_on_Callback (hObject, eventdata, ročaji)% hObject ročaj za light_on (glej GCBO)% eventdata rezerviran - za določitev v prihodnji različici MATLAB% ročajev z ročaji in uporabniškimi podatki (glej GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
Prav tako lahko napišemo kodo v funkcije povratnega klica vseh gumbov, za nadzor ostalih povezanih gospodinjskih aparatov pa preverimo celotno kodo MATLAB spodaj (datoteka.m).