INTRODUZIONE 9
delle risorse deve avvenire ottimizzando i consumi energetici. Allo stesso tempo è impor-
tante progettare delle piattaforme che permettano di scrivere programmi in linguaggi ad
alto livello e che consentano allo sviluppatore di riutilizzare il codice scritto.
Nel nostro caso tutto ciò equivale ad utilizzare il sistema operativo TinyOS ed il
linguaggio NesC come piattaforma software per le nostre applicazioni, e ad impiegare i
motes TelosB della Crossbow come piattaforma hardware.
Una volta introdotte le piattaforme hardware e software, passeremo ad illustrare
l’architettura software ed il funzionamento del sistema WSN-ReMoSys (Wireless Sensor
Networks Reprogramming and Monitoring System). Tale sistema nasce dalla necessità
di disporre di un sistema portabile che dia al progettista la possibilità di riprogrammare
over-the-air i nodi di una WSN e che allo stesso tempo consenta di conoscere a distanza
lo stato della rete. Uno strumento del genere è una valida soluzione al problema del man-
agement di una rete di sensori in tutti quegli scenari dove i nodi non sono fisicamente
raggiungibili (es. battlefield surveillance e fire detection).
• Riprogrammazione wireless: questa funzionalità permette la riprogrammazione over-
the-air di tutti i nodi di una multihop wireless network. L’applicazione estende
inoltre le funzionalità di TinyOS e Deluge offrendo la possibilità di programmare
direttamente dall’interno del sistema e senza l’ausilio del framework di TinyOS i
nodi collegati alla porta usb, così come la possibilità di invocare deluge mediante
comandi http-based.
• Monitoring dei nodi sensore: questa funzionalità si basa su un meccanismo di
start/stop collection, che consente al progettista di avviare o arrestare il monitoring
della rete. Grazie ad un’applicazione java installata sulla stazione base e mediante
una controparte scritta in NesC ed installata sui nodi sensori, il tool è in grado di
monitorare le risorse di rete dei motes.
Le due funzionalità vengono offerte attraverso due tool altamente modulari e indipendenti
tra di loro; questa caratteristica consente di separare la logica di riprogrammazione da
quella di monitoring, permettendo il riutilizzo dei componenti e l’integrazione in altri
sistemi.
Un esempio di integrazione è quello tra Fuse1 ed il tool di riprogrammazione wireless:
la rete di sensori viene vista come un filesystem e le operazioni di scrittura equivalgono
ad una riprogrammazione wireless dei nodi.
1FUSE (Filesystem in userspace) è un progetto open source, volto alla realizzazione di un modulo per
il kernel Linux che permetta agli utenti non privilegiati di creare un proprio filesystem senza la necessità
di scrivere codice a livello kernel.
INTRODUZIONE 10
Il tool capace di riprogrammare via wireless la rete può interfacciarsi sia con i sensori
TelosB che i sensori Micaz della Crossbow (queste due piattaforme sono quelle maggior-
mente impiegate nelle WSN), e l’installazione del software così come l’invio e la ricezione
dei comandi avviene mediante interfaccia usb. Questa applicazione è interamente scritta
in Java, ed utilizza Jython2 per eseguire gli script python di TinyOS e Deluge senza la
necessità di installare l’interprete python.
Per quanto riguarda invece il tool di monitoring, questo è composto da un’applicazione
NesC e da un’applicazione Java. L’applicazione NesC si occupa di misurare le metriche
di rete del nodo sensore su cui è installata e inviare tali dati alla stazione base, mentre
l’applicazione java fornisce un metodo per interagire con essa. Il componente NesC in ques-
tione è stato progettato per tutti quei nodi sensori che utilizzano il chip CC2420 della Mi-
crochip (dunque Micaz e Telosb), ed il suo utilizzo avviene integrandolo nell’applicazione
di rete come un qualsiasi altro componente TinyOS.
Le informazioni fornite dal tool di monitoring si concentrano sulle seguenti metriche
di rete:
• Pacchetti totali inviati e ricevuti.
• Pacchetti di tipo unicast inviati e ricevuti.
• Pacchetti di tipo broadcast inviati e ricevuti.
• Pacchetti di acknowledgement.
• Byte totali inviati e ricevuti.
• Pacchetti errati in ricezione.
• Pacchetti persi.
• Buffer overflow in ricezione.
• Tentativi di acquisizione del canale.
• Invii in modalità Clear Channell Assessment.
• Ritrasmissioni.
2Jython è una completa reimplementazione dell’interprete Python scritto in Java
INTRODUZIONE 11
Dopo aver approfondito l’architettura software del tool di riprogrammazione e quella del
tool di monitoring, passeremo alle prove sperimentali condotte sul sistema al termine della
sua fase progettuale. I test in questione ci permetteranno di valutare meglio le performance
dell’applicazione, e di raccogliere eventuali spunti di riflessione per gli sviluppi futuri. I
vari test, che si è deciso di condurre su sensori reali, senza l’ausilio di alcun sistema di
simulazione, ci permetteranno inoltre di approfondire meglio il funzionamento del sistema
analizzando nel dettaglio il comportamento dei singoli moduli e nel caso del sistema di
monitoring di verificare la validità delle misure effettuate.
Il contenuto della tesi è organizzato nel seguente modo:
1. Capitolo 1- Reti di sensori wireless. In questo capitolo troveremo una introduzione
alle reti di sensori wireless ed una breve panoramica sui numerosi ed importanti
scenari applicativi.
2. Capitolo 2 - Lo standard IEEE 802.15.4. In questo capitolo verranno studiate
le specifiche dello standard IEEE-802.15.4. Lo standard fornisce le specifiche sullo
strato fisico (PHY) e lo strato di accesso al mezzo (MAC) per dispositivi wireless
operanti a basso data rate, e con stringenti vincoli di consumo energetico.
3. Capitolo 3 - Piattaforma hardware: i motes TelosB. Verrà affrontata l’architettura
hardware dei nodi sensore TelosB della Crossbow ed in particolar modo il funzion-
amento del ricetrasmettitore CC2420 della Chipcon (Texas Instruments).
4. Capitolo 4 - Piattaforma software: tinyOS e NesC. Studieremo l’Hardware Ab-
straction Architecture e lo stack di rete del sistema operativo TinyOS. Affronteremo
inoltre il modello di concorrenza e le operazioni split-phase tipiche di questo sistema
operativo e della programmazione NesC.
5. Capitolo 5 - Deluge. In questo capitolo studieremo il funzionamento del protocollo
Deluge e la sua architettura a componenti. Vedremo che questo protocollo consente
di riprogrammare via wireless una intera rete di sensori.
6. capitolo 6 - WSN-ReMoSys: riprogrammazione wireless dei nodi. In questo capi-
tolo verrà descritta l’architettura software del tool di riprogrammazione wireless
offerto dal sistema ReMoSys.
7. capitolo 7 - WSN-ReMoSys: monitoraggio della rete. In questo capitolo affronter-
emo il tool di monitoring passivo che il sistema ReMoSys mette a disposizione del
progettista quale strumento di analisi e risoluzione dei problemi.
INTRODUZIONE 12
8. capitolo 8 - Test e prove sperimentali. In questo capitolo troveremo alcuni test
ed una serie di prove sperimentali. Entrambi ci permetteranno di discutere sulle
performance del sistema e sull’affidabilità dei valori misurati dal tool di monitoring.
9. Appendice: In appendice troveremo le API del sistema, le interfacce NesC dei
componenti che rappresentano l’applicazione di monitoring e la lista dei comandi
che il sistema mette a disposizione dell’utente.
Chapter1
Reti di sensori wireless.
Le reti di sensori, o Wireless Sensor Networks (WSN), sono reti costituite da piccoli di-
spositivi elettronici, dotati di tecnologia Wireless ed equipaggiati con sensori in grado di
acquisire informazioni sull’ambiente circostante. Ogni nodo detto mote, o semplicemente
nodo sensore, è infatti dotato di un microprocessore che gli consente di effettuare oper-
azioni di calcolo, di un ricetrasmettitore a radio frequenza che gli permette di interagire
con gli altri nodi della rete, e di uno o più componenti in grado di rilevare alcune grandezze
fisiche di interesse (sensori di temperatura, umidità, pressione, movimento ecc.).
1.1 Reti di sensori e reti ad-Hoc.
Sotto alcuni punti di vista, una rete di sensori può essere paragonata ad una normale
wireless ad-hoc network. Una wireless ad-hoc network è definita come un sistema au-
tonomo di nodi, che connessi tra di loro in modalità wireless, sono capaci di organizzarsi
e autoconfigurarsi per garantire la connettività. Reti di questo genere non hanno dunque
bisogno di una infrastruttura pre esistente, i nodi sono in grado di creare in maniera di-
namica e decentralizzata le connessioni necessarie ad instradare correttamente i messaggi
prodotti dalla rete. L’architettura di una rete ad-hoc è dunque orientata alla mobilità
dei suoi componenti ed alla loro indipendenza da qualsiasi apparato di rete esterno. Tali
reti vengono costruite all’occorrenza ed utilizzate in ambienti dinamici (ad esempio dopo
catastrofi naturali, durante conflitti militari o in altre situazione di emergenza). Vista la
loro natura, la topologia di rete non può che essere dinamica, ed il canale di comunicazione
utilizzato è spesso rappresentato dalle radio frequenze.
Come in una wireless ad-hoc network, anche in una rete di sensori i nodi sono in grado
di organizzarsi e autoconfigurarsi per garantire la connettività. Le loro particolari carat-
13
CHAPTER 1. RETI DI SENSORI WIRELESS. 14
Figure 1.1: Esempio di ad-hoc network
terisitche rende dunque le WSN particolarmente adatte in tutte quelle situazioni in cui,
oltre a dover operare in ambienti dinamici e senza alcuna infrastruttura di rete esistente,
i suoi nodi devono essere impiegati in gran numero, devono avere dimensioni e costi ri-
dotti, ma soprattutto devono essere in grado di raccogliere informazioni sull’ambiente
circostante.
Tra le varie proprietà che differenziano una comune rete ad-hoc da una WSN, le
seguenti sono quelle più rilevanti:
• Scalabilità: il numero dei nodi di una rete di sensori varia da qualche decina alle
centinaia di migliaia.
• Costi e dimensioni: rispetto ad una normale rete ad-hoc, le dimensioni del nodo di
una WSN, così come il costo, sono di molto inferiori.
• Risorse limitate: in una WSN i nodi sono solitamente alimentati da fonti di energia
limitate (come le batterie), le loro capacità di calcolo e di memorizzazione dei dati
sono anch’esse limitate; bisogna dunque adottare misure che prolunghino al massimo
la vita dei sensori e della rete stessa.
• Riconfigurazione: il comportamento di un nodo all’interno della rete può variare
varia a seconda dello stato in cui si trova (energia a disposizione, posizione geografica,
qualità del segnale, etc.).
• Dipendenza dall’applicazione: l’ambiente in cui una rete di sensori si trova spesso ad
operare impone delle scelte sostanziali sulla sua progettazione. Fattori come il tipo
CHAPTER 1. RETI DI SENSORI WIRELESS. 15
Figure 1.2: Applicazioni di una WSN
e la quantità dei dati prodotti, eventuali vincoli real-time (ad esempio durante il
monitoraggio di una centrale nucleare) ed il razionamento delle risorse energetiche,
influiscono profondamente sulla scelta dei protocolli di comunicazione da utilizzare
e sul tipo di nodi da impiegare.
• Deployment: le ridotte dimensioni e la tecnologia wireless semplificano il deployment
della rete. I nodi potrebbero essere, ad esempio, paracadutati da un aereo in volo.
Le caratterisitiche intrinseche dei nodi sensore rende le WSN particolarmente adatte a
tutte quelle applicazioni del tipo “anywhere and anytime data gathering” e cioè a tutti
quegli scenari in cui è necessario che nodi dalle dimensioni ridotte siano in grado di
raccogliere una grande quantitaà di informazioni sull’ambiente circostante e senza l’ausilio
dell’essere umano.
L’idea di utilizzare le reti ad-hoc nelle comunicazioni wireless, così come quella di imp-
iegare computers dalle dimensioni ridotte insieme a sensori per la misura delle grandezze
fisiche di interesse, non è nuova: presi singolarmente, questi elementi non rappresentano in-
fatti alcuna nuova frontiera, ma combinati insieme danno luogo ad una nuova piattaforma
tecnologica dai numerosi ed importanti scenari applicativi.
1.2 Applicazioni.
Sebbene le reti di sensori siano nate in ambito militare, ed il loro utilizzo sia rimasto
per alcuni anni limitato a tale campo e a quello della ricerca, oggigiorno è possibile
individuare una vasta area applicativa. Quello che rende le reti di sensori oggetto di così
CHAPTER 1. RETI DI SENSORI WIRELESS. 16
tanta attenzione è la loro versatilità. I nodi possono essere infatti equipaggiati con sensori
in grado di misurare diverse grandezze fisiche, e le loro ridotte dimensione ne facilitano
l’impiego.
La presenza di una qualche forma di retroazione o di controllo sull’ambiente permette
di disitinguere il campo delle applicazioni in due macrocategorie:
• Applicazioni di sorveglianza: la rete ha il solo compito di raccogliere i dati ed
eventualmente comunicarli alla stazione base. I nodi non hanno alcuna capacità di
interagire con l’ambiente circostante.
• Applicazioni di controllo: i nodi sensori oltre ad essere equipaggiati con dei sensori
possono utilizzare degli attuatori (elettrovalvole, servomotori, ecc.) per interagire
con l’ambiente circostante. Si parla in questo caso di Wireless Sensor and Actor
Network (WSAN) [IFIP-2008].
1.2.1 Esempi di applicazione.
I nodi sensori di una WSN sono in grado di monitorare una grande varietà di condizioni
fisiche, come temperatura, pressione, umidità, luminosità, composizioni chimiche, movi-
mento o le caratteristiche di un oggetto, ecc. Inoltre, le loro ridotte dimensioni, la capacità
di organizzarsi e la facilità con la quale effettaure il deployment li rende potenzialmente
adatti a diversi scenari applicativi, soprattutto in quei casi dove una connessione wired
risulta poco pratica (terreni particolari, campi di battaglia, monumenti ecc.).
Agricoltura di precisione.
L’agricoltura di precisione consiste nell’utilizzo dei nodi sensore per raccogliere dati relativi
al terrreno ed alla singola pianta, al fine di gestire al meglio il sistema produttivo con
un ampliamento delle conoscenze. I nodi sensore possono essere infatti impiegati per
monitorare le condizioni atmosferiche e del terreno, al fine di permettere una corretta
irrigazione, e garantire così una crescita ottimale del prodotto.
Un esempio tutto italiano di impiego delle WSN nella coltura di precisione è il progetto
WiWine. Il progetto propone l’implementazione di un sistema che consente il controllo e
la parametrizzazione delle variabili fisiche e chimiche della fase di fermentazione vinicola
[MAVI]. Il progetto impiega una serie di sensori che applicati sui serbatoi di vinificazione
consentono la rilevazione di temperatura, zuccheri o densità relativa, gradazione alcolica,
PH, ossigeno disciolto e volume (post fase di fermentazione).
CHAPTER 1. RETI DI SENSORI WIRELESS. 17
(a) Great Duck Island (150 nodi) (b) Zebranet
Figure 1.3: Monitoraggio di specie animali
Monitoraggio di specie animali.
Attualmente sono molte le reti di sensori che si occupano di monitorare il comportamento
di alcune specie di animali all’interno del loro habitat naturale.
La rete Zebranet (fig. 1.3) si occupa, ad esempio, di monitorare i movimenti e lo stato
di alcune zebre in kenya. I nodi sensore sono montati su appositi collari e sono dotati
di un sistema GPS in grado di determinare la posizione di ogni zebra. Le informazioni
raccolte vengono poi inviate (ogni due ore) ai rangers del luogo.
Il progetto Great Duck Island (fig.1.3) ha invece come obiettivo il monitoraggio interno
ed esterno delle condizioni climatiche dei nidi utilizzati dagli uccelli delle tempeste (Hy-
drobates pelagicus), senza utilizzare tecniche distruttive e/o intrusive; i nodi sensori sono
particolarmente adatti in quanto le loro ridotte dimensioni e la comunicazione wireless
non turba la morfologia dei nidi.
Industria.
Nei processi industriali il monitoraggio degli ambienti assume in certi casi una importanza
fondamentale. Spesso tali ambienti sono talmente estesi o di difficile raggiungimento che è
indispensabile automatizzare le procedure di controllo. Si pensi ad esempio alle condizioni
di esercizio di un reattore nucleare o comunque a tutti quegli ambienti produttivi che non
sono direttamente raggiungibili dal personale.
Nella logistica sarebbe poi interessante utilizzare le reti di sensori per il tracciamento
degli oggetti ed il monitoraggio del loro stato di conservazione durante tutto il tragitto,
che dal produttore porta al consumatore.
Ingegneria civile.
I sensori possono essere impiegati nel monitoraggio di tutte quelle opere di ingegneria civile
la cui struttura necessita di una continua attenzione. Il monitoraggio di ponti, strade ed
CHAPTER 1. RETI DI SENSORI WIRELESS. 18
Figure 1.4: Applicazioni civili
edifici [NKBSMS] posizionati in luoghi ad alto rischio sismico, o comunque sottoposti
a condizioni climatiche particolari (fig. 1.4) è molto più semplice ed elegante se viene
effettuato mediante l’impego delle WSN. I nodi, collegati nei punti critici dell’oggetto da
monitorare, sarebbero in grado di fornire informazioni in tempo reale sullo stato della
struttura, permettendo la previsione di eventuali collassi. Inoltre la tecnologia wireless
evita l’impiego di cavi ed elementi di rete che possano intaccare la bellezza architettonica
(si pensi agli edifici storici) o rendere più difficile il deployment.
Disatri ambientali.
Le reti di sensori potrebbero essere utilizzate per prevenire o comunque intervenire in
maniera più efficiente nel caso di catastrofi naturali. Un tipico scenario è la prevenzione
degli incendi [FCRG]; i sensori, paracadutati da un aereo sul luogo da monitorare, sareb-
bero in grado di stabilire se vi è un principio di incendio, e in tal caso, inviare un messaggio
alla protezione civile fornendo informazioni sul luogo e le dimensioni dell’incendio (i sen-
sori potrebbero essere dotati di GPS, rilevatori di fumo e temperatura). Attraverso le
informazioni fornite dai sensori, i soccorsi sono poi in grado di pianificare nel migliore dei
modi l’intervento. Sempre in questo contesto, si potrebbero utilizzare le reti di sensore per
trovare eventuali segni di vita tra le macerie dopo il crollo di un edificio. Se infatti i nodi
sono in grado di muoversi autonomamente (ad esempio installati su piccoli robot) potreb-
bero introdursi all’interno di quelle zone difficili da raggiungere per cercare la presenza di
segni vitali.
Dopo lo tsunami di Sumatra del 26 dicembre 2004, si era pensato all’utilizzo delle
WSN per la progettazione di un sistema di prevenzione.
Ambito Militare.
Essendo nate in ambito militare, troviamo qui diverse applicazioni delle reti di sensori
come supporto tattico alle strategie di attacco e difesa. I nodi sensore, magari lanciati
da un aereo, potrebbero aiutare i soldati nella bonifica di territori ad alto rischio, quali
CHAPTER 1. RETI DI SENSORI WIRELESS. 19
campi minati, oppure riconoscere eventuali tentativi di intrusione. Ancora, le reti di
sensori potrebbero essere utilizzate per identificare eventuali attacchi con armi batterio-
logiche oppure individuare gli obiettivi strategici, e guidare così gli attacchi delle truppe
[BHKRG].
Naturalmente, in applicazioni di questo tipo i protocolli di comunicazione della rete,
così come le caratteristiche fisiche del nodo son ben diverse da quelle utilizzate in ambito
civile; i protocolli devono essere robusti agli attacchi intenzionali, quali l’iniezione di
interferenze nel canale o l’inserimento di messaggi fasulli, così come la dimensione dei
nodi e la loro capacità di resistere agli stress deve essere adatta all’impiego militare.
Campo medico.
Anche in campo medico gli impieghi delle reti di sensori sono numerosi e di vario genere.
Le WSN possono essere impiegate, ad esempio, per il telemonitoraggio dei dati fisiologici
umani: informazioni come la temperatura corporea, la pressione sanguigna e le pulsazioni
cardiache possono essere rilevate dal sensore e trasmesse a distanza [NHRV]; tramite
sensori è inoltre possibile realizzare interfacce per disabili oppure è possibile monitorare
pazienti e dottori all’interno di una struttura ospedaliera.
Recentemente le reti di sensori sono state largamente impiegate anche nel monitoraggio
remoto delle epidemie: il progetto HI-STAR (Health Improvements through Space Tech-
nologies and Resources) è la massima espressione di questa nuova frontiera [EASTON].
Il progetto propone lo sviluppo di un sistema per il monitoraggio della diffusione della
malaria, al fine di fornire una “risk maps” e prevenire il verificarsi di situazioni che possano
favorire il proliferare delle zanzare portatrici dell’epidemia.
Domotica.
In casa, o nei piccoli uffici le reti di sensori possono rendere più confortevoli gli ambienti,
aumentare la sicurezza o rendere più semplice l’interazione della persona con l’ambiente
circostante; gli spazi possono essere equipaggiati con sensori di luce, temperatura, movi-
mento e con microfoni per le attivazioni vocali. I sensori possono essere poi inseriti in ogni
apparecchio elettrico (TV, impianto di condizionamento, lavatrici, lavastoviglie, ecc) e ri-
manere in collegamento con una rete esterna dando l’opportunita all’utente di comandare
a distanza il loro comportamento.
I sensori possono essere inoltre impiegati per progettare un ambiente in grado di ri-
conoscere l’utente presente al suo interno, e predisporre così tutta una serie di servizi
personalizzati e differenziati.