I dispositivi IoT sono basati su molti sistemi operativi diversi a seconda delle specifiche applicazioni di utilizzo finale.
Le distribuzioni Linux, come Yocto o Android Things, sono molto apprezzate dai dispositivi domestici intelligenti. Windows 10 IoT Core è più adatto per i dispositivi periferici IoT a livello di server (qualsiasi hardware che controlla il flusso di dati al confine tra due reti). E naturalmente per l'uso regolare sul Raspberry Pi si consiglia il sistema operativo Raspbian .
Qui nell'articolo si parlerà di TinyOS che, in sostanza, è molto utile per le reti di sensori a basso consumo.
Cos'è TinyOS?
TinyOS è un sistema operativo open source basato su BSD che utilizza il linguaggio di programmazione nesC per controllare e gestire reti di sensori wireless (WSN). I dispositivi sensore (chiamati mote) in tali reti sono caratterizzati da bassa potenza, memoria limitata e fattore di forma molto compatto.
TinyOS è stato scritto per la prima volta da Jason Hill presso l'Università di Berkeley nel 2000. È un software completamente gratuito e open source.
Considerando il suo utilizzo finale, TinyOS è un sistema operativo popolare per sensori a basso consumo che controllano luce, accelerazione, temperatura, pressione e oggetti acustici. TinyOS è spesso utilizzato nelle applicazioni dell'industria 4.0.
Perché TinyOS è utile per le reti di sensori wireless?
I sensori a bassa potenza, a causa delle limitazioni nella loro portata, richiedono un uso efficiente delle risorse. TinyOS è essenzialmente costruito su un'architettura basata su componenti, per ridurre la dimensione del codice a circa 400-500 byte, e su un design basato su eventi, eliminando la necessità di una shell di comandi.
L'architettura basata su componenti utilizza nesC, un linguaggio di programmazione C progettato per interconnettere sistemi embedded. Ogni frammento di codice è costituito da funzioni semplici inserite all'interno di componenti e funzioni complesse che integrano insieme tutti i componenti.
Il seguente esempio di frammento di codice basato sui componenti NesC mostra l'integrazione di diversi componenti come timer, orologi e messaggistica.
TinyOS utilizza anche un design basato sugli eventi, il cui obiettivo è mettere la CPU in uno stato di riposo quando non ci sono attività in sospeso. Un evento potrebbe essere qualcosa come l'attivazione di un allarme quando la temperatura di un termostato aumenta o diminuisce al di sopra di un determinato valore. Non appena l'evento termina, i granelli del sensore possono entrare in uno stato di "sonno".
La necessità di un design come TinyOS è fondamentale in applicazioni come i trasporti intelligenti e le fabbriche intelligenti. Poiché esistono migliaia di sensori, è importante avere un ingombro di memoria molto ridotto per ridurre i requisiti di alimentazione.
Dove viene utilizzato TinyOS?
Attualmente, TinyOS ha più di 35.000 download. Le sue principali applicazioni risiedono in tutti i tipi di dispositivi che utilizzano reti di sensori wireless.
- Monitoraggio ambientale : poiché ogni sistema TinyOS può essere incorporato in un piccolo sensore, è utile per monitorare l'inquinamento atmosferico, gli incendi boschivi e la prevenzione dei disastri naturali.
- Veicoli intelligenti : i veicoli intelligenti sono autonomi e possono essere intesi come una rete di sensori. Questi sensori comunicano attraverso reti wireless a basso consumo (LPWAN) rendendo TinyOS perfetto.
- Città intelligenti : TinyOS è una soluzione praticabile per i requisiti di rilevamento a basso consumo di servizi pubblici, reti elettriche, infrastrutture Internet e molte altre applicazioni per città intelligenti.
- Monitoraggio dello stato della macchina : le applicazioni machine-to-machine (M2M) hanno più interfacce di sensori. Non è possibile specificare un ambiente informatico completo per ciascun sensore. TinyOS può eseguire operazioni di sicurezza, gestione energetica e debug dei sensori.
Dove trovare informazioni su TinyOS?
Tutte le informazioni sul download su TinyOS sono accessibili dalla sua pagina GitHub ufficiale (vedi: https://github.com/tinyos/tinyos-main ). Oltre a BSD, TinyOS supporta anche Mac OS X.
La più grande fonte di informazioni completa su TinyOS è disponibile sul wiki dell'Università di Stanford (vedi: http://tinyos.stanford.edu/tinyos-wiki/index.php/Main_Page ). Questa fonte contiene informazioni sull'installazione del programma, istruzioni dettagliate e un ampio indice di codice fornito da molti altri.
TinyOS è un esempio di sistema operativo progettato per reti di sensori wireless a basso costo e basso consumo. Ma non è l'unica opzione. Altri esempi di sistemi operativi simili includono Contiki, OpenWSN, FreeRTOS e RIOT.