Progetto e Sviluppo di un’Applicazione per il Monitoraggio e l'Archiviazione di
Dati di una Wireless Sensor Network
Tesi di Laurea di: Izzo Andrea
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica
Relatore: Prof. Riccardo Martoglia
Correlatore: Dott. Fabio Bertarelli
Anno Accademico 2008/2009
Wireless Sensor Network (WSN)
Scopo: monitoraggio e/o controllo di un ambiente.
Una rete di sensori è un sistema distribuito formato da un insieme di nodi capaci di:
• ospitare sensori e attuatori
• eseguire elaborazioni
• comunicare tra loro
Wireless Sensor Network (WSN)
Caratteristiche:
▫ Facile dislocazione
▫ Ridondanza spaziale
▫ Accuratezza
▫ Basso costo
▫ Etereogeneità nelle misure fornite
Applicazioni:
Applicazioni medico-sanitarie,
sorveglianza militare, monitoraggio ambientale, monitoraggio di
apparecchiature industriali,
applicazioni domestiche, applicazioni commerciali …
Obiettivo della tesi
• Portabile
• Veloce
• Affidabile
• User friendly
• monitoring in tempo reale dei parametri ambientali di una WSN
• archiviazione giornaliera delle medie dei
parametri
Sviluppo della tesi
Studio:
▫ Sistema di reti di sensori (
funzionamento, caratteristiche nodi..)
▫ Protocollo SimpliciTI
▫ Database (
SQLite3, TinyDB, MySQL)
Progetto e implementazione:
▫ Struttura dell’applicazione
▫ Software Wrapper (C++)
▫ Modifiche al software standard dei nodi (
IAR Embedded Workbench)
▫ Interfaccia Web (
PHP, PDO, HTML, CSS)
Analisi delle performance dell’applicazione
Database
+
•
sistema operativo non bloccante•
assenza del Kernel•
molto piccolo(
400 byte OS)
•
NesC• basato su TinyOS 1.x
• albero routing per ogni query
• gestione metadati
• query multiple
• TinySQL
• TinyOS 1.x obsoleto
• non compatibilità fra TinyOS 1.x e 2.x
• consumo non uniforme di energia
• struttura statica dell’albero routing
Contro:
Pro:
• WSN oriented
• basso costo computazionale
• dimensioni ridotte
Database
• base di dati incorporate in un unico file
• standard SQL92
• supporta database fino a 2TB
• multipiattaforma
• molto veloce
• dimensioni ridotte (sqlite3 500kb)
• non necessita di un account per l'accesso ad un database
• API semplici da utilizzare
Caratteristiche:
SQLite è una piccola ed
efficiente libreria software
scritta in linguaggio C
Struttura
Struttura del nodo
antenna Microcontrollore
MSP430F2274
Transceiver CC2500
TUSB341 0
Protocollo SimpliciTI
• 3 dispotivi logici :
Access Point, EndDevice e Range Extender
• tipologia di rete a stella
• invio costante dei dati da ED-
>AP
• protocollo di rete open source sviluppato da Texas
Instruments
architettur
a
Struttura
Database
SENS (address, temperatura, batteria, segnale, data)
ARCHIVIO (address, temperatura, batteria, segnale,
data)
Struttura
• Scritto in linguaggio C++
• Utilizza API Sqlite
• Ricezione dati dall’AP attraverso la porta COM virtuale
• Basato su un ciclo infinito while(TRUE)
• Memorizzazione parametri nel DB
Wrapperdb
Ricevuto byte $
si
si
no no
Passati 86400 sec
*
media dei valoriStruttura
Interfaccia Web
• PHP 5 (
esteso alle librerie SQLite3 e PDO)
• HTML
• CSS
• PDO (
PHP Data Objects)
SensiNet.php
• monitoring in tempo reale
• refresh ogni secondo
• utilizza la tabella
“sens”
SensiNet_rep.php
• Visualizzazione archivio
storico
• utilizza la tabella
“archivio”
Analisi performance applicazione
• Confronto velocità di Sqlite con MySql e PostgreSql
• Analisi spazio su disco
1000 tuple = 50 kb
24 ore di acquisizione di un singolo sensore = 4 Mb
riassumendo in una singola tupla all’interno dell’archivio le medie delle acquisizioni effettuate nell’arco di una giornata
spazio complessivo lasciando collegati una media di 7 sensori per 2 anni