Le reti di sensori (sensor network) sono costituite da un insieme di componenti, detti nodi, disposti in prossimità o all'interno di un fenomeno da osservare. La rete di sensori permette di rilevare opportune grandezze fisiche (posizione, temperatura, umidità, ...), processare le informazioni raccolte e comunicarle ad altri dispositivi in grado di svolgere ulteriori elaborazioni. Le reti wireless di sensori (wireless sensor networks, WSN) permettono di effettuare le comunicazione tra nodi vicini attraverso le onde radio.
Durante il progetto WiFi4Energy sono state impiegate due tipologie di nodi:
Le misure ottenute dai sensori vengono inviate tramite le radio dei nodi verso un dispositivo centrale, detto base-station, che a sua volta svolge la raccolta dell'informazione. In un'architettura centralizzata esiste solo una base-station che gestisce tutti i messaggi ricevuti dai nodi e analizza i dati. L'approccio utilizzato nel progetto WiFi4Energy mette insieme diverse architetture centralizzate in modo tale da formare un’architettura chiamata multi-tree. Nella pratica, tale architettura connette soluzioni distribuite verso un'entità di livello maggiore, responsabile della valutazione e dell’analisi dei dati. In questo modo i percorsi di propagazione dei dati sono particolarmente efficienti e la rete può rispondere tempestivamente ai fenomeni rilevati, poiché le misure convergono rapidamente verso il sistema di elaborazione delle informazioni, tramite le base station.
Il protocollo di routing delle informazioni è progettato per funzionare in una rete di tipo gerarchico, nella quale molti nodi possono dichiararsi come base-station, con il compito di svolgere la raccolta dati e la loro successiva trasmissione al database. Il protocollo di routing è di tipo address-free, ossia i pacchetti di dati inviati dai nodi non hanno nessun particolare indirizzo di destinazione, essendo tale destinazione implicitamente selezionata del nodo che inoltra il messaggio. Il routing è basato su una versione ottimizzata del Collection Tree Protocol (CTP) al quale è stato aggiunto un protocollo di flooding per inviare informazione dai nodi base a tutti gli altri nodi. Tramite questa soluzione, l’informazione è inviata alla base-station attraverso la rete seguendo il percorso ottimale di minimo numero di trasmissioni intermedie e la qualità dei collegamenti è ottenuta da speciali pacchetti di beacon trasmessi periodicamente, le cui frequenze consentono di determinare l’efficienza del routing e la reazione della rete a modifiche nella topologia.
La soluzione utilizzata per la trasmissione dei dati si basa sul protocollo di preamble sampling, grazie al quale un nodo che si trovi a dover trasmettere un pacchetto di dati invia un preamble prima dell'invio del messaggio vero e proprio, per assicurarsi che il ricevitore percepisca il segnale nel canale e rimanga in ascolto. Il preamble è costituito da repliche dello stesso pacchetto di dati, permettendo così un minor tempo di accensione del ricevitore e del trasmettitore. Il ricevitore, inoltre, invia un pacchetto di acknowledgement (ACK) una volta ottenuto il messaggio, in modo tale che il trasmettitore possa ritornare al suo stato di sleep (minimo consumo energetico) nel più breve tempo possibile.
L'acquisizione dei dati consiste nel campionamento periodico di misure dai sensori e nell’invio di questi dati alla base-station utilizzando il Protocollo di routing descritto nel paragrafo precedente. I valori misurati dai sensori sono campionati ogni 15 minuti, mentre i tempi del protocollo di preamble sampling consistono in un intervallo di disattivazione (sleep) di 1 s ed un intervallo di attivazione (awake) di 10 ms. L’informazione viene inoltre inviata alla base-station con un ritardo casuale che può arrivare fino a 10 s, in modo tale da ridurre le possibili collisioni fra le serie di segnali radio che si sovrappongono tra nodi vicini. Il consumo di potenza dei nodi dipende dai pacchetti acquisiti nel raggio del nodo e, quindi, dal numero di nodi vicini. Considerando un consumo in trasmissione e ricezione pari a 20 mA con una misura dei sensori effettuata ogni 15 minuti, si può notare come la soluzione implementata consenta un’ottimizzazione dei consumi della rete rispetto al caso di no sleep (radio-trasmettitore dei nodi sempre acceso) e all’utilizzo di una finestra temporale giornaliera di 30 min. per l’invio/ricezione dei dati. Inoltre dal grafico si può notare come nel caso in cui un nodo sia ‘padre’ di nodi vicini (riceva da questi le informazioni e le invii alla base station) il consumo diviene superiore rispetto al caso di nodi ‘figli’ (aventi il solo compito di inviare le informazioni al nodo padre).