UNIVERSITÀ POLITECNICA DELLE MARCHE

UNIVERSITÀ POLITECNICA DELLE MARCHE
Scuola di Dottorato di Ricerca in Scienze dell’Ingegneria
Curriculum in Ingegneria Elettronica,
Informatica e delle Telecomunicazioni
TECNOLOGIE ZIGBEE WIRELESS SENSOR NETWORK
PER IL MONITORAGGIO DELL’ENERGIA PRODOTTA
DA UN CAMPO FOTOVOLTAICO DI MEDIE DIMENSIONI
Relatore:
Prof. Claudio Turchetti
IX Ciclo - 2007/2010
Dottorando:
Ing. Guido Principi
Abstract - In questo documento viene mostrata un’applicazione del protocollo ZigBee
per reti di sensori wireless (WSN) con lo scopo di monitorare l’energia elettrica
prodotta da un campo fotovoltaico di medie dimensioni e altri parametri necessari alla
manutenzione e alla diagnosi dei guasti; il controllo viene effettuato a livello di singolo
modulo fotovoltaico. L’applicazione prevede che il circuito di controllo venga inserito
nella stessa scatola di derivazione del modulo fotovoltaico e che venga configurata la
rete wireless in maniera automatica.
2
INDICE:
I.
INTRODUZIONE ............................................................................................................ 4
II.
LA TECNOLOGIA UTILIZZATA ......................................................................................... 4
III.
IL CAMPO FOTOVOLTAICO E IL TIPO DI MONITORAGGIO ........................................... 7
IV.
CARATTERISTICHE ELETTRICHE DEI MODULI FV E DEL NODO DI RETE ZIGBEE WIRELESS
9
A.
CARATTERISTICHE DEI MODULI FOTOVOLTAICI ..........................................................................9
B. SCHEMA FUNZIONALE DEL CIRCUITO ........................................................................................14
C. PARTI PRINCIPALI DELLO SCHEMA ELETTRICO .............................................................................16
D.
MISURE DELLA TENSIONE E DELLA CORRENTE .........................................................................25
V.
IL SOFTWARE SUI NODI DI RETE WIRELESS ............................................................... 28
A.
B.
C.
D.
E.
F.
G.
H.
MISURE DELLA TENSIONE E DELLA CORRENTE .........................................................................28
I COMANDI AT E I REGSTRI S ..................................................................................................30
COMANDI PER LA GESTIONE DELLA RETE ...................................................................................32
LE MODALITÀ DI TRASMISSIONE DEI DATI...............................................................................34
GESTIONE DEGLI EVENTI ........................................................................................................37
GESTIONE DELL’ALIMENTAZIONE DEL MODULO ..........................................................................39
L’ACQUISIZIONE DEI DATI ...................................................................................................40
IL SETUP INIZIALE DAL MICROCONTROLLORE PIC18F46K20 .....................................................41
VI.
IL SOFTWARE SU PC PER IL MONITORAGGIO ............................................................ 42
VII.
SVILUPPI FUTURI..................................................................................................... 46
A.
IL SOFTWARE SUL MICROCOCONTROLLORE PER ACQUISIZIONE E CONTROLLO DELLE VARIABILI FISICHE
(I, V, T, ACCELERAZIONE XYZ, INPUT DIGITALE DA REED-SENSOR).........................................................46
B. IL SOFTWARE SUL MICROCONTROLLORE PER LA CONFIGURAZIONE E PER LA GESTIONE DELLA RETE WL. 46
C. IL SOFTWARE APPLICATIVO (SU PC) PER LA CONFIGURAZIONE TOPOGRAFICA DELLA RETE ASSOCIANDO
MACADDRESS ALLA POSIZIONE DEL MODULO ALL’INTERNO DEL CAMPO FV ............................................47
D.
IL SOFTWARE APPLICATIVO PER LA VISUALIZZAZIONE DEI DATI SIA IN LOCALE CHE IN REMOTO E PER LA
SEGNALAZIONE DI ANOMALIE. ........................................................................................................48
E. INTEGRAZIONE CON SISTEMI SCADA REMOTI (SUPERVISORY CONTROL AND DATA ACQUISITION). .....50
F. CONTROLLO ATTIVO SULLA TENSIONE DI STRINGA PER DIMINUIRE LE PERDITE DI RENDIMENTO IN CASO DI
OMBREGGIAMENTO DEI MODULI ....................................................................................................51
VIII.
CONCLUSIONI ......................................................................................................... 52
IX.
RIFERIMENTI BIBLIOGRAFICI ................................................................................... 52
3
I. INTRODUZIONE
Il monitoraggio e il controllo dell’energia prodotta da un impianto fotovoltaico è di fondamentale
importanza in quanto l’energia prodotta influisce direttamente sul flusso di cassa da cui deriva la
convenienza economica o meno dell’investimento effettuato sull’impianto. Ad oggi sono
particolarmente diffusi i sistemi di controllo di energia effettuati a livello del convertitore cc/ca
che quindi prendono in considerazione una o più stringhe e cioè un numero generalmente elevato
di moduli FV; in questo modo è possibile vedere se l’impianto sta producendo energia in modo
efficiente, ma non è possibile individuare le cause di una eventuale inefficienza dovuta ai singoli
moduli. Le cause di malfunzionamento potrebbero essere svariate: sporcizia sulla superficie,
ombreggiamento, guasto elettrico, danneggiamento o addirittura furto, e naturalmente
l’inefficienza può riguardare uno o più moduli. Mentre oggi, i sistemi comunemente utilizzati
negli impianti fotovoltaici acquisiscono i dati di produzione dell’energia elettrica a valle
dell’inverter, e cioè considerano l’energia prodotta dall’intera stringa di moduli, il sistema di
acquisizione dati proposto in questo documento, prende i dati dal singolo modulo attraverso i
sensori posti all’interno di ogni scatola di derivazione. Il software per l’analisi dei dati acquisiti è
l’intelligenza aggiunta al sistema di monitoraggio ed individua le cause di malfunzionamento
distinguendo le situazioni anomale da quelle normali: ad esempio, una mancata produzione di
energia può essere dovuta sia ad un guasto elettrico sia all’assenza di radiazione solare nella fase
notturna: il confronto fra il singolo modulo e tutti gli altri individua se si tratta di una situazione
normale o anomala.
II. LA TECNOLOGIA UTILIZZATA
La tecnologia utilizzata fa riferimento alle reti di sensori wireless con protocollo ZigBee [3].
Una WSN (Wireless Sensor Network ) ha due funzioni principali: misurazione e comunicazione;
ogni sensore che effettua la misura funziona come un nodo all’interno della topologia di rete e
comunica con altri nodi della stessa rete; poiché i dispositivi comunicano in modalità wireless,
non è richiesto nessun cablaggio.
Un sensore, per entrare a far parte della rete, si unisce ad un nodo che fa già parte della rete stessa
se rientra nel suo raggio di comunicazione wireless. In un impianto fotovoltaico di medie
dimensioni, ovvero con alcune migliaia di moduli, ad ogni modulo è associato un sensore per
misurare principalmente l’energia prodotta, ed evitare il costo del cablaggio è molto importante.
Come si vede dalla Tab.A, lo Standard ZigBee definisce il campo di applicazione di una W-PAN
(Wireless-Personal Area Network) come una rete estesa in un’area abbastanza limitata e con una
bassa velocità di trasmissione dei dati.
IEEE 802.15.4 Standard Co-existence Features:
Complementary Channel Mapping
Direct Sequence Spread Spectrum (DSSS)
Frequency Division Multiple Access (FDMA)
Low Data Rate (250Kbs)
Carrier Sense Multiple Access (CSMA)
Ultra low-power digital radios based
Long battery life with low latency available
Ability to remain quiescent for long periods without communications
License-free frequency band. 2.4 GHz
4
Additional ZigBee Co-existence Features:
Network Formation Procedures – (Self-organizing and Self-healing dynamic
mesh)
Secure networking (Autentication and public key cryptography)
Mesh Networking and Path Diversity
Network-Layer Frequency Agility
End-to-End Acknowledgement and Retransmission
Tab.A – Caratteristiche dello standard IEEE 802.15.4 e caratteristiche aggiuntive ZigBee per WSN
Una rete di piccole dimensioni può essere facilmente configurata e possono essere teoricamente
gestiti fino a sessantacinquemila dispositivi. La rete è tipicamente configurata con una topologia
a stella, a maglia o ad albero. I dispositivi sono classificati in due tipi principali a seconda delle
funzioni supportate (vedi Fig.1): un tipo di dispositivo con funzionalità ridotte (RFD - Reduced
Function Device o ZED – ZigBee End Device), semplicemente trasmette e riceve dati; un
dispositivo con funzionalità completa (FFD – Full Function Device o ZR – ZigBee Router), oltre
a trasmettere e a ricevere dati, interconnette la rete con funzionalità di router. Al momento della
formazione della rete, uno dei router assume la funzione di coordinatore di rete (COO –
Coordinator o ZC – ZigBee Coordinator). La principale differenza fra i due tipi è che un FFD
assumendosi la responsabilità del routing deve stare continuamente attivo (awake) mentre un
RFD può passare molto del suo tempo disattivato ( Asleep), attivandosi solo all’occorrenza di
dover trasmettere dei dati, o da solo o facendosi attivare da un interrupt esterno.
I dispositivi finali (RFD o ZED) possono essere ulteriormente classificati come Sleepy (SED) o
Mobili (MED) per differenziare la situazione in cui sono non raggiungibili perché inattivi o
perché, essendo mobili, sono momentaneamente fuori portata radio. La sensibilità radio può
essere cambiata a seconda dell'ambiente circostante i dispositivi.
Altre caratteristiche coesistenti fra i due protocolli di rete IEEE 802.15.4 e ZigBee sono elencate
in Tab. A.
Fig.1: Tipi di dispositivi in una rete ZigBee; ZED in sleep mode.
I sensori, nodi della rete, sono alimentati da batterie al Ni-Ca ricaricabili dal modulo fotovoltaico
stesso; per aumentarne la durata delle batterie si diminuisce la dissipazione di energia mettendo il
dispositivo in stand-by (sleepy) e si riattivano (to wake-up) solo quando è il momento di
5
effettuare la misura e di trasmetterla. I router, che devono occuparsi della gestione della rete
devono rimanere sempre attivi, e quindi non possono perdere l’alimentazione; per questo il loro
consumo di energia è maggiore.
Fig.2: esempio di disposizione dei router con portata di circa 30m in un campo FV di 100m x 50m
In ogni caso, per la copertura di un campo fotovoltaico (FV) servono teoricamente pochi router:
come evidenziato nella fig.2 una superficie di 5000mq con circa 1000 moduli con portata radio di
circa 30m, viene coperta con 7 router.
Un dispositivo trasmette i dati al PC attraverso una comunicazione WireLess; il nodo vicino al
PC è connesso con una semplice porta seriale USB. Il PC funziona come stazione base che
controlla e gestisce la rete. Se un dispositivo remoto è situato al di fuori della portata radio del
nodo sul PC, il suo segnale è interconnesso con altri dispositivi e comunque raggiunge il PC. I
dati provenienti dai nodi remoti vengono raccolti dal nodo locale dedicato a questa funzione
chiamato Data Sink (Fig.3).
Fig.3: come viene gestita la rete tramite USB da PC
6
III. IL CAMPO FOTOVOLTAICO E IL TIPO DI MONITORAGGIO
Nei pannelli solari viene sfruttato l’effetto fotovoltaico per la produzione di energia elettrica:
l’effetto fotovoltaico si realizza quando un elettrone presente nella banda di valenza di un
materiale semiconduttore passa nella banda di conduzione a causa dell’assorbimento di un fotone
incidente sul materiale (Fig.4); tale energia viene fornita dalla radiazione luminosa.
Il campo o generatore fotovoltaico (Fig.5) è costituito da centinaia o migliaia di moduli
fotovoltaici raggruppati in configurazioni serie/parallelo/serie a partire dalla singola cella fino a
formare un considerevole numero di stringhe per ottenere la potenza voluta; a valle di queste
stringhe la tensione e la corrente continua generata viene convertita in tensione e corrente
alternata da uno o più convertitori statici c.c./c.a. (inverter) per essere immessa nella rete
elettrica.
Fig.4 Effetto fotovoltaico
Fig.5 Il generatore fotovoltaico
7
Di norma, il controllo della quantità di energia prodotta, e in generale il monitoraggio, viene
effettuato con i data-logger presenti sugli inverter. Questo sistema risulta insufficiente a
determinare le cause di eventuali malfunzionamenti e anomalie che si verifichino sui singoli
moduli, ma fornisce solo la quantità di energia prodotta dall’intera parte del campo fotovoltaico
(Fig. 5bis)
Fig.5bis Monitoraggio a livello di inverter
Il sistema da noi realizzato permette il monitoraggio ad un livello di dettaglio maggiore, di tutti i
parametri del singolo modulo (Fig.5ter): in tal modo il sistema è più efficace perché permette di
verificare la produzione di energia, di diagnosticare eventuali guasti o malfunzionamenti e furti,
di registrare interventi di manutenzione o eventi particolari relativi al singolo modulo; in
particolare la diagnosi a distanza a questo livello di dettaglio semplifica notevolmente la
manutenzione riducendone costi e tempi di intervento.
Per ogni modulo è possibile rilevare:
- le grandezze elettriche tensione e corrente e quindi da queste calcolare la potenza e l’energia
prodotta
- la temperatura e di conseguenza intraprendere azioni correttive per diminuirla
- l’accelerazione nelle tre direzioni x-y-z e quindi capire se si tratta dell’azione del vento o di
un furto e quindi agire di conseguenza, ad esempio per pannelli orientabili, allinearli secondo
la direzione del vento, o in caso di furto inviare un messaggio al servizio di sicurezza
- inoltre, ogni modulo risulta codificato sia dal MAC address del nodo di rete che da un nome
mnemonico in codice che gli viene attribuito in fase di configurazione della rete stessa (ad es.
“numero di stringa-numero di modulo”), permettendo così anche un controllo visivo
sull’intera disposizione geometrica del campo FV.
8
Fig.5ter Monitoraggio a livello di modulo
Le terminazioni elettriche del modulo sono contenute nella scatola di giunzione (fig.6) posta sul
retro. L’uscita dei cavi di collegamento dalla cassetta di derivazione avviene tramite due
pressacavi a tenuta stagna forniti di serie con i moduli.
La connessione elettrica ai morsetti del modulo deve essere eseguita a perfetta regola d’arte
impiegando terminazioni ad occhiello o a forcella con portata elettrica e caratteristiche dei
materiali adeguate ai morsetti installati nelle scatole.
Nel nostro caso, la normale scatola di giunzione del modulo che contiene semplicemente uno o
più diodi di protezione e di bypass, viene integrata o sostituita con il nodo di rete wireless da noi
realizzato.
Fig.6 Sostituzione della scatola di giunzione del modulo fotovoltaico con il nodo wireless zigbee
IV. CARATTERISTICHE ELETTRICHE DEI MODULI FV E DEL NODO DI RETE ZIGBEE WIRELESS
A. Caratteristiche dei moduli fotovoltaici
Una cella fotovoltaica [4] si può considerare come un generatore di corrente come nel circuito
equivalente di Fig.7. La corrente ai terminali d’uscita I e pari alla corrente generata per effetto
fotovoltaico Ig dal generatore ideale di corrente, diminuita della corrente di diodo Id e della
corrente di dispersione Il.
9
La resistenza serie Rs rappresenta la resistenza interna al flusso di corrente generata e dipende
dallo spessore
della giunzione P-N, dalle impurità presenti e dalle resistenze di contatto.
La conduttanza di dispersione Gl tiene conto della corrente verso terra nel normale
funzionamento.
In una cella ideale si avrebbe Rs=0 e Gl=0. In una cella al silicio di alta qualità si hanno invece
una Rs=0.05÷0.10 •
ed una Gl=3÷5mS.
L’efficienza di conversione della cella fotovoltaica risente molto anche di una piccola variazione
di Rs, mentre è molto meno influenzata da una variazione di Gl.
La tensione a vuoto Voc si presenta quando il carico non assorbe corrente (I=0) ed e data dalla
relazione:
Voc = Il / Gl
La corrente di diodo e fornita dalla classica espressione della corrente diretta dipendente da: ID =
corrente di saturazione del diodo, Q = carica dell’elettrone, A = fattore di identità del diodo, k
= costante di Boltzmann, T= temperatura assoluta in gradi °K.
La corrente erogata al carico e quindi data dall’espressione: I = Ig - Id - Il = Ig - Id – GlVoc
La corrente di saturazione del diodo può pertanto essere determinata sperimentalmente
applicando la tensione
a vuoto Voc in una cella non illuminata e misurando la corrente all’interno della cella.
Fig.7 Circuito equivalente di una cella fotovoltaica
Fig.8 Caratteristica Tensione-Corrente di una cella fotovoltaica
Come si vede dalla caratteristica tensione-corrente di Fig.8, in condizioni di corto circuito la
corrente generata e massima (Isc), mentre in condizioni di circuito aperto e massima la tensione
(Voc).
10
Nelle due condizioni precedenti la potenza elettrica prodotta dalla cella e nulla, mentre in tutte le
altre condizioni,
all’aumentare della tensione aumenta la potenza prodotta, raggiungendo dapprima il punto di
massima potenza
(Pm) e poi diminuendo repentinamente in prossimità della tensione a vuoto.
Pertanto i dati caratteristici di una cella solare si riassumono in:
•
•
•
•
•
•
Isc corrente di corto circuito;
Voc tensione a vuoto;
Pm potenza massima prodotta in condizioni standard (STC);
Im corrente prodotta nel punto di massima potenza;
Vm tensione nel punto di massima potenza;
FF fattore di forma: è un parametro che determina la forma della curva caratteristica V-I
ed e il rapporto tra la potenza massima ed il prodotto (Voc x Isc ) della tensione a vuoto
per la corrente di corto circuito.
In generale un modulo viene formato da tante celle collegate fra di loro con opportune
combinazioni in serie e parallelo formando una caratteristica totale tensione-corrente della stessa
forma (somma delle correnti nel parallelo, somma delle tensioni nella serie).
In generale la caratteristica è funzione di tre variabili fondamentali: intensità della radiazione
solare, temperatura e area della cella. Nel grafico di Fig.9 si nota come all’aumentare della
radiazione solare si ha l’effetto dell’innalzamento della corrente restando sostanzialmente
inalterata la tensione Voc, con conseguente incremento della potenza erogata.
Fig.9 All’aumentare della radiazione solare aumenta la corrente e quindi la potenza prodotta.
11
Fig.10 All’aumentare della temperatura diminuisce la tensione e quindi la potenza prodotta
Contrariamente al caso precedente all’aumentare della temperatura dei moduli fotovoltaici, la
corrente prodotta
resta praticamente invariata, mentre decresce la tensione e con essa si ha una riduzione delle
prestazioni dei
moduli in termini di potenza elettrica prodotta (Fig.10)
Come in ogni diodo in cui un aumento di temperatura provoca una diminuzione di tensione
inversa, anche nei moduli FV, la variazione della tensione a vuoto Voc rispetto alle condizioni
standard (T=25°C) è in genere -2.2 mV/°C/cella. Al fine di evitare quindi un’eccessiva riduzione
delle prestazioni è opportuno tenere sotto controllo la temperatura in esercizio cercando di dare ai
pannelli una buona ventilazione. La riduzione di rendimento con l’aumento della temperatura è
stimabile in 0.4-0.6 per °C.
L’architettura di un impianto fotovoltaico fa si che i singoli moduli siano collegati in serie per
formare le stringhe e a sua volta più stringhe sono collegate in parallelo; naturalmente anche le
caratteristiche elettriche si sommano secondo le tensioni (in serie) e secondo le correnti (in
parallelo) come nella Fig.11:
Fig.11 Serie (stringa) e parallelo di moduli
in generale, alla fine di un parallelo di stringhe, progettato in modo da ottenere le opportune
tensioni e correnti, viene collegato un inverter per convertire le grandezze continue in grandezze
alternate con lo scopo di immettersi nella rete elettrica; un impianto FV multi-inverter si presenta
come in Fig.12 dove L1, L2, L3, N stanno a significare un impianto trifase formato dalle tre linee
più neutro.
12
Fig.12 Generico impianto multi-inverter
Considerata l’area occupata dai moduli di un impianto fotovoltaico, può accadere che alcuni di
essi vengano ombreggiati da alberi, foglie che si depositano, camini, nuvole o da altri pannelli
fotovoltaici installati nelle vicinanze. In caso di ombreggiamento il modulo si comporta come un
diodo che blocca la corrente prodotta dagli altri moduli collegati in serie con la conseguente
compromissione di tutta la produzione della stringa. Inoltre il modulo è soggetto alla tensione
degli altri moduli e può provocarsi un surriscaldamento localizzato (hot spot) con conseguenti
danneggiamenti e perdite di rendimento. Per evitare che un modulo ombreggiato vanifichi la
produzione di un’intera stringa, si inserisce in parallelo un diodo di “by-pass” che cortocircuita il
modulo in ombra o danneggiato; così facendo se ne garantisce il funzionamento pur con
un’efficienza ridotta.
Fig.13 Diodi di “by-pass” e di “blocco”
13
Il diodo di protezione in serie alla stringa, detto di “blocco”, serve per impedire la circolazione di
correnti in senso inverso che potrebbero verificarsi per dissimmetrie (mismatching) di potenziale
fra le stringhe Fig.13.
Un esempio tipico delle caratteristiche dei moduli fotovoltaici è riportato in Tab.B
Tab. B Esempio di caratteristiche dei moduli fotovoltaici
B. Schema funzionale del circuito
Il circuito progettato nasce come proposta per i costruttori/assemblatori di moduli fotovoltaici e
sostituisce praticamente la scatola di giunzione che contiene il diodo di by-pass; nella Fig.14 è
rappresentata la modalità di connessione del nodo di rete WL al modulo FV incluso il diodo di
bypass D10 e la resistenza in serie R33 di basso valore per la misura della corrente.
In Fig.15 è mostrata la connessione di più moduli FV in serie per costituire le stringhe.
Fig. 14 Connessione del nodo di rete WL al modulo FV con la resistenza di shunt per la misura di corrente
Il circuito, oltre a fornire la misura della corrente e della tensione, e quindi l’energia prodotta in
Kwh, rende disponibili anche altri parametri grazie all’inserimento dei seguenti componenti: un
14
sensore di temperatura per monitorare la temperatura di funzionamento del modulo, un
accelerometro per monitorare il vento e gli eventuali furti dei moduli, due sensori reed switch
attivabili da un campo magnetico da utilizzare come input per configurare geometricamente la
rete, ossia per associare l’indirizzo fisico di rete (MAC-address) alla posizione geometrica del
nodo nella rete con un codice mnemonico (es. num.stringa/num.modulo).
Il circuito stampato, di cui è riportato lo schema a blocchi nella fig. 16, è stato previsto per essere
utilizzato in varie modalità a seconda dei componenti montati:
• L’opzione più importante riguarda l’uso alternativo dei moduli Rx/Tx ETRX2 di Telegesis
[1] e CYRF7946 di Cypress Semiconductor: il primo oltre al normale protocollo 802.15.4
contiene anche lo stack ZigBee per la gestione della rete; il secondo ha un costo notevolmente
inferiore.
• La seconda opzione riguarda il tipo di alimentazione del circuito:
1. Per una prima funzione di base del monitoraggio delle sole grandezze tensione e
corrente, è sufficiente prendere l’alimentazione dal modulo FV senza l’ausilio di
batterie; in tal caso il nodo sarà alimentato e si potrà connettere alla rete solo durante le
ore diurne in presenza di radiazione luminosa; una eventuale inefficienza di
funzionamento viene rilevata dall’andamento delle 2 grandezze, ma un eventuale furto
o anomalia totale del modulo sarà deducibile solo durante le ore diurne per l’assenza
della comunicazione;
2. Per una funzione accessoria che rilevi il furto anche in assenza di funzionamento del
modulo sarà necessario l’ausilio delle batterie (al litio per avere una durata di 6-10
anni) di adeguata capacità e adatte al contenitore previsto per il circuito.
3. I nodi tipo FFD (router), dovendo garantire la connessione della rete, sono i più critici,
specie per quanto riguarda l’alimentazione, ma essendo in numero molto ridotto (vedi
Fig.1), si potrebbe pensare di incrementarne l’autonomia con una linea cablata di
alimentazione di circa 7V con 2A (in bassa tensione per il rispetto delle normative).
• La terza opzione riguarda l’uso o meno del microcontrollore PiC18F46K20: infatti il modulo
Rx/Tx ETRX2 di Telegesis consente solo due ingressi analogici (corrente e tensione); nel
caso si vogliano misurare anche temperatura, accelerazioni secondo i tre assi x-y-z o altre
grandezze fisiche sarà necessario l’uso di tale microcontrollore che dovrà comunicare con il
modulo Rx/Tx attraverso la connessione seriale. In tal caso sarà possibile anche una gestione
più complessa del software, come ad esempio la configurazione geometrica dei moduli FV e
la loro gestione attiva in caso di moduli orientabili nella direzione della massima radiazione
luminosa.
Le opzioni scelte per la nostra sperimentazione sono state: presenza di batterie ricaricabili, uso
del modulo Rx/Tx ETRX2 di Telegesis.
15
Fig.15 Connessione del nodo di rete WL al modulo FV e connessione di più moduli FV in serie
Fig.16 Schema a blocchi del circuito
C. Parti principali dello schema elettrico
Si riporta in Fig.17 una parte del circuito dove si possono notare il diodo di by-pass D10 da 6A,
la bassa resistenza di shunt R33 di 0.12 Ohm 4W per la misura di corrente e il modulo Rx/Tx
ETRX2 di Telegesis con i due input analogici di tensione V e corrente I; in questo caso le due
grandezze analogiche vanno direttamente nei due ingressi A/D1 e A/D2 dell’ETRX2 e sono
scollegate le connessioni AN1 e AN2 che invece sono utilizzabili per il collegamento al
16
microcontrollore PIC18F46K20 che a sua volta invia e riceve dati al trasmettitore attraverso le
connessioni seriali ETR-RX ed ETR-TX.
La resistenza di Pull-Up Rp di 5,6KOhm è stata inserita per creare un offset di circa 600mV (a
metà della lettura del convertitore AD2 - 1200mV/2) per poter misurare correnti negative, come
si hanno nella situazione normale di modulo FV attivo; in tal modo sono state evitate le
complicazioni di un circuito ad alimentazione bipolare. Basta aumentare l’offset (ad esempio
con una Rp=1KOhm) per leggere correnti fino a 12A (1200mV)
Quindi la corrente si ottiene per differenza fra il valore in assenza di carico della corrente
(600mV) e il valore letto sull’ingresso A/D2 dell’ ETRX2.
Nella parte alta del circuito si nota l’uso del convertitore di tensione step-down cc/cc LM5009
per prendere l’alimentazione direttamente dal modulo FV; praticamente viene convertita la
tensione fornita dal modulo nel campo di lavoro variabile 9-90V fino a 7V, tensione scelta per
poter caricare direttamente le batterie al litio a lunga durata; la necessità di avere una
alimentazione sempre attiva, anche nelle ore notturne, o comunque nei casi di inattività dei
moduli fotovoltaici, è richiesta qualora il sistema debba funzionare anche da antifurto.
Fig.17 Parte di circuito comprendente convertitore di tensione step-down cv/cv LM5009, il diodo D10 di by-pass, la resistenza di
shunt R33 per la misura di corrente e il modulo Rx/Tx ETRX2 di Telegesis con i due input analogici di tensione V e corrente I.
Come si vede nello schema a blocchi di Fig.16, è stato previsto l’uso di un microcontrollore
PIC18F46K20 per permettere una maggiore programmabilità e una maggiore flessibilità
nell’uso del circuito, ad esempio per superare
la lunghezza del buffer di input di 128 byte, o nel caso di un controllo attivo sul nodo. Nella
nostra applicazione è stato usato il microcontrollore per risolvere un’anomalia di funzionamento
dell’ETRX2 durante il collaudo del circuito: infatti nel caso di valore zero della corrente, cioè
assenza di carico sul nodo, il setup per la connessione con gli altri nodi non si verificava e il
17
nodo non entrava a far parte della rete, questo perché veniva riattivato continuamente il bootloader come evidenziato in una nota nel manuale dell’ETRX2; per risolvere il problema
abbiamo dovuto forzare un valore > 0 sull’ingresso A/D2 tramite il microcontrollore.
Il modulo ETRX2 (Fig.18) di Telegesis è un ricetrasmettitore 2.4GHz a bassa potenza e a basso
consumo, basato sul single chip Ember EM250 [2] con protocollo ZigBee/IEEE802.15.4. E’
stato progettato per essere integrato in ogni dispositivo senza la necessità di progettare la parte a
RF. Utilizza la tecnologia di rete di EmberZNet; ha in particolare le seguenti caratteristiche:
Fig.18 Modulo ETRX2: confronto per dimensioni reali.
•
•
•
•
•
•
•
•
•
•
•
•
•
Piccole dimensioni: 37.75 x 20.45mm
Connessione board-to-board
Antenna ceramica integrata
128k flash memory e 5kbytes di SRAM
Interfaccia UART con DMA
Range di tensione di alimentazione (da 2.1 a 3.6V)
Funziona come End Device, Router o Coordinator
12 linee di I/O e 2 input analogici
Supporta 4 differenti modi di funzionamento per aumentare la durata delle batterie
Consumo di corrente inferiore a1uA in sleep mode con auto wakeup
Upgrade del firmware via RS232 o over the air (con password)
Hardware encryption (AES-128)
Temperature di funzionamento: -40°C to +85°C
.
18
Fig.19 Parte di circuito comprendente il microcontrollore PIC18F46K20.
Come si vede nella Fig.17, qualora si utilizzi il microcontrollore per gestire gli input, i due
valori analogici di corrente e tensione vanno collegati sugli ingressi AN1 e AN2 tramite le due
resistenze R3 ed R6, naturalmente andranno scollegate le due resistenze R1 ed R2 che
attualmente collegano l’ETRX2. Il colloquio tra microcontrollore e il ricetrasmettitore ETRX2
avviene tramite comunicazione seriale UART con le connessioni ETR-RX ed ETR-TX.
Da notare inoltre:
• N. 2 LED utilizzati per un primo controllo di funzionamento del circuito
• N. 2 sensori reed utilizzati in input con interrupt per configurare la rete, cioè qualora si
voglia associare un nome (es. A1, A2… posizione geometrica del modulo FV nel
campo) al MAC address del nodo di rete.
• Oscillatore al quarzo esterno al microcontrollore, da utilizzare nel caso in cui non sia
sufficiente quello interno qualora venisse richiesta una variazione di frequenza < del
10% ; in particolare se fosse necessario attivare la comunicazione col Transceiver
CYRF7936 in modalità SPI ad alta frequenza (si veda nel paragrafo successivo).
19
Fig.20 Parte di circuito comprendente il radio transceiver CYRF7936.
Nel circuito stampato è stato previsto l’utilizzo del radio transceiver CYPRESS-CYRF7936 2.4 GHz Direct Sequence Spread Spectrum (DSSS) con protocollo 802.15.4 (Fig.20). Questo
circuito è molto meno costoso del Telegesis-ETRX2 in quanto non dispone dello stack Zigbee
ma ovviamente può cominciare a diventare conveniente per produzioni di grandi quantità per le
quali si può pensare di realizzare in proprio il software di gestione e autoconfigurazione della
rete. E’ pilotabile da microcontrollore in modalità SPI (Serial Peripheral Interface Bus)
attraverso i 4 pin SS (Slave Select), SCK (Serial Clock), MOSI (Master Output), MISO (Master
Input). In caso venga utilizzato questo modulo, si dovrà provvedere anche al calcolo dei
parametri dell’antenna prevista nel pin P1.
20
Fig.21 Alimentazione del circuito da modulo FV e da batteria con circuito di ricarica.
Il sistema prevede un’ alimentazione tramite il modulo fotovoltaico di cui si va ad effettuare
l’acquisizione dati e nel caso in cui il modulo non fornisca alimentazione, come ad esempio
nelle ore notturne, è previsto l’uso di batterie ricaricabili al litio; nel circuito di fig.21 il circuito
composto dai due transistori Q2 e Q3comandato dal piedino RC0 del microcontrollore serve a
ricaricare la batteria quando RE0 scende sotto la soglia minima di tensione che evidenzia
batteria scarica.
Alimentazione è stabilizzata al valore di 3,3V con lo stabilizzatore di tensione Low Drop Out (a
bassa caduta tra ingresso e uscita) LP2951; a seconda dell’assorbimento di corrente reale dei
circuiti a valle è stato previsto il montaggio nel circuito stampato alternativamente o
dell’integrato S08 o del TO-252.
Le batterie al litio possono avere una durata tra 5 e 10 anni.
Nella Fig.22 vengono evidenziati due circuiti di supporto al microcontrollore già previsti nel
circuito stampato, ma non utilizzati: il partitore di tensione è stato previsto nel caso in cui si
scelga di inviare gli ingressi analogici al microcontrollore; serve per regolare la tensione di
riferimento nel caso serva una maggiore risoluzione nella misura delle grandezze analogiche.
21
Il clock calendar è stato previsto per memorizzare e segnalare eventi nella rete (es. furto); in tal
caso si inviano i dati comprensivi di data/ora; va inizializzato in fase di configurazione iniziale
della rete.
Fig.22 Parte di circuito comprendente il partitore di tensione e il Clock Calendar.
Fig.23 Accelerometro xyz.
22
Fig.24 Sensore di temperatura.
In Fig.23 è rappresentato l’accelerometro 3Assi xyz: l’uscita OG-DETECT che va in RB4 serve
a svegliare il microcontrollore con interrupt nel caso di movimento; tale movimento andrà
analizzato via software per decidere se la causa sarà il vento o una manomissione per un furto
del modulo FV. Nel caso di impianti orientabili secondo la radiazione solare per diminuire
l’effetto del vento si potrebbe decidere di orientare il pannello secondo la direzione di minima
resistenza, nel caso di furto si potrebbero inviare informazioni al server per gestire la sicurezza
dell’impianto.
In Fig.24 è rappresentato il circuito del sensore di temperatura MCP9700 ottimizzato per ADC
con 10.0 mV/°C, Accuracy ±2°C da 0°C a +70°C, 4°C/+6°C Accuracy da -40°C a +150°C.
Monitorare la temperature di funzionamento del modulo FV è importante in quanto l’efficienza
di conversione dei moduli diminuisca con l’aumentare della temperatura, quindi in certi casi
può essere necessario prendere opportuni provvedimenti per diminuirla.
Fig.25 Buzzer.
In Fig.25 il circuito del buzzer (cicalino) per dare segnalazioni acustiche da microcontrollore in
RC2; è stato previsto nel caso di input da reed-sensor per la configurazione geometrica della
rete. (vedi nel capitolo degli sviluppi futuri) 4
23
Fig.26 Connettore per interfaccia con microcontrollore.
In Fig.26 la piedinatura del circuito di interfaccia per programmare il microcontrollore da PC
tramite interfaccia USB (COM) con connettore ICD-2 per il picstart kit 2.
Nella Fig.27 in alto i Gerber del circuito, al centro i circuiti stampati, in basso foto del circuito
montato e la serigrafia. In questa si notano le parti di circuito in cui sono state previste funzioni
aggiuntive personalizzabili per esigenze future;
24
Fig.27 In alto i Gerber del circuito, al centro i circuiti stampati, in basso foto del circuito montato e serigrafia
si elencano alcuni componenti:
1- Transceiver ETRX2 Telegesis
2- Antenna
3- Microcontroller PIC18F46K20
4- Bypass Diode
5- 0.12 Ohm 4W Resistor to measure current
6- Reed Sensor
7- LED to signal the network connection and other functions
8- I/O PIC uC interface
9- Buzzer
10- LP2951 Micropower Voltage Regulators
11- 150 mA, 100V Step-Down Switching Regulator
12- Quartz 8MHz for uC
D. Misure della tensione e della corrente
Come si può osservare dalla Tab. B sulle caratteristiche elettriche di un modulo FV, i valori
nominali delle tensioni sono dell’ordine di alcune decine di Volt e le correnti sono dell’ordine
25
di alcuni Ampére , ad esempio: per un modulo con Pm=200W, Vpm = 55.8V e Ipm=3.59°; a
vuoto la tensione sale a Voc=68.7V e in corto circuito la corrente sale a Isc=3.83A.
Il WSN è stato progettato per i valori di tensione da 9 a 81V e per valori di corrente da 20mA
(corrente assorbita a vuoto dal circuito) a 7A misurati con un carico di 42 Ohm.
Nella Tab.C seguente è stata espressa la corrispondenza tra i valori analogici di tensione e
corrente e i corrispondenti valori esadecimali presenti nei registri (S12 ed S13) dell’ETRX2 in
seguito alla conversione A/D; è stata inserita anche la colonna dei corrispondenti valori
decimali.
Per il collaudo del circuito e per la composizione della Tab.C è stato utilizzato un alimentatore
stabilizzato da 0 a 30 V; i valori superiori sono stati ottenuti per interpolazione lineare.
Come si vede dallo schema la tensione viene condizionata dal partitore R14(220K)-R15(3.3K)
ottenendo dei valori analogici di tensione da 0 a 1200mV sull’ingresso A/D1: al valore di
1200mV corrispondono 81V come limite superiore; il limite inferiore è determinato dai 9V
necessari al funzionamento del convertitore Step-Down necessario ad ottenere la tensione di
alimentazione del circuito.
Il valore della corrente teoricamente misurabile attraverso la Resistenza di shunt R33
(0.12Ohm) arriva fino a 10 A (infatti VR33= 10x0.12= 1200mV).
Nella R33 il valore di corrente in funzionamento normale del modulo FV (come generatore di
corrente) è contrario al verso del diodo di bypass D10 ed ha un verso negativo rispetto al
circuito di misura; per questo motivo è stata aggiunta la resistenza di Pull-Up Rp di 4,7KOhm
per creare un offset che permettesse di leggere valori nel range 0-1200.
I valori della corrente in funzionamento normale (come generatore) del modulo ricadono quindi
nel range numerico tra 0 e 590 mentre i valori maggiori di 590 sono stati riservati al
funzionamento anomalo quando il modulo costituisce un carico per gli altri moduli in parallelo.
Nella tabella viene evidenziata la situazione a vuoto, cioè senza carico, a corrente di uscita nulla
corrisponde il valore di offset 590. Con corrente misurata nulla praticamente c’è solo la
corrente di 20 mA assorbita dal circuito
Si notino che ai valori crescenti (in negativo) della corrente da 0 a 7126mA in realtà
corrispondono valori numerici decrescenti da 590 a 0;
Praticamente l’offset si trova a metà strada dei valori misurabili (0-1200) permettendo di
misurare valori di corrente sia negativi (come generatore: 0-590) che positivi (come carico: 5901200)
V [V]
y
10
15
20
25
30
A/D1 [mV]
x
136
208
292
357
431
V hex
S12
0088
00D0
011A
0165
01AF
TAB. C Corrispondenza fra la tensione generata dal modulo e il valore presente nel registro S12 dell’ETRX2
Dalle misure effettuate, vista la sostanziale linearità del sensore di tensione, si può calcolare la
retta di regressione lineare che risulta:
y = 0.067·x + 0.75
dove x è il valore decimale in mV e y è il valore della tensione in V; ad esempio ponendo x al
valore massimo ammissibile nel registro S12 pari a 1200mV risulta che il massimo valore
misurabile è 81,85 Volts
26
I [mA]
0
-290
-392
-503
-604
-700
-7126
Ro
[Ohm]
∞
42
42
42
42
42
42
A/D2
[mV]
590
570
562
552
544
536
0
I hex
S13
024A
023A
0232
0228
0220
0218
0000
TAB. D Corrispondenza fra la corrente prodotta dal modulo e il valore esadecimale presente nel registro S13 dell’ETRX2
Analogamente per la corrente (Tab. D), dalle misure effettuate si deduce la retta di regressione
lineare:
y = -11.99 x + 7126.62
dove x è il valore decimale in mV letto sul registro S13 e y è il valore corrispondente della
corrente in mA; ad esempio ponendo x al valore massimo ammissibile nel registro pari a 0mV
risulta che il massimo valore misurabile è 7,1A.
Per il collaudo della connessione dei nodi wireless ZigBee sono stati utilizzati alimentatori non
stabilizzati variabili da 7 a 12 V con i quali è stata simulata la produzione di energia dei moduli
FV.
Nella Fig.28 vengono indicate le connessioni Harwin con il modulo ETRX2:
Fig.28 Pin-out del circuito ETRX2 di Telegesis
I piedini interessati nell’interfacciamento con la scheda sono in particolare: 3-GND, 10-Vcc, 4A/D1, 5-A/D2, 14-Reset, 17-RXD, 18-TXD; i due ingressi analogici sono utilizzati per la
misurazione della corrente e della tensione con riferimento interno di 1200 mV; per comunicare
con il microcontrollore vengono utilizzate le due connessioni seriali TX e RX attraverso le quali
si possono trasmettere anche i comandi di tipo AT per l’interprete; il comando di reset, che può
essere inviato anche dall’esterno con un impulso a livello basso, forza la ripartenza del nodo per
effettuare le operazioni di connessione alla rete.
27
V. IL SOFTWARE SUI NODI DI RETE WIRELESS
A. Misure della tensione e della corrente
Il software di acquisizione dati è stato realizzato su una rete wireless formata da 5 nodi di cui
uno connesso con l’ingresso seriale (USB) di un PC. Per la connessione seriale è stata utilizzata
una scheda di sviluppo fornita da TELEGESIS utilizzante lo stesso modulo ETRX2: per la
comunicazione via USB con la scheda di sviluppo è stato utilizzato sia l’applicativo
HyperTerminal di Microsoft che l’applicativo Terminal di Telegesis che usa i comandi nel
formato tipico AT del modem.
Come si vede in Fig.29 solo il nodo locale (1) è connesso attraverso l’interfaccia seriale del PC;
sia il nodo locale che i nodi remoti (2,3,4,5,6) sono alimentati da alimentatore per simulare
l’alimentazione tramite modulo fotovoltaico di cui si vogliono misurare tensione e corrente. Nel
nodo 3 è stata inserita sull’uscita una resistenza di carico di 42 Ohm 10Watt per simulare il
carico degli altri moduli in serie connessi nella stessa stringa e delle altre stringhe in parallelo
(vedi Fig.15 e Fig.13)
Fig.29 Banco di misure e collaudo della rete
Il firmware pre-caricato in ETRX2 per l’interfaccia a comandi in stile AT è basato sulle ultime
caratteristiche del protocollo ZigBee di Ember che implementa lo stack sia per
Router/Coordinator che End Devices. Il software EmberZNet è un pacchetto completo che
contiene tutti gli elementi necessari per sviluppare applicazioni di networking robuste e
affidabili
Gli End Devices non hanno alcuna responsabilità di routing e quindi sono abilitati a rimanere in
stato sleepy, pur restando in grado di inviare e ricevere messaggi tramite un router padre. Oltre
alla classica modalità “sleepy” un End Device supporta anche la modalità “mobile”, cioè la
possibilità di cambiare rapidamente padre ogni volta che cambia la sua posizione all'interno
della rete; un router, tipicamente, è sempre alimentato, per assolvere i compiti di routing, mentre
un end device può anche essere alimentato occasionalmente.
Il modulo ETRX2 è inoltre in grado di fungere da coordinatore di PAN attraverso il controllo da
PC esterno.
I comandi in stile AT forniscono gli strumenti necessari per il set up e per la gestione di una rete
wireless magliata, consentendo un facile accesso alle funzionalità di basso livello dello stack.
28
Inoltre il firmware permette anche l’accesso ai parametri fisici di basso livello come il canale di
comunicazione e il livello di potenza del segnale trasmesso.
I parametri che definiscono la funzionalità del modulo anche stand-alone vengono salvati nelle
memorie non volatili cosiddetti S-Registers.
Quindi, complessivamente il controllo del modulo ETRX2 viene effettuato utilizzando i
comandi AT in combinazione con il contenuto di questi registri.
In fig.30 viene evidenziate la modalità di comunicazione via seriale con il nodo locale:
l’indirizzo identificativo del nodo di rete (EUI64 - IEEE802.15.4 address) è costituito da 16
cifre esadecimali (64bit). In fig.31 si notano i cinque nodi collegati alla rete in modalità wireless
identificati dai relativi EUI64.
L’indirizzo standard EUI-64 (Extended Unique Identifier – 64bit) è una concatenazione di 24 o
36 bit assegnati dalla IEEE Registration Authority che identificano il produttore e i rimanenti bit
assegnati dal produttore per identificare univocamente il circuito.
Fig.30 Modalità di interfacciamento software con Terminal di Telegesis.
Fig.31 Nodi collegati in modalità wireless al nodo locale.
29
B. I comandi AT e i regstri S
Di seguito in Tab.E vengono elencati i principali comandi AT utilizzati per la gestione della rete
e per la trasmissione dei dati attraverso la rete stessa.
AT
ATI
ATS
ATSALL
AT+TOKDUMP
ATSREM
AT+ESCAN
AT+EN
AT+JN
AT+PANSCAN
AT+JPAN
AT+DASSL
AT+DASSR
AT+NTABLE
AT+N
AT+CTABLE
AT+SN
AT+REMSN
AT+SCAST
AT+SCASTB
AT+SSINK
AT+SINK
AT+RDATAB
Controllo della comunicazione con la porta seriale
Visualizza le informazioni di identificazione del nodo connesso
in locale al PC via USB
Comando per l’accesso ai registri S
Visualizza il contenuto di tutti i registri S dei nodi remoti
Visualizza il contenuto di tutti i registri S del nodo locale
Accede ai registri S remoti
Visualizza il livello di energia di tutti i canali
Stabilisce una PAN (Personal Area Network): numero di 4 cifre
esadecimali
Si connette alla rete più vicina
Effettua una scnsione e visualizza le PANs attive
Si connette ad una specifica PAN
Disconnette il nodo locale dalla PAN
Disconnette il nodo remoto dalla PAN
Visualizza la tabella dei nodi vicini
Visualizza i parametri di rete
Visualizza la lista dei “nodi figli” locale
Scansiona la rete per vedere i nodi collegati al nodo locale
Scansiona la rete per vedere i nodi collegati al nodo remoto
Trasmette I dati al Sink (nodo collettore)
Trasmette I dati binari al Sink
Cerca il Sink
Conferma o no se il nodo locale è un Sink
Trasmette dati binari grezzi
Tab.E Principali comandi AT utilizzati per la gestione della rete
Il controllo della rete e dei singoli nodi viene effettuato attraverso una serie di 52 registri, gran
parte non volatili, adibiti a speciali funzioni (di stato, in/out, contatori, instradamento, ecc…)
combinati con una serie di funzionalità di tipo built-in che possono essere attivate dai due
interrupt esterni IRQ1 e IRQ2 o da ciascuno degli 8 timers/counters.
Di seguito (in Tab.F) vengono elencati i principali registri utilizzati e la loro funzione:
Registri per il setup della comunicazione radio
S00
Mascheratura dei canali
S01
ID di rete predefinita
S02
Livello del segnale di trasmissione in dBm
S03
Chiave crittografata
Registri per il setup del modulo
S04
S05
Nome del modulo definito dall’utente
Chiave definita dal costruttore
30
S06
Funzioni principali
S07
Funzioni estese 1
S08
Funzioni estese 2
S09
Password
S0A
Numero di release
Registri di input/output
S0B
UART Setup
S0C
ETRX2: Pull-up
S0D
Direzione dei dati di I/O (volatile)
S0E
Valore iniziale di S0D
S0F
Buffer di Output (volatile)
S10
Valore iniziale di S0F
S11
Buffer di Input (volatile)
S12
A/D1
S13
A/D2
S14
ETRX2 (riservato)
Registri per la definizione delle funzionalità del modulo
S15
Funzionalità immediata su IRQ0
S16
Funzionalità immediata su IRQ1
S17
Timer/Counter 0
S18
Funzionalità del Timer/Counter 0
S19
Timer/Counter 1
S1A
Funzionalità del Timer/Counter 1
S1B
Timer/Counter 2
S1C
Funzionalità del Timer/Counter 2
S1D
Timer/Counter 3
S1E
Funzionalità del Timer/Counter 3
S1F
Timer/Counter 4
S20
Funzionalità del Timer/Counter 4
S21
Timer/Counter 5
S22
Funzionalità del Timer/Counter 5
S23
Timer/Counter 6
S24
Funzionalità del Timer/Counter 6 (volatile)
S25
Funzionalità iniziale del Timer/Counter 6
S26
Timer/Counter 7
S27
Funzionalità del Timer/Counter 7 (volatile)
S28
Funzionalità iniziale del Timer/Counter 7
S29
Modalità di alimentazione (volatile) 0-1-2-3
S2A
Modalità di alimentazione iniziale
S2B
Testo descrittivo A per le funzionalità
S2C
Testo descrittivo B per le funzionalità
S2D
Mac address del nodo padre
Registri specifici del dispositivo
S2E
S2F
S30
Definisce il comportamento del dispositivo: es. fronti attivi per
l’interrupt, ecc…
Registro volatile per funzioni speciali (pin. 1)
Valore iniziale del registro S2F
31
S31
S32
S33
Registro volatile per funzioni speciali (pin. 2)
Valore iniziale del registro S31
Tensione di alimentazione in mV: es.3340
Tab.F Principali registri utilizzati e la loro funzione
Le funzionalità di tipo built-in attivabili da interrupt esterni o dai contatori sono codificate con 4
cifre esadecimali e sono disponibili nella User Guide del modulo ETRX2; ad esempio una
funzionalità utilizzata è la 0101 che significa: “il nodo invia il contenuto dei registri di I/O e dei
due ingressi analogici al nodo collettore di rete (SINK) e se il nodo collettore non è conosciuto
si ricerca un collettore alternativo; dopo 3 tentativi senza successo si ritiene che il collettore non
è disponibile - viene fatto ripartire il timer”.
Una rete ZigBee si forma dall’interno verso l’esterno. Ciò significa che un dispositivo a cui
viene dato il compito di avviare una rete diventa un cosiddetto coordinatore e scansioni tutti i
canali radio disponibili, sceglie quello con meno traffico e genera un PAN ID casuale; gli altri
nodi possono aderire connettendosi alla rete creata.
Un altro scenario è che un nodo faccia una scansione alla ricerca di una rete disponibile a cui
aderire, e se non ne trova nessuna, il nodo può scegliere di diventare un coordinatore e avviare
una propria rete come descritto sopra; dei nodi remoti sono quindi in grado di connettersi ad una
rete già esistente.
Come nodi più remoti unire, la rete si sviluppa dall'interno verso l'esterno. Se la rete si sviluppa
su una vasta area, un nuovo nodo può essere fuori della portata del coordinatore e si unirà alla
PAN attraverso un altro nodo, che funzionerà come un router. Man mano che i nodi si
connettono, la rete si sviluppa dall'interno verso l'esterno.
Se la rete si sviluppa su un’area più vasta, un nuovo nodo può essere fuori della portata del
coordinatore e si unirà alla PAN attraverso un altro nodo, che funzionerà da router. I messaggi
possono quindi passare attraverso la rete in più salti (hop). I comandi AT del software Telegesis
supportano trasmissioni punto-punto fino a sei “hop” mentre la trasmissione broadcast fino a
dieci “hop”.
C. Comandi per la gestione della rete
Di seguito (Tab. G) vengono illustrati alcuni esempi di comunicazione con i nodi sia per la
configurazione della rete che per la lettura dei dati dai vari sensori di ciascun nodo:
Comando
at
Risposta
OK
ati
Telegesis ETRX2
R207
000D6F00000B519A
OK
+N=NoPAN
OK
at+n
at+en
JPAN:18,0EEE
OK
Commento
Il modulo accetta i comandi con il prefisso
AT dopo aver fatto l’inizializzazione
(boot); la fase di inizializzazione impiega 12 secondi e quindi risponde con il prompt
OK
Il modulo risponde con le informazioni del
costruttore, tra cui la versione del firmware
e il MAC address
Per vedere se il modulo fa già parte di una
PAN (Personal Area Network). NoPAN
vuol dire che non è stata attivata nessuna
rete.
Inizializza una nuova rete (PAN); risponde
JPAN per dire che è stata inizializzata una
nuova rete, 18 è il canale attivato per la
32
at+n
+N=COO:18,0EEE,4
OK
at+dassl
OK
LeftPAN
JPAN:15,18F0
OK
at+jn
comunicazione 0EEE è il numero di rete
generato in modalità random.
Dopo che la rete è stata attivata il nodo
locale diventa coordinatore di rete (COO);
4 è il livello del segnale in dBm. Per
comunicare con tutti gli altri nodi questi
devono far parte della stessa rete.
Il nodo locale si sconnette dalla PAN
Se c’è una rete attiva, il nodo cerca di
collegarsi cercando il numero del canale
(15) e il numero di rete (18F0)
Dopo che il nodo si è connesso con la
nuova rete assume la funzione di FFD (Full
Function Device)
Scan Network: creca tutti i nodi facenti
parte della stessa rete. In questo caso trova
tutti i dispositivi connessi e visualizza i
relativi MAC address. In questo caso tutti i
nodi di rete sono abilitati come FFD
at+n
+N=FFD:15,18F0,4
at+sn
OK
FFD:000D6F0000354047
FFD:000D6F0000353ED
9
FFD:000D6F0000353EC
5
FFD:000D6F0000353F0B
FFD:000D6F0000353F91
OK
Disconnette un nodo remoto
at+dassr:000D6F
0000353EC5
at+ping:000D6F0
000353EC5
OK
Indica se un nodo è presente nella rete
Tab.G Esempi per la configurazione della rete
Una rete ZigBee può consistere di tre differenti tipi di dispositivi: ZigBee Coordinator (ZC),
ZigBee Router (ZR), e ZigBee End Device (ZED);
Gli ZR consumano più potenza rispetto gli ZEDs, quindi nella nostra applicazione, come è stato
evidenziato in Fig.2, a meno di problemi di comunicazione e di interferenze in generale, ne
saranno utilizzati il meno possibile.
Un Coordinatore è a tutti gli effetti un Router che si incarica di far partire la rete, e ogni rete ha
un solo coordinatore; nello stack di Ember che noi utilizziamo, una maglia di rete continua a
funzionare anche quando il coordinatore abbandona la rete stessa.
Un ZigBee End Device (nodo “figlio”) non ha responsabilità di routing e si connette alla rete
attraverso uno ZigBee Router (nodo “padre”). Il “padre” mantiene nel buffer i messaggi in
arrivo per il “figlio” quando questi è nella condizione “sleepy” e questi deve interrogare
periodicamente il “padre” per accertarsi se ci sono nuovi messaggi in attesa al fine di prevenirne
la perdita per buffer-overflow. Il “padre” funge anche da un punto di inoltro per i messaggi in
uscita verso i suoi “figli”. Per esempio quando un “figlio” vuole inviare un messaggio in
broadcast lo invia al “padre” poi sarà questi a sua volta ad inviarlo a tutti i suoi “figli”.
Gli ED possono ulteriormente essere classificati come Sleepy End Devices (SED) e come
Mobile End Device (MED)
Un SED rimane nella lista del suo router in maniera permanente (o fino a quando il router non è
resettato o lascia la rete per conto suo); ciò implica che un SED non può spostarsi fisicamente
lontano dal suo router per aderire a un altro router.
33
Un MED (sleepy) interroga continuamente il suo router e andrà in time-out e verrà cancellato
dalla tabella del suo router se non si sente per più di tre secondi. Quando un MED non riesce più
a mantenere il contatto col suo router si assume che si sia spostato fuori dal suo campo di azione
e dovrà quindi cercarsi un altro router. Un dispositivo non deve essere definito "mobile" solo se
cambia la sua collocazione fisica, ma lo è se esce dello spazio radio coperto dal suo router.
Un modulo diventa Coordinatore mediante il comando AT + EN.
Un dispositivo si configura come Router o come End Device a seconda delle impostazioni del
registro S06 all'istante in cui si unisce alla rete; per cambiargli impostazione si devono seguire i
seguenti passi:
1. Lasciare la rete;
1. Cambiare il contenuto del registro S06:
a. bit 9 = 0 => ZR
b. bit 9 = 1 => ZED
c. se il bit 9 = 1, bit A = 0 => SED, bit A = 1 => MED
2. Ri-connettersi alla rete
Un End Device mantiene il suo sistema radio sempre spento tranne che nei momenti della
comunicazione e quindi consuma meno energia di un router che è sempre “sveglio”.
Ai livelli di potenza 0-2 (Tab.H: Power Mode), per impostazione predefinita, un End Device
interroga il suo router per i nuovi dati una volta al secondo, ma questo tempo può essere
modificato (User Defined) o disattivato completamente se necessario. L’interrogazione richiede
meno di 10 ms, per cui la durata della batteria degli End Devices può essere massimizzata.
Power
Mode
Reg. S2A
0 - 00
1 - 01
2 - 10
3 - 11
Router, COO
MED,SED
MCU
Radio
Timers
I
MCU
Radio
Timers
I
Awake
Idle
Awake
Asleep
Awake
Awake
Awake
Asleep
User def.
User def.
User def.
off
36mA
32mA
0.7mA1
0.7µA
Awake
Idle
Asleep
Asleep
Asleep
Asleep
Asleep
Asleep
User def.
User def.
User def.
Off
9mA
4.5mA
0.7mA
0.7µA
Tab.H Modalià di alimentazione (Power mode) e consumo di energia durante le operazioni
D. Le modalità di trasmissione dei dati
Lo scopo di una rete è - ovviamente - di inviare i dati tra i nodi. I dati (formattati come byte
successivi) possono essere di lunghezza predefinita o indefinita, oppure possono essere singole
parole da 16 bit per il controllo delle porte di I/O. Questi dati possono essere inviati attraverso la
rete a un singolo nodo o in broadcast a tutti i nodi. Il protocollo ZigBee è stato progettato per il
controllo e per applicazioni di automazione, di conseguenza il carico utile massimo per ogni
messaggio è di 65 byte (l'eccezione è un pacchetto di dati grezzi inviati con il comando AT +
RDATAB che può contenere 114 byte).
Broadcasts: "AT+BCAST:nn,<data>" invia la stringa <data> a tutti i nodi all'interno nn salti
(Hops). Le trasmissioni broadcast non vengono riconosciute per cui vengono inviati tre volte
per aumentare la probabilità di ricezione. In ogni caso, la ricezione non può essere garantita.
Ogni nodo ricevente invia il messaggio "BCAST:<EUI64>=<data>" sulla sua porta seriale
(<EUI64> è l’indirizzo a 64 bit del nodo trasmittente).
34
Unicasts: "AT+UCAST:<EUI64>,<data>" e "AT+UCASTB:xx,<EUI64>" funziona in modo
simile agli equivalenti comandi broadcast. In questo caso i dati vengono inviati solo al nodo
specificato da <EUI64> e un "ACK" o "NACK" viene rimandato sulla porta seriale del mittente.
S-Casts: Un “Data Sink” è un nodo che funziona da collettore di dati centralizzato. Qualsiasi
nodo può essere eletto a Sink, settando a 1 il bit 8 del suo registro S06, ma deve essere unico
nella rete.
Per inviare i dati al Sink, ciascun nodo della rete deve conoscere l’indirizzo del Sink; il nodo
remoto può ricercare il Sink con il comando "AT+SSINK (Scan Sink), o in alternativa, il Sink
può rendere noto il suo servizio inviando il messaggio in broadcast ad intervalli di tempo
regolari settando i registri S19 e S1A: (S19 è Timer/Counter che indica ogni quanto tempo viene
inviato il messaggio, S1A contiene funzionalità predefinita per il contatore S19).
Se il Sink è conosciuto, il comando "AT+SCAST:<data>" invia un messaggio al Sink che
restituisce "ACK" o "NACK" come con una trasmissione unicast. Le trasmissioni S-casts hanno
il vantaggio che l'identità del sink non ha bisogno di essere conosciuta dall'utente.
"AT+BCASTB", "AT+SCASTB" permettono l'invio di un numero predefinito di caratteri
inclusi <CR>, <BS> e altri. Siccome nella rete ci può essere solo un Sink, se un Sink esistente
riceve un messaggio che un altro nodo si è autodichiarato Sink, il primo si annulla
automaticamente resettando il bit 8 del registro S06.
In Tab.I, vengono spiegati i contenuti dei principali registri e le relative modalità di
funzionamento: l’accesso ai registri può essere fatto sia in locale (attraverso la porta seriale) che
in remoto (attraverso la rete wireless), sia in lettura che in scrittura; i comandi ATS e ATSREM
leggono e scrivono il contenuto dei registri rispettivamente locali e remoti:
es:
ats00? Visualizza il contenuto del registro S00
ats00=FFFF Assegna il valore FFFF al registro S00
si può accedere anche al singolo bit indicando il numero del bit dopo il numero del registro:
es:
ats00A=1 setta il valore 1 nel bit 10 (A esadecimale).
Comando
Risposta
Commento
ats00?
atsrem00:000D6F0000353F0B?
S00:FFF0
OK
ats00=FFFF
OK
ats00?
S00:FFFF
OK
Visualizza il contenuto del registro
S00: i 16 bit del registro indicano se i
16 canali di comunicazione (dall’11° al
26°) sono abilitati. In questo caso i
canali 11-12-13-14 sono disabilitati
In questo caso i canali di
comunicazione 11-12-13-14 sono stati
abilitati;
ats02?
S02:4
OK
S03:<hidden>
OK
ats03?
Il nuovo contenuto viene visualizzato.
Visualizza il livello di potenza del
segnale trasmesso in dBm
Contiene una chiave crittografata
necessaria per creare una rete chiusa in
cui nessun nodo si può connettere. E’
importante mettere lo stesso valore su
tutti i dispositivi per auto configurare
35
ats04?
S04:Board
OK
atsrem04:000D6F0000353ED9=n
odo-10-18
OK
atsrem04:000D6F0000353ED9?
S04:nodo-1018
OK
S06:010C
OK
ats06?
la rete.
Il registro S04 contiene il nome utile
per identificare il nodo (max.20
caratteri)
Al EUI64 address
000D6F0000353ED9 viene assegnato
il nome mnemonico “nodo-10-18”.
Il nome potrebbe indicare -> modulo
fotovoltaico n.18 della stringa n.10
Registro in cui sono specificate le
funzioni principali del dispositivo: il
suo contenuto determina il
comportamento del dispositivo stesso.
Contiene il seguente valore:
0000 0001 0000 1100
ATS06=010C: TG-ETRX1
OK
La scrittura di questo registro è
possibile solo associando la password,
es. “TG-ETRX1”
atsrem06:000D6F0000353F0B?
S06:000C
OK
atsrem07:000D6F0000353F0B?
S07:0000
OK
atsrem08:000D6F0000353F0B?
S08:0000
OK
atsrem0a:000D6F0000353F0B?
S0A:212
OK
Come si vede il nodo remoto contiene
il seguente valore:
0000 0000 0000 1100
Questo registro aggiunge altre
funzionalità al nodo, in particolare per
disabilitare molti prompt al fine di
interagire più facilmente col
microcontrollore
Anche questo registro aggiunge altre
funzionalità al nodo come il registro
s07
Visualizza la versione del firmware del
nodo es. 2.12
Tab.I Principali registri e le relative modalità di funzionamento
Il contenuto del registro s06 riveste particolare importanza in quanto determina il
comportamento stesso del modulo all’interno della rete wireless: come si vede dalle due
istruzioni di visualizzazione precedenti il comportamento del nodo locale differisce dal nodo
remoto nel contenuto del Bit 8: se questi viene settato a 1 il nodo locale funziona da collettore
di dati (Sink) quando gli altri nodi trasmettono in modalità S-Casts.
Altri bit importanti del registro S06 sono:
Bit 2 : abilita la connessione (join) alla rete in modalità sicura (tramite chiave crittografata)
Bit 3 : abilita la connessione alla rete anche in modalità non sicura
Bit 4 : se=1, per connettersi alla rete (join) è necessaria la password di rete (specificata nel
registro S03)
Bit 5 : nella trasmissione di dati al Sink viene allegato anche il valore della tensione di
alimentazione Vcc
36
Bit 9 : se=1 il dispositivo viene considerato End Device
Bit A : (se il bit 9=1) se=1, il nodo è considerato come Moving End Device, se=0 nodo è
considerato come Sleepy End Device
ats0b?
S0B:0500
OK
ats0d?
S0D:00F8
atsrem0d:000D6F0000353F0B? OK
ats0f?
ats11?
S0F:00F0
OK
S11:0FF7
OK
atsrem11:000D6F0000353F0B? S11:0FF7
OK
atsrem12:000D6F0000353F0B? S12:00AB
OK
atsrem13:000D6F0000353F0B? S13:0238
OK
Per la gestione della UART
Il valore di default 0500 corrisponde a:
19200bps, no parity, 1 stop bit, 8 data
bits.
Valori che indicano la direzione dei dati
nelle porte I/O; nell’esempio 0000 0000
1111 1000 le porte da 3 a 7 sono di
output.
Contenuto del buffer di output
Contenuto del buffer di input
Buffer di input remoto
Valore esadecimale dell’ingresso
analogico A/D1 -> TENSIONE
Valore esadecimale dell’ingresso
analogico A/D2 -> CORRENTE
Tab.L Registri per la lettura dei dati
Praticamente ogni modulo dispone di 5 registri volatili che rappresentano lo stato corrente dei
suoi I/O:
S0D
S0F
S11
S12
S13
Definisce la Data Direction di ogni pin: 1 = Output, 0 = Input
Output Buffer
Input Buffer – es. Reed Switch
A/D1 - hexadecimal value of Voltage
A/D2 - hexadecimal value of Current
E’ importante notare che i dati rilevati nel buffer di input e i valori analogici della tensione e
della corrente vengono letti nei registri S11, S12 e S13 di ciascun nodo e quindi possono essere
inviati in modalità S-Casts al Sink.
E. Gestione degli eventi
I registri nell’intervallo S15 - S28 definiscono le azioni per dieci eventi, sulla base di interrupts
o timers. Molti registri sono usati in coppia correlati ai contatori/timer: uno fissa una soglia del
timer, l'altro definisce l'azione che si attiva dopo la scadenza del timer. La soglia del contatore è
definita in quarti di secondo (250ms), ad esempio, 00F0|16=15x161=240|10;
240x0.250sec=60sec. Il numero contenuto nel registro azione corrisponde ad una voce nella
tavola delle funzionalità built-in.
Per quanto riguarda gli interrupts, S15 definisce le azioni da intraprendere sull’IRQ0 e S16
l'azione sull’IRQ1. S2E determina ciò che provoca IRQ0 e IRQ1: viene settato il bit 0 (o il bit 1)
per attivare IRQ0 sul fronte di discesa (o sul fronte di salita) del pin 0 dell’ I/O, viene settato il
bit 2 (o il bit 3) per attivare IRQ1 sul fronte di discesa (o sul fronte di salita) del pin 1 dell’ I/O.
Le azioni built-in definite in S15 e S16 servono per riattivare il modulo in power-mode 0 su
entrambi gli interrupt.
37
Per applicazioni semplici e in particolare per le scelte di primo obiettivo fatte nella nostra
applicazione, con i 10 eventi che possono attivare direttamente un’azione selezionabile, si può
evitare luso del microcontrollore;
Due di questi 10 eventi sono i due interrupt esterni i cui fronti attivi sono definiti nel registro
S2E con le azioni built-in da eseguire definite in S15 e S16.
I restanti 8 eventi sono a tempo, cioè collegati in coppie di registri (timer-eventi) da S17 a S28.
I primi 4 timer sono usati di default per la gestione della rete (se sei un End Devices interroga il
router ogni sec., avvisa che sei un sink ogni min., lascia la rete se sei stand alone dopo 1min e
1sec dopo 1 min, se non fai parte della rete connettiti con il comando AT+JN): questi possono
essere modificati cambiando i corrispondenti registri.
Nella tavola delle funzionalità built-in sono illustrate tutte le azioni che possono essere
innescate da uno qualsiasi dei dieci eventi. Se viene innescata un’azione mentre il modulo è in
modalità “sleepy”, il modulo si sveglia automaticamente nella condizione di alimentazione
(vedi Tab.H: Power Mode) appropriata, esegue l’azione richiesta e torna nella modalità di
alimentazione originale.
Di seguito in Tab.M, vengono elencate alcune delle più importanti funzionalità built-in
utilizzate nel software; per un elenco completo si faccia riferimento al manuale dell’ETRX2
0000 Un interrupt corrispondente non esegue nessuna azione e il timer/counter
corrispondente è disattivato.
0001 Cambia in power mode 0. Nel caso in cui questa è stata innescata da un timer, il timer
si ferma. Questa è l'impostazione predefinita per entrambi gli interrupt S15 e S16.
0002 Cambia in power mode 1. Nel caso in cui questa è stata innescata da un timer, il timer
si ferma.
0003 Cambia in power mode 2. Nel caso in cui questa è stata innescata da un timer, il timer
si ferma.
0004 Cambia in power mode 3. Nel caso in cui questa è stata innescata da un timer, il timer
si ferma.
0005 Cambia in power mode 0. Nel caso in cui questa è stata innescata da un timer, il timer
riparte.
0006 Cambia in power mode 1. Nel caso in cui questa è stata innescata da un timer, il timer
riparte.
0007 Cambia in power mode 2. Nel caso in cui questa è stata innescata da un timer, il timer
riparte.
0008 Cambia in power mode 03. Nel caso in cui questa è stata innescata da un timer, il
timer riparte.
0010 Se il dispositivo locale è End Device interroga il suo router per i dati e il timer si
ferma.
0011 Se il dispositivo locale è End Device interroga il suo router per i dati e il timer riparte.
Per default questa azione è eseguita ogni secondo utilizzando i timer/counter S17 e
S18.
0012 Se il dispositivo locale è un Sink invia un messaggio in broadcasting e e il timer si
ferma (se l’azione è causata dal timer).
0013 Se il dispositivo locale è un Sink invia un messaggio in broadcasting e e il timer
riparte (se l’azione è causata dal timer). Per default questa azione è eseguita ogni
minuto utilizzando i timer/counter S19 e S1A.
….
….
38
….
0100 Invia la lettura degli I/O e le due porte analogiche al nodo SINK della rete e se il sink
non è conosciuto l'unità fa un altro tentativo di ricerca. Dopo 3 insuccessi, si assume
che il sink non è disponibile e viene cercato un nuovo sink. In questo caso il timer si
ferma. Invia al sink il seguente prompt:
SDATA:<EUI64>,<xxxx>,<yyyy>,<zzzz> dove <EUI64> è l’ID del nodo
trasmittente, <xxxx> è la lettura dei 16 bit della porta I/O, <yyyy> è la lettura
dell’ingresso analogico is the reading of A/D0 e <zzzz> è la lettura dell’ingresso
analogico is the reading of A/D1.
0101 Come 0100, ma in questo caso il timer riparte.
….
….
Tab.M, vengono elencate alcune delle più importanti funzionalità built-in
F. Gestione dell’alimentazione del modulo
Al fine di ottenere una lunga durata della batteria, è necessaria un’attenta gestione
dell'alimentazione (vedi Tab.H): i moduli ETRX2 hanno quattro modi di funzionamento diversi
per consentire la massima flessibilità e la durata della batteria più lunga possibile. La batteria
deve essere in grado di fornire la corrente di picco necessaria in trasmissione.
Il modulo viene avviato secondo la modalità di alimentazione definita nel registro S2A
impostato di default a 0. Il registro S29 (volatile) contiene le modalità di alimentazione corrente.
In modalità 3 il microcontrollore, il sistema radio e i timer sono disabilitati: in tal modo il
modulo non risponde ai comandi sulla seriale, né ai comandi via radio, né agli eventi
temporizzati. Solo un interrupt esterno o un reset può riattivarlo.
Quindi è importante non entrare in power mode 3 a meno che non si è certi di riattivare il
modulo.
Interrupt esterni possono essere causati da una transizione sul bit 0 e sul bit 1 della porta di I/O
secondo quanto stabilito nel registro S2E (bit 0-4); con il bit 5 di S2E settato, anche un carattere
in ingresso alla porta seriale può causare un interrupt.
La Tab. N seguente indica i consumi del dispositivo nei vari stati di trasmissione, ricezione e
“asleep”:
Parametro
Corrente di
alimentazione
Valore
tipico
36
32
29
28
37
1.5
0.7
u.m.
stato
mA
mA
mA
mA
mA
µA
µA
TX 4dBm
TX –1dBm
TX –10dBm
TX –20dBm
RX
Asleep, Timers on
Asleep, Timers off
Tab.N Consumi di energia
In power mode 2 i timer continueranno a incrementarsi anche se entrambi i sistemi, radio e
microcontrollore sono disattivati. Quando viene eseguita un’azione a tempo il modulo tornerà al
suo stato originale (di power mode) dopo l'esecuzione dell'azione.
In questa modalità, supponendo che l’interrogazione venga fatta ogni secondo, quando non c’è
interrogazione del router, ma ci sono azioni temporizzate, il consumo energetico può anche
essere di soli 20µA.
39
La modalità power mode 1, cioè quando solo il microcontrollore è disattivato, può essere
consigliata solo in caso di traffico di rete basso. Inoltre, un router non dovrebbe mai funzionare
a una modalità superiore a 1 in quanto potrebbe non effettuare il routing.
G. L’acquisizione dei dati
Le modalità di lettura degli ingressi analogici sono due: supponiamo di avere un nodo remoto
(sensore) e un nodo locale che raccoglie i dati (Data Sink) provenienti dal sensore,
possibilmente passando anche attraverso diversi router connessi fra loro. Si pensi a due
grandezze analogiche collegate ai due ingressi A/D1 e A/D2 del nodo remoto.
L'approccio più semplice sarebbe quello di eseguire periodicamente un’interrogazione (polling)
del sensore dal Sink utilizzando i comandi
"ATSREM12:<EUI64>?" e
"ATSREM13:<EUI64>?". Il nodo remoto potrebbe essere un SED, MED oppure ZR.
Il vantaggio di questa situazione sarebbe che ogni sensore funziona da ZR (router) e può quindi
inoltrare i messaggi attraverso una rete magliata autoconfigurante e sicura. Inoltre un
microcontrollore host dovrebbe avviare l'operazione di polling al data sink.
In alternativa è possibile utilizzare sul sensore uno dei timer dell’ETRX2 e selezionare l’azione
più appropriata dalla lista delle funzioni built-in, come ad esempio 0101 o 0111 (invio degli I/O
digitali e dei due ADC al sink). Questo fa sì che il sensore invia le sue informazioni
periodicamente. Rispetto alla precedente soluzione, il sensore potrebbe essere un SED o MED
operante in power mode 2 (vedi Tab.H) e quindi alimentato da una batteria.
Nel nostro caso, la modalità scelta è quella in cui un nodo remoto trasmette i dati provenienti
dai suoi sensori (e cioè i 16 input digitali e i 2 ingressi analogici A/D1 e A/D2) al nodo locale
(Data Sink), passando attraverso diversi router connessi fra loro (max 6 hops).
Il nodo può essere un SED (Sleepy End Device) operante in power mode 2 con consumi molto
bassi (I=0.7mA) e quindi può essere alimentato da una batteria.
Ats15
Ats16
Ats1F=0004
(oppure con accesso al bit:
Ats1F2=1)
oppure
Ats1F=00F0
Ats20=0101
4x250ms=1 sec.
240x250ms=60sec
IRQ0 – non utilizzato su ETRX2
In alternativa viene utilizzato l’interrupt
del microcontrollore
IRQ1 – non utilizzato su ETRX2
In alternativa viene utilizzato l’interrupt
del microcontrollore
Con il timer/contatore s1F la cui
funzionalità è definita nel registro s20
viene impostato il tempo
È stato scelto nel nostro caso per l’invio
dei dati da ciascun nodo verso il sink
È’ la funzionalità corrispondente al timer
s1F.
In questo caso la funzionalità utilizzata è
la 0101 che significa: “il nodo invia il
contenuto del buffer di input (s11) e dei
due ingressi analogici (s12, s13) al nodo
collettore di rete (SINK) (se il nodo
collettore non è conosciuto si ricerca un
collettore alternativo; dopo 3 tentativi
senza successo si ritiene che il collettore
40
non sia disponibile) e viene fatto ripartire
il timer”.
Ats2e?
S2E:0005
OK
Ats33?
S33:3297
OK
Definisce il comportamento del nodo, in
particolare i bit 0-3 definiscono i fronti di
salita o di discesa attivi per IRQ1 e IRQ2,
il bit 5 abilita il makeup sulla UART.
Contiene il valore della tensione di
alimentazione in mV
Tab.M Registri interessati all’acquisizione dei dati.
Quindi operando sui registri, con riferimento alla tabella soprastante:
-
-
Sul nodo remoto è stato utilizzato il timer S1F dell’ETRX2 impostato ad un minuto
(AtS1F=00F0): 00F0x250ms=60sec
È stata scelta la built-in function “0101” nel registro S20 corrispondente al timer S1F
(AtS20=0101): “il nodo invia il contenuto del buffer di input (S11) e dei due ingressi
analogici (S12, S13) al Data Sink e viene fatto ripartire il timer”;
Il timer fa sì che il nodo invia le sue informazioni periodicamente;
Come collettore di dati è stato assegnato il nodo locale (collegato al PC via USB)
settando a 1 il relativo bit 8 del registro S06 (ATS068=1).
Ciò che si ottiene sulla porta seriale del nodo locale è una sequenza di stringhe di tipo SDATA
come segue:
SDATA:000D6F0000353F91,0FE6,00A7,00E6
SDATA:000D6F0000353EC5,0FF7,00B2,00E7
SDATA:000D6F0000353F0B,0FF7,00A3,0237
…
SDATA indica una stringa di dati di tipo SINK che contiene l’indirizzo del nodo che ha inviato
i dati, i 16 bit (in esadecimale) corrispondenti agli ingressi digitali (S11), i due valori
esadecimali di A/D2 (S13 – valori di corrente) e A/D1(S12 – valori di tensione).
H. Il setup iniziale dal microcontrollore PIC18F46K20
Per la gestione degli input, la scelta di primo obiettivo è stata quella di non utilizzare il
microcontrollore PIC18F46K20 previsto nello schema a blocchi di Fig.12, in quanto il modulo
ETRX2 già permette molte opportunità; l’uso diventa però obbligatorio se vogliamo una
maggiore programmabilità e una maggiore flessibilità nell’uso del circuito, ad esempio per
superare la lunghezza del buffer di input di 128 bytes, o nel caso di un controllo attivo sul nodo.
Nella nostra applicazione è stato usato il microcontrollore per risolvere un’anomalia di
funzionamento dell’ETRX2 durante il collaudo del circuito: infatti nel caso di valore zero della
corrente, cioè assenza di carico sul nodo, il setup per la connessione con gli altri nodi non si
verificava e il nodo non entrava a far parte della rete, questo perché veniva riattivato
continuamente il boot-loader; questa anomalia è evidenziata in una nota nel manuale
dell’ETRX2. La programmabilità del PIC è stata utilizzata per risolvere il problema forzando un
valore > 0 sull’ingresso A/D2.
Naturalmente qualora si decidesse di utilizzare il microcontrollore host dovrebbe essere
sviluppato tutto il software per la gestione del protocollo di comunicazione via UART con
l’ETRX2.
41
VI. IL SOFTWARE SU PC PER IL MONITORAGGIO
Come si è visto nei paragrafi precedenti, la configurazione della rete e la trasmissione dei dati
attraverso i nodi è affidata al firmware del modulo ZigBee fornendo comandi in stile AT e
settando i registri non volatili attraverso l’interfaccia seriale o direttamente dal microcontrollore.
Invece a livello applicativo è stato sviluppato il software in linguaggio Visual C++ per testare
l’acquisizione dei dati attraverso la porta seriale del PC (Fig. 17); nella finestra di sinistra si
notano le stringhe SDATA di dati grezzi contenenti MAC address del nodo di rete, i 16 bit di
input digitale, i due ingressi analogici della tensione e della corrente espressi in esadecimale.
Tali stringhe sono inviate dai singoli nodi sul SINK con frequenza di un minuto. In seguito il
sorgente per la lettura della seriale e per il parse dei dati visualizzati nella finestra di destra.
Fig. 17 Interfaccia software per la gestione della porta seriale
/*********************************************************************************************************/
Read data from COM port into recvstr and also append the Text Box
/*********************************************************************************************************/
void readSerialPort()
{
recvstr = serialPort->ReadExisting();
textBox->AppendText(recvstr);
}
/*********************************************************************************************************/
Called by the framework when data is received on the COM port
All AT Command responses end with OK<cr><nl>
All other responses like broadcast end with <cr><nl>
/*********************************************************************************************************/
private: System::Void serialPort_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e)
{
42
readSerialPort();
//textBox1->AppendText("-->" + recvstr + "<--");
while(!recvstr->EndsWith(cr))
{
atcmdresponse = String::Concat(atcmdresponse, recvstr);
readSerialPort();
}
atcmdresponse = String::Concat(atcmdresponse, recvstr);
//textBox1->AppendText(cr + nl + "===>" + atcmdresponse + "<===" + cr + nl);
//Special processing for SDATA
if(atcmdresponse->Contains("SDATA")) // <cr><nl>SDATA:000D6F0000353F0B,0FF7,01BA,0127<cr><nl>
{
String^ val = "NODO:" + atcmdresponse->Substring(atcmdresponse->IndexOf("SDATA")+6,16)+ " " +
"In/out Dig.:" + atcmdresponse->Substring(atcmdresponse->IndexOf("SDATA")+23,4) + " " +
"V=" + atcmdresponse->Substring(atcmdresponse->IndexOf("SDATA")+28,4) + " " +
"I=" + atcmdresponse->Substring(atcmdresponse->IndexOf("SDATA")+33,4) + cr + nl ;
textBox1->AppendText(val + cr + nl);
}
recvstr = "";
atcmdresponse = "";
}
Un ulteriore passo avanti è stato fatto nello sviluppo del software applicativo per il
monitoraggio dei singoli moduli fotovoltaici andando a memorizzare in un database tutte le
misure provenienti dalla rete aggiungendo ai dati sopra descritti anche la data e l’ora.
Il database è stato strutturato in modo da creare un unico file per ogni anno per ogni modulo FV,
ad esempio il nome seguente:
2010.000D6F0000353F0B.data
indica il file contenente tutte le rilevazioni dell’anno 2010 per il nodo con indirizzo
000D6F0000353F0B;
i records al suo interno sono del tipo seguente:
08-01;06.27.00.985;453;594;0
08-01;06.27.10.629;454;594;0
08-01;06.27.20.535;454;594;0
08-01;06.27.30.402;454;594;0
Dove “08-01” indica la data (1 Agosto), “06.27.00.985” indica l’ora (in questo caso i dati sono
campionati ogni 10 sec.), “453” indica la tensione in valore decimale, “594” indica la corrente
in valore decimale, “0” 16 bit in valore esadecimale (0000) indicano gli I/O digitali.
Nella fig. 18 è mostrata l’interfaccia sviluppata in Visual C# : nella finestra di sinistra è
possibile scegliere il nodo di rete da visualizzare, nel grafico vengono rappresentati a sinistra i
valori della tensione (10-90V), a destra i valori della corrente (0-8A ), sotto sono rappresentati
gli eventuali I/O digitali; nella parte bassa si possono settare i parametri della porta seriale da
ascoltare, quella a cui è collegato il “Data Sink”.
In alto è possibile selezionare la modalità di lettura dei dati:
- [ora attuale]: permette di plottare i valori in tempo reale, dopo aver avviato l’ascolto della
porta seriale con il pulsante in basso di “start”;
- [ora precedente], [oggi], [ieri], [ultimi sette giorni], [ultimi 30 giorni]: per estrarre i dati
storici dal database e ottenere una diagnosi dettagliata della produzione di energia
(fig.19).
43
Fig. 18 Interfaccia software per plottare graficamente la corrente e la tensione
Fig. 19 Grafica dei dati storici: oggi, ieri, ultimi 7 giorni, ultimi 30 giorni
44
La corrispondenza fra i valori esadecimali letti sui registri dell’ETRX2 e i valori di tensione e
corrente prodotti dal modulo fotovoltaico, viene fatta secondo le tabelle precedentemente
descritte e secondo la retta di regressione calcolata:
V [V]= 0.067xS12dec + 0.75
(S12dec = valore decimale in mV)
I [mA] = -11.99 xS13 + 7126.62
(S13dec = valore decimale in mV)
Segue il listato di programma in VC# per il calcolo della mappa dei valori di tensione e di
corrente, e il programma per la ricerca dei valori nel database allo scopo di visualizzarli
nell’interfaccia grafica:
namespace ZigBeeNetworkMonitor.Data
{
class DataHelper
{
static DataHelper()
{
MinVoltageValue = 10; //V
MaxVoltageValue = 90; //V
MinCurrentValue = 0; //A
MaxCurrentValue = 8; //A
MinRfdVoltageValue = 0;
MaxRfdVoltageValue = 1200;
MinRfdCurrentValue = 0;
MaxRfdCurrentValue = 1200;
voltageValuesMap = new float[1 + MaxRfdVoltageValue – MinRfdVoltageValue];
currentValuesMap = new float[1 + MaxRfdCurrentValue – MinRfdCurrentValue];
// Mappa dei valori di tensione
//V = 0,0675764 AD1 + 0,754
for (int i = MinRfdVoltageValue; i <= MaxRfdVoltageValue; i++)
{
voltageValuesMap[i] = (float)(0.0675764 * i + 0.754);
}
// Mappa dei valori di corrente
//I = -11,991360 AD2 + 7126,62419
for (int I = MinRfdCurrentValue; I <= MaxRfdCurrentValue; i++)
{
currentValuesMap[i] = (float)(-11.991360 * I + 7126.62419) / 1000f;
}
}
/// Query per selezionare dal db i valori relativi all’indirizzo specificato,
/// per l’intervallo di tempo specificato.
/// </summary>
/// <param name=”address”>indirizzo del nodo</param>
/// <param name=”from”>inizio dele periodo</param>
/// <param name=”to”>fine del periodo</param>
/// <returns>lista di campioni</returns>
public static List<DataFrame> SelectDataFrom(string address, DateTime from, DateTime to)
{
List<DataFrame> result = new List<DataFrame>();
for (int year = from.Year; year <= to.Year; year++)
{
string fileName = Path.Combine(Application.StartupPath,
string.Format(@”{0}\{1}.{2}.data”, Log.DataFolder, year, address));
if (File.Exists(fileName))
{
using (StreamReader reader = new StreamReader(fileName))
{
string record = reader.ReadLine();
45
while (!string.IsNullOrEmpty(record))
{
DataFrame data = DataFrame.FromString(address, year, record);
if (from <= data.EventTime && data.EventTime <= to)
{
result.Add(data);
}
record = reader.ReadLine();
}
}
}
}
return result;
}
public static int MinVoltageValue { get; private set; }
public static int MaxVoltageValue { get; private set; }
public static int MinCurrentValue { get; private set; }
public static int MaxCurrentValue { get; private set; }
public static int MinRfdVoltageValue { get; private set; }
public static int MaxRfdVoltageValue { get; private set; }
public static int MinRfdCurrentValue { get; private set; }
public static int MaxRfdCurrentValue { get; private set; }
private static float[] voltageValuesMap;
private static float[] currentValuesMap;
internal static float VoltageValue(int p)
{
return voltageValuesMap[p];
}
internal static float CurrentValue(int p)
{
return currentValuesMap[p];
}
}
}
VII. SVILUPPI FUTURI
A. Il software sul micrococontrollore per acquisizione e controllo delle variabili fisiche (I, V,
T, Accelerazione xyz, Input Digitale da reed-sensor).
Attualmente l’acquisizione dati è stata fatta direttamente dal modulo ETRX2 di Telegesis, che
rende disponibili due ingressi analogici e 12 In/out digitali; prevedendo situazioni più
complesse quali la gestione del risparmio di energia per aumentare la durata della batterie al
litio ricaricabili, l’aumento del numero delle grandezze analogiche (ad es. la temperatura), una
gestione attiva del controllo (ad es. controllo di orientamento di un pannello FV, gestione degli
ombreggiamenti dei moduli con conseguenti disattivazioni o modifica della corrente del modulo
senza disattivare l’intera stringa, configurazione geometrica del campo FV come descritto
successivamente), si rende necessario l’suo del microcontrollore in maniera più completa: in tal
caso l’input e l’output vengono gestiti completamente da microcontrollore e la comunicazione
con il transceiver ETRX2 dovrà avvenire per intero tramite interfaccia di comunicazione
UART.
E’ evidente che in tal caso il software sviluppato in PIC Basic su microcontrollore si dovrà
generare un intero protocollo di comunicazione fra microcontrollore da un lato e ETRX2
programmabile in comandi AT dall’altro.
B. Il software sul microcontrollore per la configurazione e per la gestione della rete WL.
46
Un prossimo sviluppo del software potrebbe riguardare la configurazione della rete WireLess
per ottimizzare la comunicazione fra i nodi nel caso che venga utilizzato il modulo CYRF7946
al posto dell’ETRX2 diTelegesis; naturalmente ciò significa implementare molte delle funzioni
fornite dal protocollo ZigBee (vedi Tab. A). Il vantaggio sarebbe quello di evitare i costi molto
alti dello stack ZigBee pagato come royalty nell’acquisto dell’ETRX2, ma il costo dello
sviluppo del software dovrebbe ripartirsi su un numero elevato di nodi prodotti.
C. Il software applicativo (su PC) per la configurazione topografica della rete associando
MacAddress alla posizione del modulo all’interno del campo FV
Da un punto di vista applicativo, si immagina uno scenario in cui il montaggio dei moduli FV
venga fatto senza tenere conto degli indirizzi dei nodi di rete, ma si tenga conto prevalentemente
delle caratteristiche elettriche dei moduli, ad esempio per ridurre il problema del mismatch (la
variazioni in meno della corrente per moduli in serie e della tensione per stringhe in parallelo
rispetto alle condizioni standard diminuiscono il rendimento del campo FV); quindi se si
vorranno individuare nel campo fotovoltaico, dal punto di vista geometrico, quei moduli che
hanno problemi di produzione di energia al fine di apportare le opportune correzioni, sarà
necessario disegnare la geometria del campo FV associando ai moduli un nome o un codice
parlante che individua la sua posizione, ad es. A1,A2,….An i moduli della stringa A,
B1,B2,….Bn i moduli della stringa B, ecc. in modo da avere un riferimento alla posizione.
Fig. 20 Operazione di configurazione geometrica del campo fotovoltaico
Per fare questo si pensi ad una fase di configurazione della rete in cui un operatore sta sul
campo FV a taggare in sequenza i moduli con un magnete e un altro operatore su un PC
collegato tramite seriale ad un nodo di rete fig.20. Il sensor-reed della scheda è sensibile al
magnete e quindi il microcontrollore può inviare al PC il suo MAC address, a sua volta
l’operatore in visibilità o in collegamento audio assegna da programma un nome che a sua volta
tramite la rete viene memorizzato nel registro S04 del modulo corrispondente al Mac address
tarsmesso. (ad es. il comando inviato da PC in remoto “atsrem04:000D6F0000353ED9=nodo27-10” assegna il nome mnenonico “nodo-27-10” al modulo FV con indirizzo di rete
000D6F0000353ED9).
All’interno della scheda sono stati previsti due sensor-reed disposti ortogonalmente in due
posizioni diverse per dare la possibilità di inviare più informazioni.
Il sofware potrebbe permettere di disegnare la topografia del campo fotovoltaico e selezionare
graficamente il singolo modulo.
47
D. Il software applicativo per la visualizzazione dei dati sia in locale che in remoto e per la
segnalazione di anomalie.
Il software sviluppato ad oggi (vedi in fig.18) permette l’acquisizione dei dati e la
visualizzazione delle grandezze misurate (corrente e tensione) sia nel momento
dell’acquisizione (ora attuale) sia nei momenti precedenti fino agli ultimi 30 giorni (vedi in
fig.19). Queste grandezze acquisite vengono memorizzate automaticamente in un database che
riporta anche la data e l’ora della misura. La grafica è quella di uno strumento di misura con
memoria.
Come sviluppo futuro si potrebbe pensare di estendere il sistema acquisendo anche la
temperatura e l’accelerazione nei tre assi x-y-z per misurare le vibrazioni e/o gli spostamenti.
Una volta acquisiti i valori delle grandezze fisiche i report potrebbero essere sviluppati
migliorando notevolmente la presentazione a livello grafico, ad esempio la totalizzazione
dell’energia prodotta (Kwh) potrebbe essere selezionata a livello di modulo, a livello di stringa
o di inverter, e a livello dell’intero campo fotovoltaico come evidenziato nella fig.21:
Fig.21 Selezione del livello di totalizzazione dell’energia prodotta
Ad esempio, nelle figure seguenti vengono riportati i grafici dell’energia prodotta durante il
giorno a livello del singolo modulo selezionato (fig.22), a livello di una stringa di moduli (o su
un inverter) (fig.23), e a livello dell’intero campo fotovoltaico (fig.24). Il monitoraggio
dell’energia prodotta permette di verificare le prestazioni delle singole sezioni dell’impianto
evidenziando anomalie e problematiche di manutenzione fino a risolverle.
Fig.22 Energia prodotta (Kwh) durante il giorno dal modulo A2
48
Fig.23 Energia prodotta (Kwh) durante il giorno dalla stringa di moduli (sull’inverter)
Fig.24 Energia prodotta (Kwh) nel giorno da tutto il campo FV
49
Fig.25 Energia prodotta (Kwh) nella settimana, nel mese e nell’anno su un modulo
Nella fig.25 viene evidenziata, a seconda della selezione, l’energia prodotta su un modulo in una
settimana, in un mese, in un anno; naturalmente l’aggregazione può essere fatta anche per
gruppi di moduli, e cioè per stringa o per inverter.
Nel database possono anche essere gestiti gli eventi verificatisi durante il funzionamento: ad
esempio le anomalie e le interruzioni di servizio che vengono memorizzate in automatico o i
resoconti di una manutenzione fatta e memorizzata da un operatore.
Comprendendo i livelli prestazionali di ciascun componente la manutenzione potrà essere
effettuata più velocemente e più efficacemente; non sarà più necessario fare una manutenzione
indiscriminata, ma si potranno portare azioni mirate con risultati migliori. Gli operatori
riusciranno ad individuare immediatamente le aree problematiche riducendo, di fatto, il tempo
speso sul campo e i costi di gestione e manutenzione; potranno giungere sul campo già muniti
degli attrezzi giusti e dei componenti sostitutivi, svolgendo il lavoro più velocemente.
E. Integrazione con sistemi SCADA remoti (Supervisory Control And Data Acquisition).
L’acronimo SCADA (“Supervisione, Controllo e Acquisizione DAti”) [9] indica un sistema
informatico distribuito per il monitoraggio elettronico di sistemi fisici.
Tipicamente, un sistema SCADA è composto da:
Sensori che effettuano misurazioni di grandezze fisiche.
Controllori o microcontrollori o PC che, continuativamente o a intervalli di tempo, effettuano
misurazioni tramite i sensori a cui sono collegati, e memorizzano in una memoria locale i valori
misurati.
Un sistema di telecomunicazione tra i microcontrollori e il supervisore che può essere via cavo
o via radio.
Un computer supervisore, che periodicamente raccoglie i dati dai microcontrollori, li elabora
per estrarne informazioni utili, memorizza su un database su disco i dati o le informazioni
riassuntive, eventualmente fa scattare un allarme, permette di selezionare e di visualizzare su
schermo i dati correnti e passati, eventualmente in formato grafico, ed eventualmente invia
informazioni selezionate al sistema informativo aziendale.
Un sistema SCADA remoto si distingue per il fatto di utilizzare una rete di telecomunicazioni
geografica.
50
Fig.26 Rappresentazione di un generico sistema SCADA remoto
Nel nostro caso (fig.26), i dati del campo FV acquisiti dal server locale via USB, attraverso
ADSL o Wi-Fi potrebbero essere inviati ad un server remoto che centralizza i dati di più campi
FV. La supervisione dei campi fotovoltaici potrebbe essere fatta da qualsiasi client sia locale
che remoto operando praticamente in Real-Time per le seguenti operazioni:
-
Acquisizione dati e controllo dei sensori della rete wireless
Gestione della rete wireless intervenendo sulle proprietà dei nodi
Reporting e visualizzazione grafica dei dati praticamente in real-time
Visualizzazione della mappa geometrica con la localizzazione dei nodi
Reporting e gestione degli eventi
Accesso ai dati storici della rete per data/ora
F. Controllo attivo sulla tensione di stringa per diminuire le perdite di rendimento in caso di
ombreggiamento dei moduli
Il frequente problema del mismatching, cioè l’impatto dei moduli meno performanti sui
rimanenti dovuti a ombreggiamento, sporcizia, nuvole, differenze termiche, mancanza di
complanarità dei moduli FV, possono essere diminuiti o eliminati con una supervisione e un
controllo attivo, cioè controllando il punto di massima potenza di ogni modulo FV. Tale
obbiettivo si può raggiungere con una tecnologia per l’adattamento di impedenza piuttosto che
con circuiti di conversione DC/DC di tipo step-down o step-up.
51
VIII. CONCLUSIONI
La ricerca effettuata apre diverse porte a sviluppi futuri, specialmente nel caso ci fossero
aziende produttrici di moduli FV disposte a investire o a partecipare a progetti europei
finanziati. In particolare si pensi al software applicativo per la visualizzazione dei dati e per la
segnalazione di anomalie, sia in locale che in remoto.
IX. RIFERIMENTI BIBLIOGRAFICI
[1] Telegesis: manufacturer of a full range of ZigBee modules complete with full AT
command layer giving fast and simple ZigBee implementations.
http://www.telegesis.com/support/document_centre.htm
ETRX2: ZigBee Module Product Manual, Technical Manual, Firmware R2xx User
Guide, AT-Command Dictionary.
[2] Ember: promoter of the ZigBee Alliance that supplies physical layer and ZigBee solutions
compliant to the IEEE 802.15.4 standard.
http://www.ember.com/products_documentation.html
[3] ZigBee Alliance: association of companies working together to enable reliable, costeffective, low-power, wirelessly networked, monitoring and control products based on
ZigBee standard.
http://www.zigbee.org/Products/DownloadZigBeeTechnicalDocuments.aspx
[4] ABB – Quaderni di applicazione tecnica n. 10: Impianti fotovoltaici.
[5] AEIT – Federazione Italiana di Elettrotecnica, Elettronica, Automazione, Informatica e
Telecomunicazioni: Energia Fotovoltaica – Novembre 2009
[6] AEIT – Federazione Italiana di Elettrotecnica, Elettronica, Automazione, Informatica e
Telecomunicazioni: Applicazioni Wireless – Luglio/Agosto 2008
[7] Mitsugu Terada- Application of ZigBee sensor network to data acquisition and monitoring,
Measurement Science Review, Volume 9, No. 6, 2009.
[8] Valter Bella - Fabio Bellifemine: Il progetto Wireless Sensor Network in Telecom Italia Notiziario Tecnico Telecom Italia - Anno 17 n. 2 - Agosto 2008
http://www.telecomitalia.it/tit/it/corporate/innovation/notiziario_tecnico.html
[9] Stefano Bimbo – Enrico Colaiocovo: Sistemi SCADA – Supervisory Control And Data
Acquisition – ebook: http://www.apogeonline.com/2006/libri/88-503-1042-
0/ebook/pdf/1042.pdf
52