Me encantó esta pregunta cuando la leí. "Me lleva de vuelta", como dicen las barbas grises :) TinyOS "se hizo público" en 2000, aproximadamente un año después de que se acuñara la frase "Internet de las cosas", según Wikipedia. Hace mucho tiempo, en una galaxia muy, muy lejana ... OK, hasta los negocios:
Creo que la respuesta a su pregunta sobre si las motas, TinyOS, NesC, etc. son "buenas opciones hoy en día", es un "Sí" no calificado . Te explicaré por qué.
Aprendí de TinyOS en 2003; para entonces ya era un sistema bastante maduro y se estaba utilizando en algunas aplicaciones interesantes. "Motes" es un término para el hardware, como en "sensor remoto". Cada mote tenía un procesador, una batería, una radio ( no WiFi) y algún tipo de sensor. Los primeros tres componentes eran comunes en una variedad de motas, mientras que el sensor era generalmente peculiar de la aplicación; luz, calor, campos magnéticos, etc. Si le interesan los detalles, se han publicado numerosos artículos (en su mayoría académicos y prolíficos) que documentan el diseño de TinyOS ... aquí hay uno que me gusta.
Como sistema, TinyOS y el mote fueron diseñados para lograr un objetivo con recursos extremadamente escasos. Por ejemplo:
- TinyOS ocupaba unos 400 bytes de memoria; Una aplicación típica de 12-16 kB.
- TinyOS se ejecuta en minúsculos microcontroladores de 8 bits; por ejemplo, el AT-90L de Atmel, el MSP430 de TI y el ATtiny9 más moderno de Microchip .
- El código NesC se parece más a una parte del 'núcleo' que a una aplicación tradicional; La eficiencia del sistema exigía este enfoque.
- Los ciclos de trabajo bajos y una arquitectura de sistema que se adaptaba a la conservación de energía permitieron que las baterías duraran un año o más (dependiendo de la aplicación, por supuesto).
La entrega de datos del sensor a su destino final a partir de motas ampliamente dispersas que podrían caerse de una aeronave, estilo caída libre, en un entorno operativo extremadamente hostil, exigía algoritmos de enrutamiento inteligentes. La "flexibilidad" fue, por lo tanto, el impulsor clave en el diseño de la pila de comunicación de TinyOS. En consecuencia, no se necesita infraestructura de comunicación existente. Por supuesto, esto es a la vez estimulante y desafiante. Se desarrollaron varios protocolos de enrutamiento, y las licencias de código abierto alentaron la adopción y modificación de estos protocolos.
En cuanto a que TinyOS sea abandonado o estancado, no creo que ese sea el caso. El repositorio TinyOS GitHub muestra actividad reciente y sugiere que se mantenga y cuide después . Dicho esto, TinyOS nunca iba a atraer a la multitud de "electrónica y software como hobby"; una multitud que realmente no existía hasta hace poco cuando Arduino y Raspberry Pi se hicieron populares.
Y eso me lleva al punto en esta elaborada "respuesta" a su pregunta que invita a la reflexión. No creo que haya una respuesta simple y directa. Creo que la respuesta se reduce a esto: los humanos somos más como ovejas o lemmings de lo que nos gusta creer. Raspberry Pi, Arduino, etc. son productos que han atraído a muchos seguidores curiosos e ingresos para quienes trafican con gadgets, pero eso tiene poco o nada que ver con su idoneidad para una aplicación en particular. Estoy no sugiere que una re-inventar la rueda para cada nuevo problema, pero al mismo tiempo, una (o dos) tamaño (s) no caben todos. Use la herramienta adecuada para el trabajo.
Sé por tu pregunta que entiendes esto, pero tal vez no lo he pensado de esta manera. Francamente, yo tampoco hasta que tu pregunta sacudió algunas rocas sueltas. Entonces, sí, creo que aún puedes construir algunas cosas muy elegantes con TinyOS, pero es posible que tengas que hacerlo con menos recursos de soporte. ¿O tal vez habrá un "TinyOS Stack Exchange" en el futuro? Ja, ja, no contengas la respiración :)
Terminaré con esto: “La verdad es a menudo lo que hacemos de ella; escuchaste lo que querías oír, creíste lo que querías creer ".
Apéndice:
Mientras piensa en cómo construir sus dispositivos y agregarlos a los sistemas, Phil Levis ofrece algo de reflexión en este breve video.
Y en cuanto a los recursos para apoyar el desarrollo de TinyOS, aquí hay algunos que encontré mientras investigaba mi "respuesta" aquí: