Finalicé el artículo anterior con un mote que enviava paquetes de forma periódica al coordinador de la rez Zigbee, directamente o a través de algún router. El objetivo en este momento es sacar esta información de la red Zigbee para hacerla llegar a un dispositivo que la pueda representar, gestionar, manejar, etc.
De momento lo que tenemos es una señal de radiofrecuencia en el aire, con un formato de paquete válido (aunque es un «private profile» propietario de Digi). En realidad tenemos algunos paquetes más de la capa MAC que se utilizan basicamente para la formación de la red y cuestiones por el estilo, pero ed momento eso es transparente para nosotros.
Podemos utilizar otro módulo con otro Xbee explorer, configurado como coordinador en modo API y conectado por un puerto USB a un PC. Por cada paquete válido que reciba sacará por su UART un paquete del tipo 0x91 (Zigbee Explicit Rx indicator), ese paquete contiene una serie de encabezados con las direcciones de origen, toda una serie de datos de comunicación y un Payload con unos Bytes que representan los valores de tensión de las puertas digitales. En el PC deberíamos de tener un servicio que escuche constantemente el puerto serie (que emula el USB) , un parser (analizador) que convierta los bytes de cada paquete en los datos y, finalmente, algo que transforme los datos y permita hacer algo con ellos (por ejemplo representarlos en una gráfica)
Otra opción, de entrada más fácil, es utilizar un Gateway de Digi, nosotros compramos unos X4 para hacer las pruebas.
El Gateway unciona como coordinador en la red Zigbee, además tiene un puerto ethernet, un serie, un USB y, opcionalmente, puede llevar una tarjeta HDSPA.
Despues de conectar el gateway el número de opciones de configuración es abrumador, están bastante bien clasificadas y bastante claritas la gran mayoría. El gateway forma la red con nuestro mote sin ningún problema, en la pantalla de configuración podemos ver nuestro nodo y todos sus registros de configuración (un poco a trompicones porque lo hacemos dormir intermitentemente y o duerme o habla).
Para ser sincero yo esperaba ver ya en la pantalla del Gateway las temperaturas, pero no es así, ahora le veo la lógica, es un mote específico, que hemos construido nosotros ¿que me hacía suponer que incorporaría un SW para representarlo?, la respuesta es «El desconocimiento»
Digi tiene una plataforma de desarrollo rápido de soluciones http://www.idigi.com/, que permite ir enviando mediante servicios web la información que vamos recogiendo a un servidor de su propiedad ubicado en Internet, en ese servidor podemos ver y modificar los mismos datos que vemos en el X4, pero ahora desde cualquier parte del mundo (no es nuestro objetivo configurar los parámetros de la red Zigbee desde cualquier parte del mundo, más bien ver la temperatura que recoge el sensor)
Para compatibilizar su producto con casi cualquier cosa el X4 permite cargar y ejecutar aplicaciones en Python, incorpora todo un entorno de desarrollo, hay uan comunidad de usuarios, ejemplos, etc. Así que ya sabeis lo que toca….. a aprender como funciona esto del python.
En la web de Digi podemos descargar una aplicación en Python (DIA) jugando y modificando la aplicación hemos conseguido publicar los datos de nuestros sensores en pachube (ver artículo Recuperando el hilo de la publicación en Pachube) interrogar al Gateway con servicios Web o verlo en una cónsola.
Aqui lo dejo, pero de momento tenemos los datos accesibles dentro de un «cacharro» que tiene un puerto Ethernet.