CONFIGURACIÓN DE DOS MODULOS XBEE PARA COMUNICACIÓN ENTRE XBEE(PC, COORDINADOR) Y XBEE (ARDUINO, ROUTER)
1 . Descargar X-CTU e instalarlo bien sea en Windows o en
otros sistema operativo (revisar compatibilidad), se puede descargar de [1], página
oficial.
2 . Conectar la Xbee que va a hacer las veces de
coordinador y configurarla con X-CTU de la siguiente manera:
a. Verificar el puerto y la trasmisión de nuestro
dispositivo, tal como se observa:
Al hacer dicha verificación (clic en Test/Query) debe aparecer
un cuadro de dialogo como el siguiente indicando que se ha establecido la
comunicación
Si por algún motivo llegase a aparecer un cuadro como
el siguiente, verificar el puerto y probar con otro parámetro para la
trasmisión
b. Después de haber establecido comunicación con el
dispositivo se deben leer y configurar los siguientes parámetros:
·
PAN ID: Este es el número
de identificación de nuestra red, todos los módulos que se comuniquen dentro de
una red deben de tener el mismo número, establecemos como PAN ID por ejemplo el número 555.
·
DL
(Destination Address High): Numero de 64 bit que corresponde a nuestro SL
·
DH
(Destination Address Low): Numero de 64 bits que corresponde al SL del router
·
NI (Node
Identifier): Este es nuestro identificador de nodo, el cual por facilidad se
recomienda poner como una abreviación, para nuestro caso sería COR
(coordinador) y ROU (router)
Como
se puede ver, antes de configurar estos parámetros se debe saber cuál es nuestro
SL (Serial Number Low) y SH (Serial Number High), así como también el SL y SH
de nuestro router (Xbee que hará las veces de router), por lo que se recomienda
hacer una tabla previamente para facilitar la configuración, tal como se
muestra:
Coordinador
|
Router
|
|
PAN ID
|
555
|
555
|
SL
|
Predeterminado
|
Predeterminado
|
SH
|
Predeterminado
|
Predeterminado
|
DL
|
=SL(coordinador)
|
=SL(router)
|
DH
|
=SH(router)
|
=SH(coordinador)
|
NI
|
COR
|
ROU
|
Nótese
que el DH y el DL del coordinador corresponden al valor del SH y el Sl de nuestro router y viceversa, estos
valores pueden variar de modulo a modulo.
c. Para tener en cuenta: si se va a configurar un módulo
como un coordinador es preciso que cuando se lean los parámetros se verifiquen
que están en la función ZIGBEE COORDINADOR AT y si se quiere configurar el
router verificar que este en la función ZIGBEE ROUTER AT, si no se está en
estas funciones cambiar lo opción desde la lista desplegable y luego modificar
los parámetros, esto si se quiere una configuración AT, de quererse una
configuración API se sigue el mismo procedimiento pero difiere en la función
(ZIGBEE ROUTER API o ZIGBEE COORDINADOR API)
d. Luego de haber configurado estos parámetros los
escribimos o grabamos en la xbee, tanto para el coordinador como para el router,
el procedimiento es igual solo que se debe tener en cuenta que antes de
modificar cualquier cosa es mejor tener los valores en una tabla (como ya se
muestra antes), para que la configuración sea más fácil, por lo que se sugiere
que se haga primero la tabla y después de tener todos los valores completos se
proceda a realizar la configuración.
e. Para probar que la comunicación funciones se puede
implementar el siguiente código de Arduino sacado de [2]:
/*
Consiste en
escribir por la pantalla del computador (consola serial)
una letra
predeterminada, la primera vez que se escriba esta
el LED del
pin 13 se enciende, si se vuelve a escribir por segunda vez
el LED se
apaga, además el modulo XBee (E) ubicado en el computador
esta
recibiendo en tiempo real el incremento de un contador ubicado en
el modulo
XBee (R). Esta comuniación serial se establece de manera
inalámbrica por medio de dos modulos XBee
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
int led = 13; //Pin donde se encuentra el
LED, salida
char leer; //Variable
donde se almacena la letra
boolean prendido=false; //Estado LED
la primera vez, apagado
int contador = 0; //Variable del contador
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta
cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicación
serial
pinMode(led, OUTPUT); //Configurar el LED como
una salida
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion
se mantiene ejecutando
{
// cuando
este energizado el Arduino
contador++; //Incrementa
el contador en una unidad
Serial.println(contador); //Imprime por
consola el valor del contador
delay(100); //Retardo
//Guardar en
una variable el valor de la consola serial
leer=Serial.read();
// Si es la
letra 'a' y ademas el LED esta apagado
if ( (leer=='a') && (prendido==false) )
{
digitalWrite(led,HIGH); // Enciende el LED
prendido=true; // Actualiza el estado del
LED
}
// Si es la
letra 'a' y ademas el LED esta encendido
else if ( (leer=='a') && (prendido==true) )
{
digitalWrite(led,LOW); // Apaga el LED
prendido=false; // Actualiza el estado del
LED
}
}
//Fin programa
Se copia a la tarjeta arduino, se hace el montaje de
la Xbee que hace las veces de router a la tarjeta, se pone la transmisión de la
Xbee en serial y se conecta a una fuente externa de energía, luego se conecta
la xbee que hace las veces de coordinador al pc y se abre el X-CTU, en la
terminal y listo, cada vez que se pulse la letra “a” se enciende y se apaga el
LED del pin 13, además de debe mostrar por la terminal el contador que está
trasmitiendo la Xbee router, como se muestra a continuación:
Esta documentación está basada
en los tutoriales para Arduino y Xbee de [2], allí se podrá encontrar más
documentación y ejemplos acerca de estos módulos, como también de otras cosas
que conciernen a Arduino
BIBLIOGRAFIA
Escrito por: Paola A Galeano
Contacto: http://www.facebook.com/ingenius10
pagaleanoh@unal.edu.co
e