Control Remoto Xbee con Arduino y Android Android G. Martinez1, E. Salazar 1
El
Resumen —
desarrollo de tecnologías crece día a día, otorgándonos al alcance de nuestras manos dispositivos de comunicación comunicación que nos permiten desarrollar técnicas técnicas de control y supervisión de manera remota, fáciles de adquirir, diseñar y programar. En la búsqueda del aprendizaje de nuevas técnicas se conjuntaron por una parte la plataforma de desarrollo basada en microcontrolador, microcontrolador, placa Arduino en conjunto conjunto con un Shield de Xbee para proporcionarle comunicación inalámbrica de un rango de 100 metros a 1.5 km en áreas abiertas, la cual a su vez se comunica a un dispositivo móvil con Android mediante Bluetooth para el monitoreo y control de sistemas. Se mencionan algunas aplicaciones industriales en las cuales puede ser de utilidad. Temas cl aves aves Control — Control
pueden ser adaptables a las necesidades necesidades del usuario puesto que se encuentran disponibles bajo una licencia licencia abierta. Otros microcontroladores ofrecen características características similares al Arduino, pero éste lleva ventaja en cuanto a asequibilidad, multiplataforma trabajando trabaja ndo con Windows, Mac y Linux; entorno de programación simple; software y sobre todo hardware ampliable.
y Supervisión remota, Xbee, Xbee, Arduino.
Figura 1. Tarjeta Arduino. Arduino. NTRODUCCIÓN I. I NTRODUCCIÓN Para empezar a trabajar con la placa solo es necesario os sistemas control, demandan una constante evolución en métodos y técnicas técnicas y/o tecnologías que se requieren para conectarla mediante USB a la computadora y abrir el código con el cual se trabajará y cargarlo lograrlo. Actualmente Actualmente en la la industria la productividad de programa, escribir el código a la placa. los procesos depende en gran medida de la medición y manipulación manipulación de las variables variables físicas, físicas, razón por la que constantemente se buscan nuevas tecnologías y métodos B. Xbee enfocados en la adquisición, control y supervisión de dichos Los módulos Xbee son dispositivos que integran un procesos [1]. La sinergia entre las tecnologías de la información y la transmisor - receptor de ZigBee y un procesador en un mismo electrónica favorecen el desarrollo de sistemas de control que módulo, lo que le permite a los usuarios desarrollar permitan su manipulación manipulación en una forma más amigable, precisa aplicaciones de manera rápida y sencilla. Zigbee es un protocolo de comunicaciones comunicaciones inalámbrico inalámbrico basado en el y sencilla. En la universidad Tecnológica de Torreón actualmente se estándar de comunicaciones para redes inalámbricas IEEE_802.15.4. Creado por Zigbee Alliance, Alliance, una está trabajando con la plataforma Arduino así como con IEEE_802.15.4. organización, teóricamente sin ánimo de lucro, de más de 200 diversos Shields para la creación de d e aplicaciones industriales y domótica, desarrollando sistemas de control manipulados de grandes empresas (destacan Mitsubishi, Honeywell, Philips, Motorola, Invensys, Invensys, entre otras), muchas muchas de ellas fabricantes fabricantes forma remota. de semiconductores. Zigbee permite que dispositivos electrónicos de bajo consumo puedan realizar sus A. Arduino comunicaciones comunicaciones inalámbricas. Es especialmente útil para redes Arduino es una herramienta y plataforma electrónica electróni ca de de sensores en entornos industriales, médicos y, sobre todo, código abierto, flexible y sencillo de utilizar. Con ella es domóticas [3]. posible crear objetos o entornos interactivos. Esta plataforma puede detectar o afectar el entorno recibiendo entradas de diversos sensores y activando algunos actuadores C. Android respectivamente. La tarjeta Arduino Arduino (Fig. 1), posee un microcontrolador microcontrolador el Android (Figura 2) es un sistema operativo orientado a cual se programa mediante el lenguaje de programación dispositivos portátiles portátiles como teléfonos teléfonos inteligentes, inteligentes, netbooks, Arduino y el entorno de desarrollo Arduino [2]. Posee un tabletas, entre otros. Fue desarrollado inicialmente inicialmente por la software open source, los ficheros de diseño de referencia compañía de software Android Inc., absorbida por Google en el 2005. Con una plataforma basada en el kernel de Linux Google promocionó un nuevo sistema flexible y actualizable, 1 Gloria Mónica Martínez Aguilar (ketherelohim@hotmail (
[email protected]), .com), Eduardo Salazar Valle (
[email protected] [email protected])). Universidad Tecnológica de llamando la atención de operadores y fabricantes de hardware y software. Torreón, Carretera Torreón-Matamoros Torreón-Matamoros Km 10 S/N, S/N, Ejido el Águila Águila C.P.
L
27400 Torreón, Coahuila, México.
Figura 2. Icono sistema operativo Android.
A diferencia de sistemas operativos para dispositivos móviles como iOS o Windows Phone, el código fuente de Android se mantiene abierto. Soporta multimedia, interfaz táctil, características basadas en voz y una amplia variedad de componentes de hardware. Si se añade a esto un entorno de desarrollo gratuito que incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software, Android constituye una opción interesante para nuevos desarrolladores [4], [5].
respectivos Arduinos. De fábrica cada módulo Xbee viene configurado con un PAN ID (el identificador de la red personal) de 3332 y configurados con una tasa de transferencia de 9600 baudios, con datos de 8 bits, sin paridad y 1 bit de paro. Cada Xbee Shield tiene un par de jumpers para definir si la comunicación serial se realiza hacia el puerto USB o hacia el módulo Xbee. Para configurarlos se debe interactuar con el puerto USB, esto quiere decir poner ambos jumpers en la posición externa de los pines, en la figura 3 puede verse la ubicación de tales jumpers [6].
Figura 3. Ubicación de los jumpers selectores.
D. App Inventor
Se puede utilizar el programa Hyperterminal en Windows App Inventor una herramienta muy útil, lanzada a la nube para comenzar a configurar el módulo Xbee. Otras alternativas por Google. Permite desarrollar aplicaciones para los teléfonos son el Serial Monitor que viene integrado en el entorno de Android mediante un navegador web. Es ideal para programación de Arduino o el programa Bray++ Terminal. El introducirse al mundo de Android como desarrolladores o por comando necesario para comenzar la interacción es +++. simple curiosidad. El proceso para poder utilizar esta Tecleando esto se debe recibir como respuesta un OK. Con lo herramienta se empieza con la creación de una cuenta en un cual se establece la conexión y sólo tenemos 5 segundos para dominio de Google. Requerimientos mínimos: Un S.O. Mac interactuar con el módulo. Después de ese tiempo, el módulo OS X 10.5, 10.6, Windows XP, Windows Vista, Windows 7, regresa a su estado nativo y para volver a interactuar se debe Ubuntu 8+, Debian 5+ y un Navegador Mozilla Firefox 3.6 o teclear +++ nuevamente. más reciente, Apple Safari 5.0 más reciente, Google Chrome Se usó para la conexión a la computadora la placa Arduino 4.0 más reciente, Microsoft Internet Explorer 7 o más reciente. SIN el microcontrolador ATMEGA168. La razón de esto es que de esa manera podemos directamente interactuar vía USB E. Módulo Bluetooth con el módulo Xbee. Los módulos se configuraron con un PAN ID de 3332, un Bluetooth es una especificación industrial para Redes módulo con dirección 0 y otro módulo con dirección 1. El Inalámbricas de Área Personal (WPAN) que posibilita la módulo con dirección 0 es el que está conectado a la transmisión de voz y datos entre diferentes dispositivos dispositivo móvil y el módulo con dirección 1 es el módulo mediante un enlace por radiofrecuencia en la banda ISM de los remoto. Para configurar el primero con la dirección 0, 2,4 GHz. Los principales objetivos que se pretenden conseguir velocidad 9600 8-n-1 y comunicación con el módulo de ID1 se usó el siguiente comando: con esta norma son: Facilitar las comunicaciones entre equipos móviles y ATID3332,DH0,DL1,MY0,BD4,WR,CN fijos. Eliminar cables y conectores entre éstos. Las letras AT le indican al Xbee que le vamos a enviar Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos comandos. ID3332 le define un PAN ID de 3332, DH0 y DL1 definen la dirección 01 como el Xbee con el que se estará entre equipos personales. comunicando, el comando MY0 define la dirección propia Los dispositivos que con mayor frecuencia utilizan esta como 0, BD4 define la velocidad en 9600, el comando WR tecnología pertenecen a sectores de las telecomunicaciones y escribe la configuración a la memoria y el CN cierra la la informática personal, como PDA, teléfonos móviles, configuración. El segundo módulo se configuro como: computadoras portátiles, ordenadores personales, impresoras o ATID3332,DH0,DL0,MY1,BD4,WR,CN cámaras digitales.
L
II. T RABAJO R EALIZADO o primero que se realizo fue la configuración de los módulos Xbee, para lo cual se montan los Shields a sus
Una vez configurados los módulos se les volvió a montar el microcontrolador y se procedió a conectar el modulo Bluetooth al primer módulo.
El modulo Bluetooth utilizado es el HC-05, dicho módulo trabajo mediante conexión serie con el Arduino, y se comunica con el exterior mediante Bluetooth, ya sea a través de un teléfono móvil, ordenador, tabletas, etc. Este módulo BT solo disponemos de 4 pines que son los necesarios, por un lado tenemos VCC que se conectó a los 5V del Arduino, por otro GND que va al pin GND de Arduino, después tenemos TXD que va conectado al pin RXD del Arduino y RXD que va al pin TXD de Arduino como se puede apreciar en la figura 4.
while(Serial.available()); { Char dato=Serial.read(); switch (dato) { Case ‘ON’
{ digitalWrite(13,HIGH); break; } Case ‘OFF’
{ digitalWrite(13,LOW); break; } } }
Con los módulos programados se procedió a crear la aplicación para Android, desde App Inventor para esto solo es necesario acceder a la página del mismo con una cuenta de google y crear un nuevo proyecto [7], lo primero fue generar el acomodo visual de la aplicación como se puede apreciar en la figura 5. Figura 4. Conexión de módulo BT.
Con la configuración de los módulos Xbee y la conexión del módulo BT se procedió a la programación de las Arduinos para el envío y recepción de datos vía serial. Para descargar los programas a las Arduinos se desmonta primero los Módulos Xbee. La programación del primer módulo es la siguiente: /* Modulo Xbee 1 ============= Este programa se utiliza para enviar un estado alto o bajo remotamente por Xbee, dicho estado lo recibe de un dispositivo móvil mediante BT M.C. G. Mónica Mtz A Diciembre 2012 */ void setup() { Serial.begin(9600); } void loop() { while(Serial.available()); { Char dato=Serial.read(); Serial.print(dato); Serial.println(); delay(1000); } }
La programación del módulo remoto es: /* Modulo Xbee 2 ============= Este programa se utiliza para recibir un estado alto o bajo remotamente por Xbee, y se refleja la recepción en el pin 13 M.C. G. Mónica Mtz A Diciembre 2012 */ void setup() { Serial.begin(9600); } void loop() {
Figura 5. Acomodo visual de la aplicación.
Después se accedió al editor de bloques y se programó el comportamiento de la aplicación, el primer bloque fue el de la dirección Mac (Figura 6).
Figura 6. Bloque de texto con la dirección MAC.
La dirección Mac se puede obtener realizando una búsqueda normal en cualquier aparato con Bluetooth, una vez encontrado te dirá como se llama el dispositivo y cuál es su dirección como se muestra en la Figura 7.
Figura 7. Muestra de cómo obtener la dirección Mac de cualquier dispositivo.
El bloque de inicialización de pantalla se puede apreciar en la figura 8, en este se declaró “B_conectar”: Color del texto en blanco, el texto interior que se mostrara y el comportamiento del botón “Motor” deshabilitado.
Figura 9. Definición del comportamiento para el botón “Motor” dependiendo de si es un click corto o uno sostenido para mandar un Texto.
Y por último para el botón “Salir” se coloca en el diagrama de bloques el siguiente esquema (Figura 10). Figura 7. Inicio de la pantalla de la aplicación.
El siguiente bloque es del comportamiento del botón 8). Dentro de este bloque se encuentra un botón que cuando se hace click en el, habilita el “B_conectar.clik” (Figura
botón de Motor, también entra en una condicional “si” (IF),
donde condiciona a BluetoothClient1.Connected sea igual a Dirección Mac para cambiar la apariencia del botón “B_conectar.clik” tanto en color como en texto.
A si mismo se programa el comportamiento de un Click Largo en el botón “B_conectar.LongClick”, el cual desconectara la comunicación, devolviendo la apariencia de éste a su estado original y deshabilitando el botón para accionar el Motor.
Figura 10. Cerrar aplicación por medio de un click en el botón SALIR.
Con esto se terminó la programación por bloques realizada para la aplicación, la cual se guardó con el comando “SAVE” y se descargó a la computadora para posteriormente pasarlo al dispositivo móvil. Para la descarga se selecciona “Package for Phone”
(empaquetar para teléfono) y luego del menú que se desprende se da click en “Download to this Computer” (descargar a esta
computadora) como se puede ver en la Figura 11.
Figura 11. Descargar el instalador de la aplicación para Android (archivo con extensión “.apk”)
Con la aplicación descargada e instalada en el dispositivo móvil con Android (en este caso una tableta ViewSonic VPAD7), se procedió a realizar las pruebas. Para ello se conectó el primer módulo a una pila y se ubicó en un punto fijo, con el segundo módulo se procedió de igual manera y se situó a aproximadamente una distancia del primero de 100 metros en línea recta y en una área abierta, por último se accedió a la aplicación creada en el dispositivo móvil y desde una distancia de aproximadamente 10 metros en dirección contraria al segundo módulo de realizo el envío y recepción de datos. Un diagrama de ubicaciones se puede apreciar en la figura 12. Figura 8. Blo ques para declarar el comportamiento del botón “Conectar”, y botón “Conectar click largo”
Lo siguiente fue programar el comportamiento del botón “Motor”, para ello, se necesitan declarar dos acciones: un
simple click y un click largo. La Figura 9 muestra el diagrama de bloques para definir como funcionara el botón. Cuando se hace un click, realizara la tarea de enviarle un texto al dispositivo previamente vinculado, el texto enviado es la palabra en ingles “ON” y el otro comportamiento de click largo envía una palabra “OFF”.
Figura 12. Diagrama de ubicaciones.
Ubicados los módulos se conectó al módulo 1 desde la aplicación y se mandaron comando los cuales se retransmitieron al módulo 2 encendiendo y apagando el pin 13 del mismo.
III. CONCLUSIONES l resultado de la aplicación expuesta en este artículo es el control remoto mediante la conjunción de tecnologías asequibles a cualquier persona, por una parte la tarjeta Arduino y su Shield Xbee y por otra el S.O. Android, en el cual se pueden desarrollar aplicaciones de una manera sencilla mediante software open source. Siendo Android en la actualidad el sistema operativo más usado en dispositivos móviles inteligentes, el cual cuenta con múltiples aplicaciones para distintos usos, dentro de las cuales la comunicación a dispositivos por medio de distintos protocolos, para este caso Bluetooth. Por otro lado la tarjeta Arduino contiene varios Shields con los que se pueden realizar un sinfín de aplicaciones en varias áreas de electrónica, instrumentación y control. El enlace de estas tecnologías se muestra de una manera sencilla en contraparte de su aplicación en campo, algunas de la aplicaciones del control mostrado puede ser el control de motores en la industria, de sistemas neumáticos e hidráulicos, inmótica y domótica entre otros. Cabe destacar que otro los puntos favorables de este control es la capacidad de personalización de la aplicación realizada para Android, con lo cual se ofrece un enfoque totalmente profesional. Además de que se pueden realizar redes de módulos Xbee según sea necesario.
E
IV. R EFERENCIAS [1] A. Hernández, G. Martínez, E. Salazar, “Instrumentación Virtual Remota con tecnología CGI”, Memoria Técnica del V Congreso de
Innovación Tecnológica de Eléctrica y Electrónica. Ciudad Obregón, Sonora, Octubre 19-21,2011. [2] Brian W. Evans. “Arduino Programming Handbook: A Beginner's Reference”, Editorial, USA, 2 edición, 2008.
[3] S. Jimenez, “¿Que es Xbee?” , Septiembre 2011. Disponible en: http://www.tecnologicobj12.blogspot.mx/2011/09/que-es-xbee .html [4] Kevin Purdy. “The complete Android Guide”, Editorial, USA, 1 ed. 334, 2009. Disponible en: http://www.completeguides.net/01_The_Complete_Android_Guide. [5] Bonifaz Kaufman, “Desing and Implementation of a Toolkit for the Rapid Prototyping of a Mobile Ubiquitous Computing “. Master Thesis, University of Klagenfurt, Klagenfurt, Austria, August 2010. [6] ”Arduino + XBee - Primeros Pasos ”, Disponible en: http://www.hangar.org/webnou/wp-content/2012/01/arduino-xbee primeros-pasos.pdf [7] G. Martínez, I. Cabral, “Creación de aplicaciones de comunicación BT para Android”, Memoria Técnica SOMIXXVII Congreso de Instrumentación Culiacán, Sinaloa, Octubre 2012.
V. BIOGRAFÍA Martínez Aguilar nació un 18 de Diciembre de 1981 en Torreón, Coahuila. Obtuvo el título de Ingeniero Electrónico con especialidad en Instrumentación y Control en el Instituto Tecnológico de la Laguna en el año del 2005. Obtuvo el grado de Maestro en ciencias en el año 2008 en Ingeniería Electrónica en la especialidad de Instrumentación y Control el Instituto Tecnológico de Chihuahua. Labora en empresas de automatización y control como ingeniero de diseño y Gloria Mónica
automatización desde 2007, e imparte cátedra en la Universidad Tecnológica de Torreón desde 2009 en las carreras de Mecatrónica, Procesos de producción y Tecnologías de la Información y Comunicación. Actualmente es profesor de tiempo completo en la universidad desarrollando investigaciones en las áreas de control, automatización y TIC´s. Eduardo Salazar Valle nació
un 18 de Mayo de 1964 en Torreón, Coahuila. Obtuvo el título de Ingeniero Industrial en Electrónica en el Instituto Tecnológico de la Laguna en el año del 2000. Titulo Especialidad Automatización de Procesos Industriales en el año 2005 en Instituto Tecnológico de Saltillo Estudios de maestría en el año 2007 en sistemas Electrónica en el Instituto Tecnológico de estudios superiores de Monterrey. Imparte cátedra en la Universidad Tecnológica de Torreón desde 1999 en las carreras de Mecatrónica, Procesos de Producción y Mantenimiento Industrial. Actualmente es profesor de tiempo completo en la Universidad desarrollando investigaciones en las áreas de control y automatización.