Ho adorato questa domanda quando l'ho letta. "Mi riporta indietro", come dicono i greybeards :) TinyOS "è diventato pubblico" nel 2000 - circa un anno dopo che è stata coniata la frase "Internet of Things", secondo Wikipedia. Molto tempo fa, in una galassia lontana, molto lontana ... OK, per affari:
Credo che la risposta alla tua domanda sul fatto che motes, TinyOS, NesC, ecc . Siano " buone opzioni al giorno d'oggi", è un "Sì" non qualificato . Spiegherò perché.
Ho saputo di TinyOS nel 2003; a quel tempo era già un sistema abbastanza maturo e utilizzato in alcune applicazioni interessanti. "Motes" è un termine per l'hardware, come in "sensore remoto". Ogni mote aveva un processore, una batteria, una radio ( non WiFi) e una sorta di sensore. I primi tre componenti erano comuni in una varietà di motivi, mentre il sensore era generalmente peculiare all'applicazione; luce, calore, campi magnetici, ecc. Se sei interessato ai dettagli, sono stati pubblicati numerosi articoli (principalmente accademici e prolissi) che documentano il design di TinyOS ... eccone uno che mi piace.
Come sistema, TinyOS e il mote sono stati progettati per raggiungere un obiettivo con risorse estremamente scarse. Per esempio:
- TinyOS occupava circa 400 byte di memoria; un'applicazione tipica 12-16 kB.
- TinyOS funziona su microscopici microcontrollori a 8 bit; ad es. Atmel AT-90L, TI MSP430 e il più moderno ATtiny9 di Microchip .
- Il codice NesC è più simile a una parte del "kernel" che a un'applicazione tradizionale; l'efficienza del sistema ha richiesto questo approccio.
- Cicli di servizio ridotti e un'architettura di sistema che si occupava del risparmio energetico ha permesso alle batterie di durare per un anno o più (l'applicazione dipende ovviamente).
La consegna dei dati dei sensori alla sua destinazione finale da movimenti ampiamente dispersi che potrebbero essere rilasciati da un aereo, stile a caduta libera, in un ambiente operativo estremamente ostile richiedevano algoritmi di routing intelligenti. La "flessibilità" è stata quindi il fattore chiave nella progettazione dello stack di comunicazione di TinyOS. Di conseguenza, non è necessaria alcuna infrastruttura di comunicazione esistente. Questo ovviamente è sia potenziante che stimolante. Sono stati sviluppati numerosi protocolli di routing e le licenze open source hanno incoraggiato l'adozione e la modifica di questi protocolli.
Per quanto riguarda l'abbandono o la stagnazione di TinyOS, non penso che sia così. Il repository TinyOS GitHub mostra attività recenti e suggerisce che venga mantenuto e curato . Detto questo, TinyOS non avrebbe mai attratto la folla "elettronica e software-come-un-hobby"; una folla che non esisteva fino a poco tempo fa, quando Arduino e Raspberry Pi divennero popolari.
E questo mi porta al punto in questa elaborata "risposta" alla tua domanda stimolante. Non credo che ci sia una risposta chiara e concreta. Penso che la risposta sia la seguente: noi umani siamo più come pecore o lemming di quanto ci piace credere. Raspberry Pi, Arduino, ecc. Sono prodotti che hanno attratto grandi seguaci dei curiosi e delle entrate per coloro che trafficano in gadget, ma che hanno poco o nulla a che fare con la loro idoneità per una particolare applicazione. Sto Non suggerendo che una ri-inventare la ruota per ogni nuovo problema, ma allo stesso tempo, uno (o due) dimensioni (s) non bene per tutti. Usa lo strumento giusto per il lavoro.
So dalla tua domanda che lo capisci, ma forse non ci ho pensato in questo modo. Francamente, nemmeno io fino a quando la tua domanda non ha scosso alcune pietre sciolte. Quindi sì, penso che puoi ancora costruire cose molto eleganti con TinyOS, ma potresti doverlo fare con meno risorse di supporto. O forse ci sarà uno "Scambio di stack TinyOS" in futuro? Ah ah - non trattenere il respiro :)
Concluderò con questo: “La verità è spesso ciò che ne facciamo; hai sentito quello che volevi sentire, hai creduto in quello che volevi credere ”.
Addendum:
Mentre pensi a come costruire i tuoi dispositivi e aggregarli in sistemi, Phil Levis offre spunti di riflessione in questo breve video.
E per quanto riguarda le risorse per supportare lo sviluppo di TinyOS, eccone alcune che ho trovato mentre cercavo la mia "risposta" qui: