He estado estudiando las redes de sensores inalámbricos desde hace algún tiempo, y ya es hora de comprar algún kit para experimentar y construir algún prototipo. 802.15.4 es la capa de radio utilizada por Zigbee. No tengo que usar necesariamente Zigbee y prefiero código libre, pero me gustaría usar 802.15.4, más extendida que otras tecnologías como DASH7. Mis opciones de hardware actuales son:
- Digi. Sus módulos XBee se ven muy interesantes, y se pueden programar en Python.
- Libelium. Las motas SquidBee proporcionan una solución de prototipos basados en Arduino, que ha sido diseñado con fines didácticos y educativos, mientras que Waspmote es su plataforma comercial. Parecen muy eficientes y bien construidas, con buena documentación y soporte.
- Openpicus. Ofrece una interesante plataforma para la creación de prototipos basados en software FreeRTOS de código abierto.
- Algunas de las plataformas basadas en el chip CC2420 TI.
La redes de sensores inalámbricos deben ser programadas de manera eficiente, debido a los recursos limitados. Normalmente, se necesita C o un dialecto específico, como por ejemplo, nesC (utilizado en TinyOS). Los sistemas operativos utilizados en las plataformas inalámbricas de sensores se pueden dividir entre implementaciones libres académicas, como TinyOS o Contiki, y propietarias, como el sistema operativo utilizado en las pilas de Zigbee, como TI Z-Stack, Freescale o Ember. Estas implementaciones propietarias no proporcionan una API C unificada, el único requisito es que el comportamiento de la interface fisica de Zigbee sea correcto. Ha habido algunos intentos de construir un stack de código abierto Zigbee, pero no conozco ninguno que haya funcionado.
Un proyecto interesante es ZigBee-linux, que a pesar de su nombre, sólo cubre 802.15.4. Zigbee en sí mismo no es compatible con GPL, pero hay esfuerzos alternativos que se implementan en la capas altas de 802.15.4 y son compatibles con GPL, como 6lowpan/ROLL. Una buena opción que he encontrado para el funcionamiento de un stack abierto de redes de sensores inalámbricos es SICSLoWPAN.