Universidad de la Salle. Sánchez Fabio, Palomares Esteban, Giraldo Jaime, Rodríguez Andrés. Control de iluminación.. 1 Control inalámbrico de iluminación. . Sánchez Fabio, Palomares Esteban, Giraldo Jaime, Rodríguez Andrés. Universidad de la Salle. Resumen—En este documento se presenta la implementación de un sistema de control de iluminación de forma inalámbrica haciendo uso de modulos XBEE PRO y software libre. Índice de Términos—Software libre, ZigBee, Qt. I. INTRODUCCIÓN Debido a la alta demanda que empieza a tener el mercado de la domótica y sus amplios beneficios, surge la idea de diseñar un sistema embebido que tenga la capacidad de controlar el la iluminación en una vivienda. Muchas veces quisiéramos poder apagar las luces que están prendidas innecesariamente sin tener que ir hasta el Switch, o a veces quisiéramos resaltar algunos espacios en la casa para dar una mejor impresiona los invitados. Lo que se planteara a continuación, es un sistema embebido capaz de controlar la iluminación de su hogar para darle más comodidad y ahorro de energía contribuyendo con la armonía de nuestro planeta. para poder incluir otros dispositivos a la misma, como Routers y End Devices. Cada dispositivo que reconoce una red ZigBee, envía una petición al coordinador solicitando una dirección propia para ingresar a la red. En nuestro caso, la red se compone de un coordinador y un solo end device. Por otra parte, el dispositivo que es end device se encarga de recibir los datos que provienen del PC, para ser enviados por una UART incorporada en cada modulo ZigBee. Este se comunica de forma serial con un microcontrolador PIC16f876a, el cual toma el dato que se envía desde el PC y realiza las acciones de control sobre un LED para este caso. II. DESARROLLO DEL PROYECTO. A. Construccion del hardware. El hardware se compone de un modulo de comunicación serial por protocolo RS232, el cual sirve de interface entre el PC y el dispositivo ZigBee que funciona como coordinador. Los datos del puerto serie se envían a través del terminal de comandos de Linux haciendo uso de una aplicación llamada minicom. Por su parte, el dispositivo ZigBee coordinador de la red es el encargado de crear la red, asignando una única dirección de red Control Inalámbrico de Iluminación. La dimerización se hace por PWM, donde cada dato que se recibe por el modulo de comunicación serie, es interpretado como un dato numérico que representa una dimerización del 1% al 100%, controlando el ancho del pulso de la señal PWM para este mismo rango. Todas las comunicaciones de tipo serial se hacen a una velocidad de 9600 Baudios, enviamos 8 bits de datos, sin paridad y sin control de flujo ni por software ni por hardware. Esto se debe a que no se considera un problema que algún dato no llegue a Universidad de la Salle. Sánchez Fabio, Palomares Esteban, Giraldo Jaime, Rodríguez Andrés. Control de iluminación.. 2 su destino, ya que la confiabilidad que obtenemos con estas características es suficiente para la aplicación. La comunicación entre cada módulo ZigBee se realiza de forma inalámbrica sobre la banda de los 2.4 GHz, asignando uno de 16 canales distintos para la red, y transmitiendo a 200.000 bps. Sin embargo vemos que en la comunicación existe un retraso debido que los modulos deben empaquetar la trama de datos serial haciendo uso del protocolo ZigBee, establecer una comunicación punto a punto con el end device, esperar ACK por cada trama que se envía, etc. B. Implementación de la aplicación en el PC y firmware del microcontrolador. La aplicación que se encarga de enviar los datos pertinentes por el puerto serial del PC fue programada en el software libre Qt creator, el cual nos permite tanto la creación de la interface GUI del aplicativo, y la programación en lenguaje C++ para el envio de los datos. Para el firmware del microcontrolador, usamos el software CCS PIC C, que nos permite hacer la programación en lenguaje C de forma sencilla. El programa consiste en recibir el dato desde el puerto serial y en caso de recibir un carácter, prender y apagar un diodo LED para ver si se está realizando la comunicación. III. CONCLUSIONES. Para el control de iluminación en viviendas, el uso de módulos de comunicación ZigBee se ha convertido hoy en día en un estándar de facto debido a su bajo costo y altas prestaciones, además de su bajo consumo orientado al uso en dispositivos alimentados por baterías. Vemos que la implementación de estos módulos es bastante sencilla y la comunicación confiable, donde solo basta hacer la configuración de cada módulo por medio del software X-CTU suministrado por www.digi.com . Como se vieron retrasos en la comunicación, se puede considerar el uso de una taza de transferencia mayor a los 9600 Baudios, o disminuir los tiempos de espera para la comunicación con cada end device modificando el firmware del módulo ZigBee. En cuanto al aplicativo, hizo falta poder ejecutarlo directamente desde un sistema embebido que funcione con alguna distribución de Linux, ya que esto complementa la portabilidad del dispositivo maestro con la que ya tenemos en el esclavo. Control Inalámbrico de Iluminación. Universidad de la Salle. Sánchez Fabio, Palomares Esteban, Giraldo Jaime, Rodríguez Andrés. Control de iluminación.. A continuación se muestra el firmware del microcontrolador en lenguaje C. //Directivas compilador. de preprocesamiento para el #include <16F876a.h> //Incluimos libreria de definiciones para el PIC. #FUSES XT,NOWDT //Definimos el uso de un cristal de cuarzo e inhabilitamos el perro guardian. #use delay(clock=4000000) //Reloj a 4MHz. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N) //Configuracion de la UART. #use standard_io(C) //Modo standard de acceso a los puertos del PIC. char Dato; //Definimos la variable que contiene el dato de entrada de la UART. #int_rda //Definimos la funcion de interrupcion para el modulo de comunicaicon serie. void serial_isr() { ch=getchar(); //Recibimos el dato del puerto serie. output_toggle(pin_C0); //Indicamos por medio de un LED que la recepcion tuvo lugar. } void main() { enable_interrupts(global); //Habilitamos interrupciones del PIC enable_interrupts(int_rda); while(1) { //Ciclo infinito. } } Control Inalámbrico de Iluminación. las 3