Paper final embebidos

Anuncio
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
Descargar