martes, 8 de marzo de 2016

FASE 6. COMUNICACIÓN INALÁMBRICA CON XBEE



En esta fase, se va a modificar la comunicación entre los componentes del sistema, transformando la antigua comunicación alámbrica que se disponía a través del protocolo I2C, a un nuevo tipo de comunicación inalámbrica mediante el uso de módulos XBee PRO S2.

Los módulos XBee están basados en el protocolo IEEE 802.15.4, esta especificación se adapta a la perfección a la comunicación entre  redes de sensores, permitiendo facilitar la instalación enormemente gracias a sus grandes ventajas. Utilizan la banda de los 2.4GHz y permiten teóricamente un total de hasta 65535 equipos ya que  el campo dirección lo componen 16 bits.
Estos módulos disponen de dos formas de comunicación:

Modo AT: en el modo de transmisión serial transparente, la comunicación es parecida a la que se realiza a través del puerto serial. Se trata del modo más sencillo y su principal desventaja es que solo permite enviar información a un nodo, ya que se ha tenido que configurar a priori la dirección de destino en ambos dispositivos. Es el modo que se utilizará en este ejemplo debido a que es suficiente para este proyecto.

Modo API: en este modo el Arduino sería el encargado de crear la trama que se va a enviar, será el modo elegido cuando la aplicación requiera una red MESH, es decir múltiples nodos conectados entre sí.
Los módulos pueden configurarse según la función del dispositivo al que se conecte como coordinadores, routers o dispositivos finales. En este caso uno de ellos será configurado como coordinador, esto quiere decir, que será el responsable de establecer el canal de comunicaciones. El otro será configurado como router/dispositivo final, ya que se ha elegido el modo AT.

En este escenario se utilizarán dos Arduinos y dos módulos XBee Pro S2 que se conectarán a través de sus shields. Es importante cargarle al Arduino un programa en blanco para poder configurar los módulos conectados al mismo Arduino a través del shield, además de poner el conmutador en modo USB.




 

La configuración se realiza a través de comandos AT, los parámetros que se van a modificar son:

·         PAN ID (ID): identificador único para la red. Los XBee asignados a un mismo PAN ID pueden comunicarse entre sí. Esto permite configurar redes separadas en el mismo lugar.

·         Dirección de destino (Parte Alta): se trata de la parte alta de la dirección única para cada unidad en particular, como se verá posteriormente se trata de la MAC que se indica en el propio software o en la parte posterior del módulo XBee.

·         Dirección de destino (Parte Baja): parte baja de la dirección única. Si se indica en la misma FFFF, manda el mensaje en broadcast a todos los del mismo PAN ID.
  
Después de probar diferentes programas, se ha optado por su simplicidad y gran potencia la última versión de XCTU, este software se puede encontrar para cualquier plataforma en la página del fabricante http://www.digi.com/products/xbee-rf-solutions/xctu-software/xctu. 

Una vez instalado, se ejecuta el XCTU y, si se conecta el Arduino con el shield, al añadir un nuevo dispositivo, el programa debería detectarlo y leer los valores que contiene. El primer paso será cargarle el firmware que se necesita. En primer lugar se generará el coordinador, al que se le cargará el ZNet 2.5 Coordinator AT a través del update. Una vez se tiene el firmware cargado, se apunta la dirección MAC que se utilizará para configurar el segundo, y se cambia el PAN ID por ejemplo a 2222. Al segundo se le asignará el ZNet 2.5 Router/End Device AT y se le modificarán los campos DH y DL con la dirección del coordinador y con el mismo PAN ID.

Para finalizar, con el Arduino coordinador conectado al PC donde se tiene el XCTU y el otro Arduino alimentado en cualquier punto, al pulsar en descubrir nodos se debería mostrar el segundo. La prueba final será mandar a través del Serial.print(), información de uno a otro y recibir con Serial.read(). Para que esto funcione hay que establecer el conmutador a XBee.
Es importante conocer que a través del Arduino y su shield solo se puede programar en modo AT y para el modo API es necesario el programador desde el PC ya que son necesarias las líneas DTR y RTS y Arduino+ShieldXBee solo proporciona alimentación y comunicación serie.

·    






 
 

No hay comentarios:

Publicar un comentario