Conexión Wi-Fi con un Microcontrolador Benjamín Valera, Francisco Javier García benjamin.valera@ccadet.unam.mx Centro de Ciencias Aplicadas y Desarrollo Teclógico/Universidad Nacional Autóma de México Av. Universidad No 3000, Universidad Nacional Autóma de México, C.U., Distrito Federal, 04510, México, México RESUMEN En este trabajo se presenta un sistema hardware y software para la interconexión inalámbrica entre un dispositivo móvil del tipo Smartphone con un microcontrolador. El sistema desarrollado constituye una plataforma básica de desarrollo que puede ser utilizada en diversas aplicaciones para resolver problemas reales. Bajo este esquema es posible que un usuario, a través de un dispositivo móvil, controle de manera inalámbrica a un sistema electrónico con fines de activar cargas eléctricas o monitorear señales de distintos procesos. El sistema está desarrollado sobre la base de un microcontrolador PIC18F4550, un módulo Wi-Fi RN-131 y una aplicación para dispositivos Android desarrollada en Eclipse. Para la construcción del sistema se utilizaron herramientas básicas de desarrollo, lo cual proporciona los siguientes beneficios: facilita la transferencia teclógica, optimiza los recursos de procesamiento, minimiza los costos de los materiales utilizados y genera teclogía de desarrollo propio. Como parte de los resultados, se presenta la aplicación de este sistema en el control de un dispositivo electrónico que genera señales digitales de encendido/apagado y permite el monitoreo de variables analógicas. PALABRAS CLAVE: Wi-Fi, Microcontrolador, Android. 1. INTRODUCCIÓN Hasta hace algus años, el desarrollo de dispositivos inalámbricos resultaba ser un trabajo laborioso para el diseñador y de difícil adquisición para los usuarios. Sin embargo, el desarrollo de la familia de estándares 802.11 ha impulsado el uso común de equipos inalámbricos en una gran variedad de dispositivos móviles a precios razonablemente bajos. La combinación de dispositivos móviles dotados con conexión Wi-Fi y sistemas operativos altamente personalizables, ha catapultado el desarrollo de aplicaciones en una gran variedad de ámbitos en donde la primicia es proporcionar automía y movilidad. Como ejemplo de esta combinación exitosa y destacando el nivel de penetración social, se puede mencionar el uso extendido del teléfo inteligente o Smartphone como medio de comunicación y almacenamiento. Un Smartphone está limitado a proporcionar comunicaciones personales. En la actualidad es utilizado como medio de almacenamiento y conexión con otros equipos dotados con conexión inalámbrica. Con un Smartphone es posible obtener datos de internet o de otros medios e imprimirlos, resguardarlos o compartirlos utilizando Wi-Fi. En la vida diaria soluciona una gran cantidad de problemas, como por ejemplo, obtener el estado de cuenta de un proveedor de servicios, imprimirlo y presentarlo para su pago. No obstante, en el ámbito académico y de investigación, un Smartphone puede utilizarse para adquisición y control de sensores [1], control inalámbrico de robots móviles [2], registro de señales que genera el cuerpo huma [6], entre otras aplicaciones. 1
En este sentido, el propósito de este trabajo es presentar el diseño, configuración e implementación de una red inalámbrica para que un dispositivo móvil del tipo Smartphone envíe instrucciones de operación a un sistema electrónico con base en un microcontrolador dotado con un módulo de comunicación Wi-Fi, utilizando este medio inalámbrico de comunicación. 2. METODOLOGÍA La figura 1 muestra el esquema general del sistema implementado. Smartphone con software específico Sistema electrónico Red inalámbrica Wi-Fi RN-131-EK PIC18F4550 Salida 1 Salida 2 Entrada 1 Entrada 2 Figura 1. Esquema general del sistema desarrollado En el esquema implementado, un Smartphone con software específicamente desarrollado para la presente aplicación se conecta a una red inalámbrica Soft Access Point (Soft AP) que se configura en el módulo Wi-Fi RN-131-EK [5]. A su vez, el RN-131-EK se conecta al microcontrolador PIC18F4550 mediante la conexión UART común a ambos dispositivos. En este esquema es posible enviar instrucciones desde el Smartphone y recibirlas en el microcontrolador para ejecutar operaciones sobre las salidas digitales 1 y 2 o para encuestar el estado de las entradas analógicas 1 y 2. Sistema electrónico El sistema electrónico se implementa con base en dos tarjetas PCB de desarrollo propio que se muestran en las figuras 2 y 3. El diagrama de conexiones simplificado entre estas dos tarjetas se muestra en la figura 4, en donde se obvian los conectores de propósito general. De la figura 4 es importante mencionar lo siguiente: Se disponen de dos conectores USB J1 y J2. J1 es utilizado para transferir y ejecutar programas en el PIC18F4550 desde una PC en modo bootstrap [4]. J2 es utilizado para configurar el módulo RN-131-EK desde una PC, principalmente para establecer los parámetros de operación de la red Soft AP. Se cuenta con una fuente local de poder de 5V que alimenta exclusivamente al sistema de desarrollo RN-131-EK. La fuente local se habilita al establecer un puente de conexión en J4 y deshabilitar el conector USB de J2. Por otra parte, removiendo el puente de J4 y habilitando la conexión USB en J2 se obtiene polarización directamente del dispositivo USB. 2
El sistema de desarrollo PIC18F4550 obtiene polarización de 5V directamente del dispositivo USB que se conecte en J1. Debido a que el nivel de voltaje en el UART del PIC18F4550 es de 5V y el correspondiente en el UART del RN-131-EK es de 3V, se utiliza el desplazador de niveles U2. Figura 2. Sistema de desarrollo PIC18F4550 Figura 3. Sistema de desarrollo RN-131-EK Figura 4. Sistema electrónico 3
Firmware en el sistema electrónico En el sistema electrónico residen dos firmwares que impulsan independientemente la operación del PIC18F4553 y del módulo RN-131-EK. Firmware en el PIC18F4550. Es un programa desarrollado específicamente para esta aplicación en lenguaje C para PIC utilizando MPLAB como herramienta de desarrollo [3]. El programa consiste de un lazo de control en espera de recibir comandos para ejecutarlos y responder con una confirmación de ejecución, como se muestra en la figura 5. La figura 5 muestra el diagrama de flujo simplificado para una salida digital en RB0 y una entrada de Conversión Analógica a Digital, CAD, en RA0. La implementación final contempla dos salidas digitales, RB0 y RB1, y dos entradas analógicas, RA0 y RA1. Los comandos y respuestas son recibidos y transmitidos a través del UART que comunica al PIC18F4550 con el RN-131-EK. A su vez, el RN-131-EK recibe y transmite estos datos mediante su conexión Wi-Fi, dada su capacidad de operación en modo de tubería de datos. Inicia variables y UART Cadena en UART? si Cadena= si comando 1? RB0 = 0 Envía RB0 = Bajo por UART Cadena= si comando 2? RB0 = 1 Envía RB0 = Alto por UART Cadena= comando 5? si Respuesta= CAD en RA0 Envía Respuesta por UART Figura 5. Firmware en el PIC18F4550 Firmware en el RN-131-EK. Es un conjunto de parámetros que se almacenan en memoria volátil para establecer la operación de la red Soft AP. La lista de parámetros se muestra en la tabla 1 con su correspondiente comando que se ejecuta desde un programa emulador de terminal para PC. 4
Los parámetros se establecen con el RN-131-EK en modo de comandos. Una vez establecidos los parámetros, la red siempre reiniciará en el modo de datos, en donde el dispositivo actúa esencialmente como tubería de datos entre la red inalámbrica y el puerto UART. Comando enviado desde el emulador de terminal Significado $$$ Ingreso al modo de comandos set wlan join 7 Crea una red Soft AP con los parámetros establecidos set wlan cannel 1 Establece el número de canal de la red WLAN set wlan ssid BenjasRN Establece el Service Set IDentifier de la WLAN set ip dhcp 4 Habilita el servidor Dynamic Host Configuration Protocol en modo Soft AP set ip address 1.2.3.4 Establece la dirección Internet Protocol set ip net 255.255.255.0 Establece la dirección para la máscara de red set ip gateway 1.2.3.4 Establece la dirección para la puerta de enlace save Almacena la configuración establecida en memoria volátil reboot Reinicia el dispositivo Tabla 1. Configuración de la red Soft AP en el RN-131-EK Software específico en el Smartphone Se desarrolló un software para Smartphone con Android 2.3 utilizando Eclipse como herramienta de programación. El programa está construido con base en las tres clases que se muestran en la figura 6. La tabla 2 describe los métodos de las tres clases utilizadas. Figura 6. Programa para Smartphone 5
Clase MainActivity MyCustomAdapter TCPClient Descripción Crea la lista de mensajes de texto que se enviarán y recibirán en la aplicación. Crea la tarea asíncrona que se encargará de recibir los datos del cliente TCP. Atiende el evento por pulsar el botón para enviar la cadena ingresada mediante el cliente TCP. Recibe los datos del cliente TCP y actualiza la lista de mensajes. Desconecta la conexión del cliente TCP al finalizar la sesión. Administra el arreglo de cadenas que contiene la lista de mensajes para su despliegue en vistas de texto. Implementa la interface TCP para conectar, recibir, enviar y cerrar el cliente de conexión. Tabla 2. Descripción de las clases del proyecto 3. RESULTADOS La figura 7 muestra el sistema electrónico desarrollado y la figura 8 muestra la pantalla del programa en Android una vez que se enviaron instrucciones para activar la salida digital 1 (comando 1) y registrar la entrada analógica 1 (comando 5). Figura 7. Sistema electrónico desarrollado Figura 8. Programa para Smartphone 4. CONCLUSIONES Se desarrolló un sistema electrónico con base en un microcontrolador PIC18F4550 y módulo Wi-Fi RN-131-EK para su interconexión inalámbrica. El software de operación para el sistema electrónico se desarrolló para dispositivos Smartphone con sistema operativo Android. El conjunto de sistema electrónico y software de operación constituyen un sistema inalámbrico para el encendido/apagado de dos salidas digitales y adquisición de dos canales de conversión analógica a digital. El trabajo reportado se construyó con base en herramientas básicas de programación como MPLab y Eclipse. 6
El sistema reportado en éste trabajo constituye una herramienta básica de desarrollo que es de gran utilidad en el momento de desarrollar aplicaciones complejas, como robots móviles o sistemas inalámbricos de adquisición de datos. Como trabajo a futuro, se plantea el diseño y construcción de un sistema seguidor solar de dos grados de libertad para celdas fotovoltaicas utilizadas en la generación de energía eléctrica. En éste concepto, el sistema electrónico controlará la posición de dos motores (Azimuth y Elevación) de acuerdo a las ecuaciones solares en función de la fecha y hora de un reloj de tiempo real. Los parámetros de operación del seguidor solar (fecha, hora, latitud y longitud) así como sus variables de operación (posición y temperatura) podrán establecerse y registrarse mediante una interface inalámbrica Wi-Fi operando en un dispositivo móvil del tipo Smartphone. 5. REFERENCIAS Geltz, BR, Berlier JA, McCollum JM. Using the iphone and ipod Touch for remote sensor control and data acquisition. Proceedings of the Digital Object Identifier IEEE SoutheastCon 2010 (SoutheastCon). Concord, USA, March 18-21, 2010. Gopal L, Loong AWW. Designing and implementing a Wi-Fi enabled mobile robot. IEEE International Conference on Computer Science and Automation Engineering (CSAE). Shanghai, China, June 10-12, 2011. Microchip Techlogy Inc. MPLAB IDE User s Guide. USA: Microchip 2005. Microchip Techlogy Inc. PICDEM FS USB Demonstration Board User s Guide. USA: Microchip 2004. Roving Networks. WiFly Evaluation Kit. Version 1.32r. Los Gatos USA: Roving Networks 2012 Won-Jae Yi, Saniie J. Smart mobile system for body sensor network. IEEE International Conference on Digital Object Identifier Electro/Information Techlogy (EIT). Rapid City, USA, may 9-11, 2013. 7