Primero, estoy de acuerdo con Joby, probablemente deberías comenzar en un simulador. La razón es simple, hay un gran costo para programar cada dispositivo en una red con un nuevo software y luego recopilar datos sobre la causa de una falla puede ser muy difícil cuando simplemente deja de funcionar.
TinyOS
En esa nota, posiblemente ya lo sepas, o has aceptado los protocolos de enrutamiento y quieres probar cómo funcionan en una situación del mundo real. Esto es muy factible. Comencemos haciendo clic en toda la información en su wiki sobre su pila . Esto explica qué decisiones tomaron al implementar la pila y cómo se diseñó para permitirle cambiar fácilmente su protocolo con su propia pila de comunicaciones.
Parece que han hecho un gran trabajo implementando correctamente una pila y usted debería ser relativamente capaz de reemplazar el protocolo con lo que necesita. Ahora el desafío aquí es en lo que me he encontrado al implementar un protocolo inalámbrico. Si el algoritmo es complejo, puede ser muy difícil encontrar la raíz de un problema. En mi trabajo implementamos un protocolo propietario de 900MHz, permítame advertir de los dos problemas que encontramos.
Problemas posibles
Capacidad de procesamiento, trate de mantenerse al día con la cantidad de tiempo que está quemando. Descubrimos que cuando comenzamos a usar ecuaciones de carga complicadas, y uso el término complicado con referencia a la rapidez con la que se ejecuta un MSP430, el retraso en el sistema y su respuesta fue prohibitivo a usar un gran algoritmo.
Cuando cometimos errores en nuestra implementación, encontramos que un error menor podía permanecer invisible durante horas, días o semanas. Esto debe resolverse utilizando un algoritmo probado y comprobado. El problema que tuvimos fue que nuestro algoritmo funcionó bien, pero en cierto caso la carga en el microcontrolador fue tan grande que causó grandes problemas, lo que se agravó con la respuesta de nuestros sistemas.
Tómese el tiempo para jugar con su código en el simulador que tiene tinyOS .
Avíseme si hay algo que pueda agregar o aclarar. Si lo pones en un comentario, puedo intentar editar en más información.