Tots coneixem la paraula "Automatització", on la interacció humana és mínima i les coses es poden controlar automàticament o remotament. La domòtica és un concepte molt popular i exigent en el camp de l’electrònica, i també estem fent els nostres millors esforços perquè aquest concepte sigui fàcilment comprensible i manejable com Projectes electrònics. Anteriorment hem desenvolupat diversos tipus de projectes domòtics amb un codi i un vídeo que funcionen. Comproveu:
- Domòtica basada en DTMF
- Domòtica basada en GSM mitjançant Arduino
- Domòtica controlada per PC mitjançant Arduino
- Domòtica controlada per Bluetooth mitjançant 8051
- Domòtica IR controlada a distància mitjançant Arduino
I en aquest projecte, construirem el nostre pròxim projecte domòtic amb MATLAB i Arduino, que és el sistema d’automatització domèstica basat en GUI que utilitza Arduino i MATLAB
Components:
- Arduino UNO
- Cable USB
- ULN2003
- Relé 5 volts
- Bombeta amb suport
- Connexió de cables
- Portàtil
- Font d'alimentació
- PVT
Explicació de treball:
En aquest projecte, estem utilitzant MATLAB amb Arduino per controlar els electrodomèstics mitjançant una interfície gràfica d'usuari a l'ordinador. Aquí hem utilitzat la comunicació per cable per enviar dades des de l’ordinador (MATLAB) a Arduino. Pel que fa a ordinador, hem utilitzat la GUI a MATLAB per crear alguns botons per controlar els electrodomèstics. Per a la comunicació entre Arduino i MATLAB, primer hem d’instal·lar el “ MATLAB i Simulink Support for Arduino ” o “ Arduino IO Package ”. Per fer-ho, seguiu els passos següents o consulteu el vídeo següent:
- Descarregueu el paquet Arduino IO des d’aquí. Heu de registrar-vos abans de baixar-lo.
- A continuació, graveu / pengeu el fitxer adioe.pde a l'Arduino mitjançant Arduino IDE. Aquest fitxer adioe.pde es pot trobar a Arduino IO Package - ArduinoIO \ pde \ adioe \ adioe.pde
- A continuació, obriu el programari MATLAB, aneu a la carpeta Arduino IO, obriu el fitxer install_arduino.m i executeu-lo a Matlab. Veureu un missatge de "Les carpetes Arduino s'han afegit al camí" a la finestra d'ordres de MATLAB, vol dir que el camí MATLAB s'actualitza a les carpetes Arduino.
Així és com fem que l’Arduino comuniquem amb MATLAB. El mètode anterior és adequat per a "MATLAB R2013b o versions anteriors", si utilitzeu la versió superior de MATLAB (com R2015b o R2016a), podeu fer clic directament a la pestanya Complements de MATLAB i, a continuació, fer clic a "Obtenir paquets de suport de maquinari", des d’on podeu instal·lar paquets Arduino per a MATLAB.
Després d’instal·lar fitxers, ara podeu crear una interfície gràfica d’usuari per al Projecte domòtic. Bàsicament a la interfície gràfica d’usuari, estem creant botons automàtics per controlar els electrodomèstics des de l’ordinador. Es poden crear botons accedint a "Interfície gràfica d'usuari" al menú "Nou" de MATLAB. A més, podem establir el nom i els colors d'aquests botons, hem creat 8 botons, en què sis per ON i OFF tres electrodomèstics i dos botons per ON i OFF tots els aparells simultàniament.
Després de crear els botons, quan feu clic al botó Executa a la finestra de la GUI, us demanarà que deseu aquest fitxer GUI (amb l'extensió.fig), també conegut com a " fitxer fig". Tan bon punt hàgiu desat el fitxer, es crearà automàticament un fitxer de codi (amb l'extensió.m), també conegut com a " fitxer M" (vegeu a continuació la captura de pantalla), on podeu posar el codi (donat a la secció de codi següent). Podeu descarregar el fitxer GUI i el fitxer de codi d’aquest projecte des d’aquí: Home_Automation_system.fig i Home_Automation_system.m (feu clic amb el botó dret i seleccioneu Desa l’enllaç com…) o podeu crear-los vosaltres mateixos tal com hem explicat.

Després de codificar, ara podeu executar el fitxer.m des de la finestra del codi, veureu "Intent de connexió.." a la finestra d'ordres. Aleshores apareix un missatge "Arduino connectat amb èxit", si tot va bé. I, finalment, veureu la GUI (botons) creats prèviament a la finestra de la GUI, des d’on podeu controlar els electrodomèstics simplement fent clic als botons de l’ordinador. Assegureu-vos que Arduino estigui connectat a Arduino mitjançant un cable USB. Aquí, en aquest projecte, hem utilitzat 3 bombetes com a demostració, que indica Fan, Light i TV.

El funcionament de tot el projecte, des de la instal·lació del paquet de suport Arduino MATLAB fins a l’activació o apagada de l’aparell, es pot entendre al vídeo al final.
Explicació del circuit:
El circuit d’aquest projecte és molt fàcil. Aquí hem utilitzat una placa Arduino UNO i un relé controlador ULN2003 per conduir relés. Tres relés SPDT de 5 volts es connecten als pins Arduino número 3, 4 i 5, mitjançant el controlador de relés ULN2003, per controlar LIGHT, FAN i TV respectivament.

Explicació de la programació:
Quan premem qualsevol botó de la finestra de la GUI, aquest envia algunes ordres a Arduino i Arduino fa aquesta operació. Després d’instal·lar el paquet de suport Arduino MATLAB IO, podem accedir a Arduino des del MATLAB mitjançant les mateixes funcions Arduino, amb algunes variacions, com ara:
Per fer un pin HIGH a Arduino escrivim codi com digitalWrite (pin, HIGH)
A MATLAB utilitzarem aquesta funció amb l'ajut d'un objecte o variable com, i així successivament.
Abans de fer això, hem d'inicialitzar una variable així:
En aquest projecte, no hi ha cap codi Arduino excepte el codi o fitxer del paquet de suport MATLAB Arduino. Com s'ha explicat anteriorment, el fitxer de codi (fitxer.m) es genera automàticament mentre es desa el fitxer GUI (fitxer.fig). Ja hi ha algun codi preescrit al fitxer.m. Bàsicament, es tracta de funcions de devolució de trucada per als botons automàtics, de manera que podem definir què ha de passar en fer clic en aquests botons automàtics.
Al codi MATLAB, inicialitzem primer el port sèrie i el convertim en un objecte mitjançant una variable. I llavors podem començar a programar com Arduino mitjançant la variable.
clar ar; ar global; ar = arduino ('COM13'); ar.pinMode (3, 'OUTPUT'); ar.pinMode (4, 'OUTPUT'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'OUTPUT');
A la funció de devolució de trucada de cada botó, hem escrit el codi relacionat per activar o desactivar els respectius electrodomèstics, connectats a Arduino mitjançant un relé. A continuació, com, per exemple, la funció de devolució de trucada per a Light ON:
funció light_on_Callback (hObject, eventdata, handles)% hObject handle a light_on (vegeu GCBO)% eventdata reservada - que es definirà en una versió futura de MATLAB% handles structure with handles and data user (see GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
Així mateix, podem escriure el codi a les funcions de devolució de trucada de tots els botons, per controlar la resta d’electrodomèstics connectats, comproveu el codi complet MATLAB a continuació (fitxer.m).
