Configuración de Módulos XBee

XBee PCB_01
El protocolo ZigBee ha sido diseñado para soportar un diverso mercado de aplicaciones que requieren bajo coste y bajo consumo, con una conectividad más sofisticada que los anteriores sistemas inalámbricos. El estándar ZigBee enfoca a un segmento del mercado no atendido por los estándares existentes, con baja transmisión de datos, bajo ciclo de servicio de conectividad. La razón de promover un nuevo protocolo como un estándar es permitir la interoperabilidad entre dispositivos fabricados por compañías diferentes. Los mercados como la automatización de edificios y hogares, la atención sanitaria, control industrial, control de alumbrado y control comercial, son los principales campos de aplicación.Esta comunicación se realiza en la banda libre de 2.4GHz. A diferencia de bluetooth, este protocolo no utiliza FHSS (Frequency hooping), sino que realiza las comunicaciones a través de una única frecuencia, es decir, de un canal. Normalmente puede escogerse un canal de entre 16 posibles. El alcance depende de la potencia de transmisión del dispositivo así como también del tipo de antenas utilizadas (cerámicas, dipolos, etc) El alcance normal con antena dipolo en línea vista es de aproximadamente de 100 m y en interiores de unos 30m. La velocidad de transmisión de datos es de hasta 256kbps.¿Cómo empleamos los módulos ZigBee?Pues bien, debido a que estos dispositivos poseen una interfaz serial, se emplea la misma para transmitirle los datos desde un ordenador o desde un microcontrolador, luego el modulo se encargara de empaquetar este dato y transmitirlo vía inalámbrica a otro dispositivo ZigBee que al recibir el dato lo enviara a su interfaz serial en donde se suele conectar igualmente un ordenador u otro microcontrolador.¿Qué tipos de datos puedo Transmitir?Los módulos ZigBee han sido diseñado con el firme propósito de incursionar en el mundo de los sistemas Scada (Sistemas de Supervisión y Control y Adquisición de Datos de Forma Remota) y en los sistemas Domoticos. Es decir, para realizar transmisiones con requerimientos muy bajos de transmisión de datos y consumo energético. Tales como la información de sensores, recolección de datos médicos,ejercer labores de detección de humo o intrusos. En fin para transmisiones de datos que no requieran un gran ancho de banda. Esta es una característica de los módulos ZigBee que no permiten la transmisión de audio y vídeo.ZigBee vs. Bluetooth:ZigBee es muy similar al Bluetooth pero con algunas diferenciasUna red ZigBee puede constar de un máximo de 65535 nodos distribuidos en subredes de 255 nodos, frente a los 8 máximos de una subred (Piconet) Bluetooth.Menor consumo eléctrico que el de Bluetooth. En términos exactos, ZigBee tiene un consumo de 30mA transmitiendo y de 3uA en reposo, frente a los 40mA transmitiendo y 0.2mA en reposo que tiene el Bluetooth. Este menor consumo se debe a que el sistema ZigBee se queda la mayor parte del tiempo dormido, mientras que en una comunicación Bluetooth esto no se puede dar, y siempre se está transmitiendo y/o recibiendo.Tiene una velocidad de hasta 250 kbps, mientras que en Bluetooth es de hasta 3 Mbps. Debido a las velocidades de cada uno, uno es más apropiado que el otro para ciertas cosas. Por ejemplo, mientras que el Bluetooth se usa para aplicaciones como los teléfonos móviles y la informática casera, la velocidad del ZigBee se hace insuficiente para estas tareas, desviándolo a usos tales como la Domótica, los productos dependientes de la batería, los sensores médicos, y en artículos de juguetería, en los cuales la transferencia de datos es menor.Dispositivos:

Tipos de dispositivos

Se definen tres tipos distintos de dispositivo ZigBee según su papel en la red:

Coordinador ZigBee(ZigBee Coordinator, ZC). El tipo de dispositivo más completo. Debe existir uno por red. Sus funciones son las de encargarse de controlar la red y los caminos que deben seguir los dispositivos para conectarse entre ellos.

Router ZigBee(ZigBee Router, ZR). Interconecta dispositivos separados en la topología de la red, además de ofrecer un nivel de aplicación para la ejecución de código de usuario.

Dispositivo final (ZigBee End Device, ZED). Posee la funcionalidad necesaria para comunicarse con su nodo padre (el coordinador o un router), pero no puede transmitir información destinada a otros dispositivos. De esta forma, este tipo de nodo puede estar dormido la mayor parte del tiempo, aumentando la vida media de sus baterías. Un ZED tiene requerimientos mínimos de memoria y es por tanto significativamente más barato.

Como ejemplo de aplicación en Domótica, en una habitación de la casa tendríamos diversos Dispositivos Finales (como un interruptor y una lámpara) y una red de interconexión realizada con Routers ZigBee y gobernada por el Coordinador.

¿Cómo configurar 2 módulos ZigBee en modo Transparente?

El uso de estos módulos Xbee2 permite reemplazar un cable por una comunicación serial inalámbrica, hasta el desarrollo de configuraciones punto a punto, multipunto, peer-to-peer (todos los nodos conectados entre sí) o redes complejas de sensores. Lo primero que se necesita es el circuito de Conexión para poder emplear los módulos ZigBee.

La siguiente figura muestra las conexiones mínimas que necesita el módulo Xbee para poder ser utilizado.
XBee Connections
El módulo requiere una alimentación desde 2.8 a 3.4 V, la conexión a tierra y las líneas de transmisión de datos por medio del UART (TXD y RXD) para comunicarse con el microcontrolador, o directamente a un puerto serial utilizando algún conversor adecuado para los niveles de voltaje como un max232. Como se puede observar en la imagen también es necesario dividir el voltaje de entrada al modulo Xbee2 desde los 5v que salen del pic a los 3.3 que él puede soportar, para esto se emplearon 3 resistencias de 10k. Es importante señalar que el disminuir el nivel de tensión no afecta la información.

La programación de los módulos Xbee2, se realiza de manera de que todo lo que ingresa por el pin 3 (Data in), es guardado en el buffer de entrada y luego transmitido y todo lo que ingresa como paquete RF, es guardado en el buffer de salida y luego enviado por el pin 2 (Data out). Los módulos Xbee2 no vienen programados por lo que es necesario hacer uso del software que proporciona el fabricante para configurarlos en modo Transparente. Este modo está destinado principalmente a la comunicación punto a punto, donde no es necesario ningún tipo de control. También se usa para reemplazar alguna conexión serial por cable, ya que es la configuración más sencilla posible y no requiere una mayor configuración. En este modo, la información es recibida por el pin 3 del módulo Xbee, y guardada en el buffer de entrada. Dependiendo de cómo se configure el comando RO, se puede transmitir la información apenas llegue un carácter (RO=0) o después de un tiempo dado sin recibir ningún carácter serial por el pin 3. En ese momento, se toma lo que se tenga en el buffer de entrada, se empaqueta, es decir, se integra a un paquete RF, y se transmite. Otra condición que puede cumplirse para la transmisión es cuando el buffer de entrada se llena, esto es, más de 100 bytes de información.

Básicamente todo lo que pasa por el puerto UART (DIN, pin 3), es enviado al módulo deseado, y lo recibido en el módulo, es enviado devuelta por el mismo puerto UART (DOUT, pin2). Existen básicamente 4 tipos de conexiones sencillas. La diferencia principal radica en el número de nodos o puntos de acceso, y la forma en que éstos interactúan entre sí.

Sólo se debe configurar la dirección. Para ello se utilizan los comandos MY y el DL. La idea, es definir arbitrariamente una dirección para un módulo, usando el comando MY, el cual se va a comunicar con otro que tiene la dirección DL, también definida arbitrariamente. Con esto cada módulo define su dirección con MY, y escribe la dirección del módulo al cual se desea conectar usando DL.

Configuración de los Módulos Xbee2

Los módulos Xbee2 pueden ser programados a través de una Hyperterminal y una interface serial con un max232 y una serie de comandos llamados at, pero este método es más complicado.

Existen dos tipos de interfaces, serial y usb que pueden ser utilizadas para configurar los módulos Xbee2 con un software propietario llamado X-CTU. Con este software podemos definir de una forma rápida todos los parámetros que queramos modificar en nuestros módulos. Una de las ventajas es que podemos tener hasta 65000 combinaciones distintas de red y se pueden hacer redes de punto a punto y punto a multi-punto.

Los módulos tienen 6 convertidores análogo-digital y 8 entradas digitales además de rx y tx. La imagen siguiente muestra la ventana del software X-CTU, con el cual se programan los módulos Xbee2, basta con hacer click sobre cualquiera de los parámetros para introducir el valor deseado.

Paso 1: El primer paso para la programación de estos módulos es conectarlos con el puerto serial o usb de la computadora empleando el siguiente circuito de conexión.
xbee&Cpu
La imagen muestra como conectar el modulo Xbee con el puerto serial de una computadora pero también podría emplearse un convertidor serial- usb y conectar directamente en un puerto USB del ordenador.

Por medio del software X-CTU se selecciona el puerto al que se conecta el modulo inalámbrico y de esta forma se establece la comunicación entre el software y el modulo. Luego se debe verificar la conexión por medio de X-CTU para esto se presiona sobre la ficha “PC Settings” y al conectar el puerto indicado en esta ventana se pulsa el botón “Test /Query” como se muestra en la imagen.
captura_zigbee
Paso 2: Luego de que muestre el mensaje que indica que sí existe conexión entre el modulo y el software. Se procede a leer los parámetros del Xbee2, para esto se selecciona la ficha “Modem Configuration” y en Modem: se selecciona el modulo Xbee que se desea programar. Tal y como se muestra en la siguiente figura. Por ejemplo si se posee un modulo Xbee serie 2 se debe seleccionar XB24-B en el recuadro marcado con color verde.
captura_zigbee_1

Paso 3: El paso tres consiste en presionar el botón Read.

Paso 4: El siguiente paso es seleccionar el modo de operación del Xbee. Para eso se selecciona “Function Set”. Tal y como se muestra en la siguiente figura, existen muchas formas distintas en las cuales se pueden programar los módulos. Los diferentes modos de programación están remarcados con color verde. Es muy importante hacer notar que si se desea configurar 2 módulos Xbee para que operen como un cable virtual. Es decir, que solo se transmitan información entre ellos y No en red. Se debe escoger uno de los módulos en modo COORDINATOR y el otro en modo ROUTER /END DEVICE.
captura_zigbee_2
Paso 5: Después de haber seleccionado un modulo como COORDINATOR y otro como END/DEVICE. Se procede a programar los siguientes parámetros.

Primero se Procede a programar en el Coordinador los siguientes parametros

-DH : Destination Address High: aquí se debe colocar el número (#######) SH -Serial Number High. Que se lee del otro modulo.

-DL: Destination Address Low: aquí se debe colocar el numero (########)SL

– Serial Number Low. Que se lee del otro modulo.

-NI -Node Identifier: igual para ambos módulos.

-BD –Baud Rate: baud rate igual para ambos módulos.

Todos los módulos xbee poseen un nombre SH y SL, para que otro módulo le transmita a él debe colocar en su destinación DH y DL el SH y SL del módulo al que quiere comunicarse. Luego la velocidad de baud rate, el pan id, y el canal de transmisión debe ser igual en los 2 modulos. Ver siguiente figura.

Paso 6: Consiste en revisar los parámetros y luego pulsar el botón write para que la configuración establecida pueda ser guardada en la memoria del módem inalámbrico.
captura_zigbee_3
Como se puede observar en la imagen anterior al finalizar la configuración deben corresponder el SH y SL del Router con el DH y DL del Coordinador y viceversa. Aparte de los otros parámetros comentados anteriormente.

En resumen, se conectan los modulos con un hardware apropiado. A algún puerto serial o usb de la computadora. Se verifica la conexión con el modem inalámbrico. Se leen los parámetros del primer modem y se anotan su SH y SL. Luego se desconecta este modulo. Se conecta otro modulo y se llenan los parámetros DH Y DL con los SH y SL tomados del anterior. Se fija una velocidad de Baud, un canal de comunicaciones entre los 16 disponibles, se verifica el pan id que corresponda con el pan id del modem anterior y se pulsa el botón write. Por último se retira este modem y se conecta el primero nuevamente y se llenan los parámetros DH Y DL con los SH y SL respectivamente.

Basado en el tutorial de Julio Marturet que se encuentra en su pagina.

Sí tienes alguna inquietud no dudes en comentar.

14 comments

      1. pero en el párrafo que esta antes del “paso 6” tu dices <<>> entonces yo configuro el pan id… pero el ch no me lo deja editar; y es un tanto lógico que no se comuniquen si no están en el mismo canal..

      2. pero en el párrafo que esta antes del “paso 6” tu dices–Luego la velocidad de baud rate, el pan id, y el canal de transmisión debe ser igual en los 2 modulos. Ver siguiente figura.

          1. Bueno NO habia podido comentar antes. Pero la explicacion q haces en el blog ES CORRECTA…!!! el error era mio, tenia un DL mal escrito.. el canal lo configura el X-CTU por defecto.. GRACIAS.. tienes un 10

  1. HOLA ESTA MUY BUENA TU APORTACION , TENGO UNA PREGUNTA , PARA QUE ES LA CONFIGURACION REMOTA EN EL X CTU? , TENGO QUE CONFIGURAR LOS DOS XBEE DESDE LA COMPU PARA DESPUES UNO PONERLO A SUPERVISAR SIN NECESIDAD DE LA COMPUTADORA, O SE PUEDE CONFIGURAR A DISTANCIA SIN ESTAR CONECTADO A LA COMPU?

  2. Hola, esta muy bueno tu tutorial. Ahora podrias ayudarme a configurar los modulos xbee para que puedan ver otros dispositivos zigbee? En mi caso estoy utilizando unos modulos de zolertia, llamados z1, pero desconsco la configuracion para hacer que se comuniquen los dos, espero que me ayudes, este es mi correo siioo@outlook.com

  3. hola, soy estudiante de ingeniería en Telecomunicaciones y estoy haciendo mi tesis sobre periféricos de red ZigBee, quiero implementar un chip en una FPGA para controlar un nodo ZigBee, en este caso un coordinador; veo que conoces mucho de esta tecnología y que ya has logrado la comunicación entre estos dispositivos, además de que sabes trabajar con el X-CTU, podrias darme tu correo para posible consulta….

    1. Hola Adrian, sí la consulta está entre mis pocos conocimientos con gusto de ayudaré, ahora, no te doy mi correo porque como puedes ver todas las consultas y dudas las respondo en el blog, con la idea de que si alguien tiene una duda similar la pueda aclarar inmediatamente.
      Un saludo

  4. HOLA …. PALMA ME SIRVIÓ TU PUBLICACIÓN DEMACRADO PARA COMPRENDER SU FUNCIONAMIENTO. PERO QUISIERA SABER SI PODRÍAS AYUDARME
    NECESITO HACER LA COMUNICACIÓN DE 2 X-BBE U DEV PARA ELIMINAR EL CABLEADO DE TERMOPARES.
    LA APLICACIÓN NECESARIA ES DEFINIR UN X-BEE COMO RECEPTOR DE SEÑALES DE VOLTAJE Y EL OTRO XBEE RECEPTOR DE ESA SEÑAL PARA SU ACONDICIONAMIENTO.

Deja un comentario