Capitolo 1
Introduzione
La nascita e la diffusione di Internet, nonché il contemporaneo sviluppo globale delle
telecomunicazioni e del personal computer, hanno cambiato radicalmente il nostro
modo di comunicare. Strumenti tecnologici quali antenne e satelliti, radio, computer
desktop e palmari, cellulari, ci permettono di interagire tra noi anche da un capo
all’altro del pianeta, idea impensabile fino a solo trent’anni fa.
Chiaramente questo processo non si è arrestato, anzi, sono sempre di più i dispositivi
che necessitano di connettività con il resto del mondo, e con Internet in particolare.
Pensiamo ai moderni elettrodomestici, e a quelli dei prossimi dieci, venti anni. E’ nel
mezzo di questa sbalorditiva evoluzione che trovano un grande interesse le reti di
sensori, o in inglese Wireless Sensor Network, WSN [3] .
Pensare alla possibilità di controllare un determinato ambiente (ed intervenire a
seconda delle circostanze), stando nel proprio ufficio o abitazione, aggiungendo il
fatto che i due ambienti si possono trovare a centinaia di chilometri di distanza, è la
premessa che ha reso possibile l’ideazione delle WSN.
Tuttavia altri fattori stanno tuttora contribuendo alla diffusione delle WSN. La
miniaturizzazione dei processi produttivi dei chip consente di progettare sensori
sempre più evoluti, e con maggiore capacità computazionale. Lo sviluppo di nuovi
protocolli, e di sistemi di comunicazione senza fili (o wireless), ha permesso di pensare
a reti non più vincolate da mezzi di trasmissione fisici (quali sono i cavi), ma a reti
mobili, che possono così raggiungere luoghi prima irraggiungibili.
Una WSN [1] [3] [4] in sintesi è un gruppo di sensori, in grado di operare appunto
senza mezzi di trasmissione fisici o infrastrutture tradizionali (canalette e
cavi), che possono essere distribuiti in un ambiente e posti anche a grandi distanze tra
loro, allo scopo di raccogliere dati, condividerli, e sulla base di questi dati,
effettuare dei calcoli per fornire dei risultati. Solitamente i singoli sensori
vengono definiti “nodi” della rete, e questi nodi quasi sempre sono di dimensioni
ridottissime, basso consumo e costo .
Un nodo è un dispositivo particolarmente semplice, il quale possiede un unità di
elaborazione, un modulo radio per la comunicazione , e diversi sensori (per l’umidità,
la temperatura, la luminosità, taluni anche dei moduli per l’acustica).
Nonostante il processo vari a seconda della tipologia della rete, solitamente lo scopo
di un sensore è spedire i dati raccolti verso un sensore adiacente nella rete, il quale
successivamente può inoltrarli a sua volta ad un altro ancora, oppure, se è connesso
1
2 CAPITOLO 1. INTRODUZIONE
al punto di raccolta (solitamente un server contenente un database), memorizzarli.
Tale sensore è solitamente detto gateway [2] [1].
Oltre al costo, altre due caratteristiche interessanti di una rete di sensori sono la
dinamicità e l’automazione [43]. Con la prima s’intende la capacità della rete di
adattarsi a varie situazioni, quali l’aggiunta di nuovi nodi, l’improvvisa scomparsa
di altri, il cambiamento delle condizioni ambientali, quali la variazione di umidità
e di temperatura. Pensiamo ad esempio ad un progetto sviluppato alla Harvard
University [5] , per il monitoraggio dell’attività vulcanica. Ogni sensore deve
poter operare correttamente anche in un ambiente soggetto a continui mutamenti.
Riferendoci a questo esempio, scosse di terremoto, polveri, lava e calore molto elevato
ne fanno un’ambiente estremo. Il sensore deve poter operare come se si trovasse in
un ambiente in sicurezza. Nella figura 1.1 è rappresentato uno schema illustrativo.
Figura 1.1: La rete di sensori della Harvard University per il monitoraggio dell’attività
vulcanica [5].
Con la seconda invece, sempre più perfezionata, s’intende la capacità della rete di
autoconfigurarsi e gestirsi senza alcun intervento di un operatore umano.
Oggi, per le reti informatiche tradizionali esistono numerosi standard per lo scambio
di dati nei livelli iniziali dello stack OSI [6] (fisico, data-link e network), tra i vari
elementi di una rete (pc, router, switch, ecc..). Tra i più importanti citiamo Ethernet
[7] , Wi-fi [8] , WiMAX [9] , Bluetooth [10] , GPRS [11] , UMTS [12] e HSDPA [13]
3
come standard maggiormente diffusi per i primi due livelli, mentre il più importante
standard per il livello network è l’IP. Tuttavia, come verrà chiarito nel capitolo 2,
questi standard si sono rivelati inadatti a gestire una rete di piccoli sensori. Da qui il
bisogno di sviluppare nuovi standard, computazionalmente più leggeri ed ottimizzati
per il risparmio energetico.
Gli standard oggi presenti sul mercato per le WSN sono, come vedremo: IEEE
802.15.4 [14] [4] , per il livello fisico e data-link. Qualora fosse necessario gestire una
topologia di rete complessa, sono stati sviluppati per il livello network e successivi una
suite di protocolli chiamata ZigBee, un marchio commerciale della ZigBee Alliance
[15] (che identifica i prodotti che utilizzano lo standard 802.15.4), in grado di gestire
dei router all’interno della WSN. ZigBee non è stato utilizzato nell’implementazione
della rete di sensori, molto semplice come si vedrà nel capitolo 3.
Infine, per quanto riguarda i sistemi operativi, sono stati sviluppati diversi software
(tra i più conosciuti citiamo TinyOS [16] , utilizzato in questo progetto, e Contiki
[17] ), i quali, nonostante allo stato attuale forniscano diversi servizi, con risultati
molto buoni, sono sottoposti a continui miglioramenti da parte dei gruppi di ricerca
[18] [19].
La sincronizzazione temporale dei dati ottenuti dalla WSN è uno dei problemi
affrontati da tali gruppi. Ogni sensore, quando genera un pacchetto, inserisce un
valore temporale nel campo detto di timestamp. Tuttavia non viene inserito un
riferimento ad un tempo globale comune a tutti i sensori della rete, ma ad un tempo
locale scandito dal sensore stesso.
Di conseguenza, se vogliamo visualizzare che cosa è successo nella nostra rete di
sensori in un determinato intervallo di tempo (che può essere una decina di minuti
ma anche delle ore o giorni), non riusciamo a capire ad esempio quando il sensore A
della nostra rete ha inviato un pacchetto, e quando i sensori B e C lo hanno ricevuto.
I tempi che otteniamo dai pacchetti hanno tutti un riferimento locale, al sensore
che ha generato il pacchetto. Un pacchetto, come vedremo, può contenere due tipi
di informazione possibili. Se a generarlo è stato un sensore predisposto per la sola
ricezione di pacchetti, in questo caso tale sensore genera sulla seriale del PC a cui è
connesso un pacchetto contenente l’informazione che esplicita il fatto che tale nodo
ricevitore ha “sentito” il nodo trasmettitore mittente in un certo tempo locale. Se
invece il pacchetto è stato generato da un sensore predisposto per la trasmissione di
pacchetti, allora sulla seriale del PC verrà spedito un pacchetto contenente i dati
della temperatura o altri valori fisici acquisiti. Esiste poi una relazione tra questi
due tipi di informazione. Nei capitoli seguenti verranno approfonditi ulteriori aspetti
di questo concetto.
L’obiettivo di questa tesi è quindi sviluppare un software mediante un linguaggio
di alto livello (è stato scelto il Java) che fornisca un servizio di “sincronizzazione
temporale” dei dati raccolti nel database dalla rete di sensori.
L’approccio adottato per la soluzione al problema solitamente consiste nel sincroniz-
zare tutta la rete di sensori seguendo un unico clock [20]. Questa implementazione
prevede un nodo che svolge la funzione di “master” , il quale ha il compito di stabilire
chi può trasmettere, e quando, in maniera simile a come avviene per il protocollo
4 CAPITOLO 1. INTRODUZIONE
Bluetooth. Questo perché il nodo master assegna uno slot temporale in cui un
altro sensore della rete può inviare informazioni. In questo modo i sensori vengono
effettivamente “sincronizzati”, e di conseguenza lo sono le informazioni da essi scam-
biate. Questa sincronizzazione è differente da quella proposta in questa tesi. Viene
illustrato un sistema alternativo per ottenere informazioni corrette dal punto di vista
temporale, senza tuttavia sincronizzare veramente i sensori.
La tesi è stata strutturata nel seguente modo:
Nel capitolo 2 verranno approfonditi gli aspetti più importanti e già citati prima
delle reti WSN. Verrà inoltre presentata qualche applicazione pratica realizzata
in un azienda o centro di ricerca, in Italia o nel mondo.
Nel capitolo 3 verrà descritto nel dettaglio il progetto sviluppato: il software e
l’hardware utilizzato, i vari moduli sviluppati e i loro compiti.
Nel capitolo 4 vengono presentate le varie prove effettuate con i sensori, e i risultati
riportati.
Nel capitolo 5 sono presentate le conclusioni finali sul progetto, ed eventuali
miglioramenti apportabili in futuro.
Capitolo 2
Le reti di sensori o Wireless
Sensor Network
2.1 Introduzione
Le reti WSN fanno parte della grande famiglia di reti wireless. Con il passare del
tempo si è sentita la necessità sempre maggiore di ideare un tipo di rete che sopperisse
ai numerosi vincoli cui era sottoposta la rete “wired” o cablata. Quest’ultima infatti,
nonostante goda di numerosi vantaggi, quali l’assenza di limitazioni energetiche (as-
sieme ai cavi di rete si inseriscono anche diversi cavi di alimentazione), e disponibilità
di banda superiore, presenta dei problemi ad esempio quando si ha la necessità di
installare una rete in zone inospitali o poco accessibili (o in edifici storici, dove non si
ha sempre la possibilità d’installare delle canaline in tutte le parti della costruzione).
Le reti wireless attualmente si stanno diffondendo ovunque, e in maniera sempre
più determinante a condizionare il nostro modo di comunicare con gli altri. Nelle
grandi megalopoli del mondo (come New York, dove è attivo il servizio NYCwireless
[21] ), ma anche molto più vicino alla nostra realtà. A Milano è attiva la rete WiMi
[22] , o ancora più vicino a noi, WiFe a Ferrara [23] , o Padova Wifi a Padova [24]
. Inoltre si pensi che i costi di realizzazione di una rete sono stati abbattuti nel
tempo. In commercio si trovano access point per esterni (outdoor) di varie fasce:
da modelli quali il TP-Link TL-WA5210G [25] , pensato per ambienti domestici o
piccoli uffici, supporta gli standard IEEE 802.11b/g, e costa sui 49 euro. A modelli
quali il Cisco Aironet 1310 [26] , prodotto di fascia alta, che costa sui 750 euro. Oggi
poi si progettano tecnologie che permettono ad un utente di restare sempre connesso,
sia che si trovi in casa sia che successivamente, abbia necessità di spostarsi all’interno
di una città. La disponibilità di connettività aumenterà quindi esponenzialmente nei
prossimi decenni.
2.2 Un pò di storia...
La prima capostipite di una rete WSN moderna possiamo trovarla durante la guerra
fredda: gli Stati Uniti dovevano contrastare il tentativo dell’Unione Sovietica di
conquistare il primato tecnologico mondiale e nello spazio (I Sovietici avevano
5
6 CAPITOLO 2. LE RETI DI SENSORI O WIRELESS SENSOR NETWORK
appena messo in orbita lo Sputnik, il primo satellite artificiale della storia). [28]
[29] Il Dipartimento della Difesa Americano fondò nel 1958 DARPA (acronimo di
Defense Advanced Research Project Agency) [27] , artefice di molti progetti
alla base di molte tecnologie attuali. In particolare, DARPA aveva ideato un sistema
di sorveglianza sottomarino mediante delle reti acustiche, composte da primi rozzi
sensori agenti come dei sonar. Tuttavia precisiamo che già prima, durante la Seconda
Guerra Mondiale, Inghilterra e Stati Uniti avevano pensato ad un sistema di radar
tramite sensori per la rilevazione di pattuglie aeree nemiche fino a 100 miglia di
distanza (circa 160 km). Successivamente, nel Nord America, furono ideati gli
AWACS (Airborn Warning And Control System) [30] , sistemi radar più
evoluti per migliorare la difesa durante il volo dell’aereo. Ma è negli anni 80 che
DARPA ebbe l’idea di combinare il neonato protocollo TCP/IP [31] (anni 70, suite
di protocolli ideata da Robert Kahn e Vinton Cerf), con la rete ARPA (che diventerà
la futura Internet), allo scopo di creare DSN (Distributed Sensor Network). Tale
progetto consisteva in una rete di sensori equispaziati tra loro, che fossero in grado di
scambiarsi dati e risultati, in modo tale da tenere un monitoraggio di una determinata
area geografica.
Inoltre tali sensori dovevano effettuare un primo calcolo distribuito, in modo tale
da fornire un risultato finale. I componenti di queste reti erano soprattutto sensori
acustici.
Quindi le reti WSN nacquero e progredirono inizialmente in ambito militare, dove
servivano reti mobili in grado di raccogliere dati ed ottenere risultati in tempi molto
brevi, ed a una certa distanza dal luogo di misurazione. Esempi di queste reti sono
reti radar per la rilevazione di aerei nemici, oppure reti di sensori acustici per rilevare
sottomarini in determinate acque territoriali.
In seguito però, con la diffusione e lo sviluppo esponenziali della tecnologia, si
spostarono anche in campi di competenza universitari e di aziende private, dove al
giorno d’oggi si studiano e si perfezionano nuovi standard in grado di far fronte a
diversiscenaridiproblematichereali, nonchésiutilizzanoprocessoriecircuitiintegrati
sempre più piccoli e potenti, e a bassissimo costo (Citiamo i MEMS [32] , circuiti
integrati miniaturizzati, i quali integrano al loro interno dispostivi opto-elettronici e
circuiti elettronici sfruttando spazi di un millimetro al massimo).
2.2. UN PÒ DI STORIA... 7
Figura 2.1: Un aereo AWACS della NATO.
Figura 2.2: Un dispositivo MEMS (Micro Electro-Mechanical System).