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.
·
No hay comentarios:
Publicar un comentario