Todos estamos familiarizados con la palabra 'Automatización', donde la interacción humana es mínima y las cosas se pueden controlar de forma automática o remota. La domótica es un concepto muy popular y exigente en el campo de la Electrónica, y también estamos haciendo nuestros mejores esfuerzos para que este concepto sea fácilmente comprensible y manejable como Proyectos de Electrónica. Anteriormente hemos desarrollado varios tipos de proyectos de automatización del hogar con un video y un código que funcionan, verifique:
- Automatización del hogar basada en DTMF
- Automatización del hogar basada en GSM usando Arduino
- Automatización del hogar controlada por PC usando Arduino
- Automatización del hogar controlada por Bluetooth usando 8051
- Automatización del hogar con control remoto por infrarrojos con Arduino
Y en este proyecto, vamos a construir nuestro próximo proyecto de automatización del hogar utilizando MATLAB y Arduino, que es un sistema de automatización del hogar basado en GUI que utiliza Arduino y MATLAB.
Componentes:
- Arduino UNO
- Cable USB
- ULN2003
- Relé de 5 voltios
- Bombilla con soporte
- Cables de conexión
- Ordenador portátil
- Fuente de alimentación
- PVT
Explicación de trabajo:
En este proyecto, estamos utilizando MATLAB con Arduino para controlar los electrodomésticos, a través de una interfaz gráfica de usuario en computadora. Aquí hemos utilizado la comunicación por cable para enviar datos desde la computadora (MATLAB) a Arduino. En el lado de la computadora, hemos usado GUI en MATLAB para crear algunos botones para controlar electrodomésticos. Para la comunicación entre Arduino y MATLAB, primero necesitamos instalar el “ Soporte de MATLAB y Simulink para Arduino ” o el “ Paquete IO de Arduino ”. Para hacerlo, siga los pasos a continuación o vea el video a continuación:
- Descargue el paquete Arduino IO desde aquí. Debe registrarse antes de descargar.
- Luego grabe / cargue el archivo adioe.pde en Arduino usando Arduino IDE. Este archivo adioe.pde se puede encontrar en el paquete IO de Arduino - ArduinoIO \ pde \ adioe \ adioe.pde
- Luego abra el software MATLAB, vaya a la carpeta Arduino IO, abra el archivo install_arduino.m y ejecútelo en Matlab. Verá un mensaje de "Carpetas Arduino agregadas a la ruta" en la ventana de comandos de MATLAB, lo que significa que la ruta MATLAB se actualiza a las carpetas Arduino.
Así es como hacemos el Arduino, nos comunicamos con MATLAB. El método anterior es adecuado para "MATLAB R2013b o versiones anteriores", si está utilizando la versión superior de MATLAB (como R2015b o R2016a), puede hacer clic directamente en la pestaña Complementos en MATLAB y luego hacer clic en "Obtener paquetes de soporte de hardware", desde donde puede instalar paquetes de Arduino para MATLAB.
Después de instalar los archivos, ahora puede crear una GUI para el proyecto de automatización del hogar. Básicamente, en GUI, estamos creando pulsadores para controlar los electrodomésticos desde la computadora. Los botones se pueden crear yendo a "Interfaz gráfica de usuario" en el menú "Nuevo" en MATLAB. Además podemos configurar el nombre y los colores de estos botones, hemos creado 8 botones, en los cuales seis para ENCENDER y APAGAR tres electrodomésticos y dos botones para ENCENDER y APAGAR todos los electrodomésticos simultáneamente.
Ahora, después de crear los botones, cuando haga clic en el botón Ejecutar en esa ventana GUI, le pedirá que guarde este archivo GUI (con extensión.fig), también conocido como ' archivo fig'. Tan pronto como guarde el archivo, se creará automáticamente un archivo de código (con extensión.m), también conocido como ' archivo M' (vea la captura de pantalla a continuación), donde puede colocar el Código (que se indica en la sección Código a continuación). Puede descargar el archivo GUI y el archivo de código para este proyecto desde aquí: Home_Automation_system.fig y Home_Automation_system.m (haga clic derecho y seleccione Guardar enlace como…), o puede crearlos usted mismo como hemos explicado.
Después de la codificación, ahora finalmente puede ejecutar el archivo.m desde la ventana de código, verá "Intentando conexión…" en la ventana de comandos. A continuación, aparece el mensaje "Arduino conectado correctamente", si todo va bien. Y finalmente verá GUI (botones) previamente creados en la ventana GUI, desde donde puede controlar los electrodomésticos simplemente haciendo clic en los botones de su Computadora. Asegúrese de que Arduino esté conectado a Arduino mediante un cable USB. Aquí en este proyecto hemos utilizado 3 bombillas para demostración, que indica Ventilador, Luz y TV.
El funcionamiento de todo el proyecto, desde la instalación del paquete de soporte Arduino MATLAB hasta el encendido o apagado del dispositivo, se puede entender en el video al final.
Explicación del circuito:
El circuito de este proyecto es muy sencillo. Aquí hemos utilizado una placa Arduino UNO y Relay Driver ULN2003 para controlar los relés. Tres relés SPDT de 5 voltios están conectados al pin número 3, 4 y 5 de Arduino, a través del controlador de relé ULN2003, para controlar LIGHT, FAN y TV respectivamente.
Explicación de programación:
Cuando presionamos cualquier botón de la ventana GUI, envía algunos comandos a Arduino y luego Arduino hace esa operación. Después de instalar el paquete de soporte Arduino MATLAB IO, podemos acceder a Arduino desde MATLAB utilizando las mismas funciones de Arduino, con algunas pequeñas variaciones, como:
Para hacer un pin HIGH en Arduino escribimos código como digitalWrite (pin, HIGH)
En MATLAB usaremos esta función con la ayuda de un objeto o variable como, y así sucesivamente.
Antes de hacer esto, tenemos que inicializar la variable así:
En este proyecto, no hay código Arduino excepto el código o archivo del paquete de soporte Arduino MATLAB. Como se explicó anteriormente, el archivo de código (archivo.m) se genera automáticamente mientras se guarda el archivo GUI (archivo.fig). Ya hay algún código escrito previamente en el archivo.m. Básicamente, estas son funciones de devolución de llamada para botones pulsadores, lo que significa que podemos definir qué debe suceder al hacer clic en estos botones pulsadores.
En el código MATLAB, primero inicializamos el puerto serie y lo convertimos en un objeto usando una variable. Y luego podemos comenzar a programar como Arduino usando la variable.
clear ar; ar global; ar = arduino ('COM13'); ar.pinMode (3, 'SALIDA'); ar.pinMode (4, 'SALIDA'); ar.pinMode (5, 'SALIDA'); ar.pinMode (13, 'SALIDA');
En la función de devolución de llamada de cada botón, hemos escrito el código relacionado para encendido o apagado de los respectivos electrodomésticos, conectados a Arduino a través de relé. Como por ejemplo, la función de devolución de llamada para Light ON se muestra a continuación:
función light_on_Callback (hObject, eventdata, handle)% hObject handle to light_on (ver GCBO)% eventdata reservado - para ser definido en una versión futura de MATLAB% maneja estructura con identificadores y datos de usuario (ver GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
Asimismo, podemos escribir el código en las funciones Callback de todos los botones, para controlar los demás Electrodomésticos conectados, consulte el código MATLAB completo a continuación (archivo.m).