Sensore wireless per monitoraggio radiologico dell’ambiente · Quello scelto per questo progetto...

34
I Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Misure per l’Automazione e la Produzione Industriale Sensore wireless per monitoraggio radiologico dell’ambiente Anno Accademico 2016/2017 Candidato: Antonietta Sarnataro matr. N46001480

Transcript of Sensore wireless per monitoraggio radiologico dell’ambiente · Quello scelto per questo progetto...

I

Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Misure per l’Automazione e la Produzione Industriale

Sensore wireless per monitoraggio radiologico dell’ambiente Anno Accademico 2016/2017 Candidato: Antonietta Sarnataro matr. N46001480

II

[Dedica]

III

Indice Indice ............................................................................................................................................ III Introduzione .................................................................................................................................... 4

Capitolo 1: Descrizione del sensore ................................................................................................. 5

1.1 Descrizione dell’architettura del sensore ................................................................................ 5

1.2 Descrizione dell’architettura hardware ................................................................................... 6

1.2.1 Scelte di comunicazione ................................................................................................. 6

1.2.2 Schema di connessione ................................................................................................... 7

1.3 Descrizione dell’architettura software .................................................................................... 8

Capitolo 2: Sensori e modulo ........................................................................................................ 10

2.1 Pocket Geiger ...................................................................................................................... 10

2.1.1 Principio di Funzionamento .......................................................................................... 11

2.1.2 Specifiche ..................................................................................................................... 12

2.2 Sensore di temperatura MLX90614 ..................................................................................... 13

2.2.1 Principio di Funzionamento .......................................................................................... 14

2.2.2 MLX90614BAA ........................................................................................................... 15

2.2.3 Interfaccia digitale I2C .................................................................................................. 16

2.2.4 PIN-OUT ...................................................................................................................... 16

2.2.5 Calcolo della temperatura ............................................................................................. 17

2.3 Modulo Wi-Fi ESP8266-01 ................................................................................................. 18

Capitolo 3: Test di funzionamento ................................................................................................. 20

Sviluppi futuri ............................................................................................................................... 26

Conclusioni ................................................................................................................................... 27

Appendice A ................................................................................................................................. 28

A.1 Comandi AT ....................................................................................................................... 28

A.2 Pseudo-Codice .................................................................................................................... 29

Bibliografia ................................................................................................................................... 34

4

Introduzione

Negli ultimi anni, sempre maggiore è stato l’interesse per il controllo della

contaminazione dell’ambiente ad opera di sostanze radioattive. Nasce dunque l’esigenza di

un’analisi di ciò che ci circonda ovvero del ‘Monitoraggio ambientale’, - rilevazione

periodica e sistematica di parametri chimici, fisici e biologici dell’ambiente - mediante

appositi sistemi, quali possono essere sensori, in grado di rilevare le diverse caratteristiche

ambientali. In questo elaborato di tesi si fa riferimento ad un monitoraggio di tipo

radiologico per verificare la presenza di livelli anomali di radioattività nell’ambiente che

ci circonda. Grazie alle nuove tecnologie messe a disposizione nei rilevatori moderni, è

possibile effettuare questo tipo di monitoraggio in maniera più efficiente e soprattutto del

tutto automatizzata grazie agli attuali microcontrollori sul mercato.

5

Capitolo 1: Descrizione del sensore

Il sistema complessivo che è stato realizzato, fornisce uno strumento per il monitoraggio

radiologico continuo dell’ambiente a cui si è affiancata la misura della temperatura a

distanza per rilevare anomalie termiche puntuali. Tali informazioni vengono rese

disponibili tramite un collegamento Wi-Fi.

1.1 Descrizione dell’architettura del sensore

Il sensore si compone di più dispositivi:

1. Un microcontrollore che è il vero cuore del progetto. Un nodo che permette

l’elaborazione dei dati ottenuti dai diversi rilevatori usati nel progetto,

2. Contatore Geiger, strumento che misura radiazioni di tipo ionizzante - scopo del

progetto -,

3. Sensore per la misurazione della temperatura, per misurare possibili effetti termici,

4. Modulo per l’invio dei dati elaborati in Wi-Fi.

6

1.2 Descrizione dell’architettura hardware

Le scelte hardware per questo progetto di tesi comprendono:

1. Il microcontrollore STM32 in particolare l’F4 Discovery della STMicroeletronics, il

primo a essere basato sul core ARM Cortex-M3 che garantisce prestazioni elevate.

Permette di interagire con diversi dispositivi esterni per mezzo di un programma che

risiede nella sua memoria interna e ad un insieme di pin che possono essere

configurati. La sua architettura prevede un insieme di moduli che comprendono –

gestione dell’Interrupt, contatori e Timer, moduli di comunicazione Usart, I2C.

2. Pocket Geiger, sensore al silicio che emula il funzionamento di un tipico Contatore

Geiger. Scelto per il basso costo,

3. MLX90614, sensore per la misurazione della temperatura a distanza. È stato scelto in

quanto permette di rilevare la temperatura senza contatto diretto con l’oggetto

interessato.

4. ESP8266-01, modulo Wi-Fi, scelto perché è facile da integrare con un sistema in

quanto è possibile comunicare con esso tramite comandi AT.

1.2.1 Scelte di comunicazione

Sensori e modulo interagiscono con il microcontrollore attraverso diversi protocolli di

comunicazione.

Per la comunicazione con il Pocket Geiger sono stati utilizzati due ingressi digitali del

microcontrollore per raccogliere le informazioni necessarie.

Per la comunicazione con il sensore di temperatura si è invece usata l’uscita digitale I2C

che permette la comunicazione tra più dispositivi tramite linee dedicate, dette bus. È un

protocollo che regola la comunicazione tra due dispositivi di cui uno ha il compito di

inviare bit che vengono ricevuti in modo sequenziale dall’altro dispositivo. Si compone

due linee seriali, SDA per i dati e SCL per il clock.

7

Infine per la comunicazione con il modulo Wi-Fi si è utilizzato il protocollo Rs-232,

implementato tramite bus Usart, Universal synchronous asynchronous receiver

transmitter, che permette lo scambio di dati con dispositivi esterni.

1.2.2 Schema di connessione

I collegamenti fisici tra i vari dispositivi sono stati fatti

come descritto in tabella, in cui si mette in evidenza in

che modo ciascuno dei pin dei sensori, viene collegato ai

pin del microcontrollore, tenendo presente la

configurazione predefinita dei pin stessi.

In particolare:

1. I pin PA2 e PA3 linee di trasmissione e ricezione

della USART,

2. I pin PB7 e PB8 per il protocollo I2C,

3. I pin PA1 e PA5 fungono da Interrupt.

Lo schema risultante è il seguente:

8

1.3 Descrizione dell’architettura software

Per la parte software del progetto si è scelto come ambiente di lavoro l’IDE “IAR

EMBEDDED WORKBENCH”.

Di seguito uno schema a blocchi del principio di funzionamento del software.

9

Nel blocco SETUP vengono effettuati i settaggi per i diversi protocolli di comunicazione

utilizzati, in modo da definire il corretto baud-rate.

Successivamente vi è una selezione che permette di identificare le due modalità di lavoro in

cui andremo a configurare il sensore. La prima modalità è la modalità Station in cui il

sensore è visto come un semplice dispositivo connesso alla rete. La seconda modalità

prevede che sia lo stesso sensore a comportarsi da Access Point per gli altri dispositivi

Entrambe le modalità vengono indicate da un led access sul microcontrollore:

1. Verde per la modalità Access Point,

2. Arancione per la modalità Station.

La modalità di lavoro può inoltre essere cambiata a run-time premendo il pulsante Utente

del microcontrollore.

In entrambe le modalità, il sensore restituisce le misure effettuate ogni qualvolta vi è una

richiesta da Browser Web. L’azione intrapresa dal sensore prevede l’Invio di una

pagina HTML contenente informazioni diverse- misurate in precedenza nel blocco

Misura delle grandezze - in base al tipo di richiesta effettuata.

In particolare, nella modalità Station, la pagina HTML conterrà il valore rilevato dal

contatore Geiger e una misura della temperatura dell’oggetto puntato.

Nella modalità Access Point invece verrà visualizzata inizialmente una pagina contente un

messaggio che da informazione all’utente su come interagire con il sensore.

10

Capitolo 2: Sensori e modulo

In questo capitolo saranno descritte le principali caratteristiche dei sensori e del modulo

per la comunicazione Wi-Fi, utilizzati in questo progetto.

2.1 Pocket Geiger

Il Pocket Geiger è un contatore geiger prodotto da un progetto denominato “Radiation

Watch”. Pocket Geiger è in grado di rilevare solo raggi X o Gamma. Il lato sensibile del

sensore è riconoscibile perché ha un cerchio anulare come in Figura 2.

Figura 1:Pocket Geiger

11

2.1.1 Principio di Funzionamento

Il Pocket Geiger è un rivelatore a semiconduttore, il cui principio di funzionamento si basa

sulla creazione di coppie elettrone/lacuna che vengono a formarsi nella zona di

svuotamento prossima alla giunzione - utilizzata quindi come rilevatore - ogni qualvolta

una radiazione incide nel cristallo. Questo fenomeno produce una corrente, la quale viene

trasdotta in impulsi di tensione dall’architettura interna del dispositivo stesso. Il sensore

mette a disposizione un’uscita che produce un treno di impulsi proporzionale all’energia

emessa dalla radiazione. Siccome il sensore è sensibile alle vibrazioni meccaniche, è stato

messo a disposizione un ulteriore uscita che, se rilevata, permette di scartare i conteggi

fatti dal contatore poiché risulteranno falsati.

12

2.1.2 Specifiche

Il Pocket Geiger è fornito di cinque pin organizzati come in Figura 3.

PIN-OUT

1. GND: massa

2. +V: (3 V- 9V),

3. SIG: produce un treno di impulsi proporzionale alla

quantità di energia di una radiazione

4. NS: emette un treno di impulsi proporzionale alla

vibrazione meccanica che è stata rilevata. Questo è

usato per prevenire misure di radiazione falsificati.

5. Un connettore opzionale da 3,5 mm.

DATA-SHEET

1. Alimentazione: 3V a 9V

2. Potenza assorbita: 30Mw

3. Tempo morto: 2 minuti.

RANGE DI MISURA

1. 0.05uSv/h~10mSv/h, questo dato va ad indicare il range di valori, espressi in

Sievert, che il dispositivo è in grado di misurare, nel caso si utilizzi una sorgente Cs-

137.

2. 0.01cpm~300Kcpm, sta ad indicare il range di valori misurabile in termini di

numero di impulsi per minuto.

13

2.2 Sensore di temperatura MLX90614

Figura 2:MLX90614

L'MLX90614 è un termometro a infrarossi prodotto da “Melexis” per effettuare misure di

temperatura non a contatto. Esso è in grado di fornire sia la temperatura ambiente, sia la

temperatura dell’oggetto a cui punta. Il range di valori di temperatura è: -40 a 125 ° C per

la temperatura ambiente, -70 a 382.2 ° C per la temperatura dell'oggetto. Ci sono due modi

per interfacciarsi con il sensore:

1. un’uscita PWM, con una risoluzione di a 0,14 ° C;

2. uscita I2C, con una risoluzione di a 0,02 ° C.

14

2.2.1 Principio di Funzionamento

Figura 3:MLX90614 macchina di stato interna

Il funzionamento dell’MLX90614 è controllato da una macchina a stati interna, la quale

controlla l’elaborazione delle misure.

Più in dettaglio, la macchina a stati è la combinazione di due dispositivi: il vero è proprio

rivelatore a infrarossi 81101 e un sistema di condizionamento 90302, come mostrato in

Figura 5.

Il sensore 81101 rileva quanta energia infrarossa viene emessa dai materiali nel suo campo

visivo, e produce un segnale elettrico ad essa proporzionale.

Successivamente la tensione prodotta dal sensore 81101 viene prelevato dal blocco di

condizionamento e viene poi condizionata prima di essere trasmessa ad un

microcontrollore

L’ MLX90614 produce due misure di temperatura: una dell’oggetto e una dell’ambiente.

La temperatura dell’oggetto è la misura senza contatto che ci si aspetta dal sensore, mentre

la temperatura ambiente misura la temperatura sulla matrice del sensore. Entrambe le

temperature calcolate hanno una risoluzione dichiarata di 0,02 ° C. I dati per Ta

(temperatura ambiente) e To (temperatura oggetto) possono essere lette attraverso celle

della RAM dedicate a questo scopo tramite l’uscita digitale I2C.

15

2.2.2 MLX90614BAA

Il sensore è disponibile in diverse opzioni che differiscono a seconda di alcune

caratteristiche presentate in Figura.

Quello scelto per questo progetto è l’MLX90614BAA, che è dimensionato per una

tensione di 3V.

La variante determina anche il campo visivo, che sulla MLX90614BAA è di 72 °.

Il campo di vista del MLX90614 è a forma di cono - la sua area di rilevamento è molto

stretta se si trova molto vicino all'oggetto, ma diventa sempre più ampia man mano che ci

si sposta più lontano.

16

2.2.3 Interfaccia digitale I2C

Il sensore viene letto e configurato attraverso un'interfaccia funzionalmente equivalente a

I2C. Dotato di due linee - SDA e SCL -che portano, rispettivamente, i dati e segnali di

clock.

Il clock è controllato da un dispositivo Master mentre il segnale dati è bidirezionale.

Nel sistema può esserci un solo dispositivo master, mentre MLX90614 può essere

utilizzato solo come un dispositivo slave.

In generale, il Master avvia l'inizio della comunicazione selezionando un Slave attraverso

un indirizzo specifico che nel caso in questione è di 0x5A.

I dati ricevuto dal sensore sono suddivisi in parte alta, parte bassa e bit di controllo degli

errori trasmessi, tutti a 8 bit. Il calcolo del bit di controllo include tutti i bit eccetto il bit

Start, Stop, Ack e Nack. I dati che si trovano in RAM sono disposti in celle con indirizzi

diversi. In particolare, la temperatura ambiente si trova all’indirizzo 006h mentre la

temperatura dell’oggetto all’indirizzo 007h.

Di seguito uno scenario di una lettura del valore di temperatura:

Tenendo presente il protocollo del bus.

17

2.2.4 PIN-OUT

Il sensore è composto di quattro pin.

1. VSS: massa,

2. SCL / Vz ingresso per il clock nella comunicazione I2C,

3. PWM / input SDA / uscita digitale: ingresso segnale dati nella comunicazione I2C

4. VDD: tensione di alimentazione esterna.

2.2.5 Calcolo della temperatura

La temperatura ambiente calcolata è resa disponibile in memoria RAM all’indirizzo

esadecimale 006 con una risoluzione di 0,02 ˚C. La formattazione del dato fa

corrispondere al valore esadecimale 0000 un valore di temperatura pari -40 ˚C, mentre al

valore esadecimale 4074 corrisponde 125 ˚C.

La formula per ottenere la giusta misura di temperatura è la seguente:

I2C(˚K) = Tareg x 0,02.

Analogo discorso vale per la temperatura dell’oggetto letta dalla cella all’indirizzo

esadecimale 007 della RAM.

18

2.3 Modulo Wi-Fi ESP8266-01

Il modulo Wi-Fi ESP8266 prodotto da ”Espressif Systems” è dispositivo che consente a

qualsiasi microcontrollore di accedere alla rete Wi-Fi. L'accesso a Internet può essere

aggiunto a qualsiasi progetto con semplice connettività

(interfaccia SPI / SDIO o I2C / UART).

ESP8266 è stato progettato per applicazioni IoT

(Internet of Things) con l'obiettivo di raggiungere il

consumo di energia più basso.

Ogni modulo ESP8266 viene pre-programmato con un

firmware, che ne garantisce il controllo tramite

comandi AT.

Per maggiori informazioni sui comandi consultare l’APPENDICE A.

19

In figura vengono descritte

un insieme di caratteristiche

del modulo.

Di seguito è indicato il Pin-Out

del modulo e sono dettagliati

solo i pin che intervengono nella

comunicazione.

20

Capitolo 3: Test di funzionamento

In prima analisi si è verificato la modalità di funzionamento Access point, la quale viene

configurata attraverso scambi di messaggi tra microcontrollore e modulo, tramite

interfaccia digitale Usart. Nell’immagine che segue vi è una serie di comandi a cui il

modulo Wi-Fi ha risposto.

21

L’indirizzo IP del modulo viene cablato a priori

ed è dunque un indirizzo statico.

A questo punto si accerta che la rete appena

creata con il SSID di ‘Monitoraggio’ sia

effettivamente disponibile. La rete può prevedere

anche una fase di autenticazione. Una volta

collegata alla rete è possibile accedere al sensore

tramite indirizzo IP e la porta. La risposta è una semplice pagina HTML creata ad hoc, in

cui compare un messaggio che indica le modalità con cui è possibile interagire con il

sistema.

22

Come primo test, si è provato ad avvicinare il sensore di temperatura ad una sorgente

calda, nello specifico a dell’acqua in ebollizione.

Un ulteriore test è stato effettuato vicino ad una sorgente fredda.

23

Come ulteriore prova si è verificato il funzionamento in modalità Station. In Figura vi è la

schermata dei messaggi durante la fase di settaggio e connessione.

24

Allo stesso modo di prima, si è provato ad accedere alla pagina web. In questo caso si ha

come risposta ancora una volta una pagina HTML in cui è presente sia la temperatura

dell’oggetto osservato, sia l’ultimo valore di cpm.

25

In ultima analisi, è stata effettuata una prova del solo Contatore Geiger.

La prova è stata effettuata in un ambiente urbano per un tempo di 7 ore.

In base a questi risultati si sono ottenuti i seguenti parametri:

1. Media: 5

2. Varianza: 2,346154

3. Incertezza di tipo A: 1,531716

26

Sviluppi futuri

Come sviluppo futuro è possibile pensare ad una progettazione del sensore di tipo mobile

quindi alimentato per esempio da una batteria.

Un’ulteriore sviluppo per questo progetto potrebbe essere quello di far interagire più nodi

tra di loro. In particolare nel caso considerassimo 2 nodi distinti, un tipico scenario

potrebbe essere il seguente:

Un client connesso ad una

stessa rete locale dei nodi

settati in modalità Station.

Così facendo il Cliente

riesce a comunicare con

entrambi i sensori.

27

Conclusioni

In conclusione, si è visto come poter creare un sistema di Monitoraggio a basso costo,

estremamente semplice, di ridotte dimensione e che rientra nel trend dell’IoT. Si è trovati

dunque di fronte ad uno scenario in cui ci sono diversi oggetti in rete ed è possibile

interagire con ciascuno di loro.

28

Appendice A

A.1 Comandi AT

COMANDO RISPOSTA FUNZIONE AT+RST OK [parametri di

configurazione del modulo] Resetta il modulo

AT+CWMODE = mode OK Mode: 1=Station Mode

2=AP Mode AT+CIPAP = ”ip” OK Setto l’ip della modalità AP

AT+CWSAP=ssid,pwd,ch,ecn OK Setto i parametri della rete creata

AT+CWLIF [ip, altro] OK

Lista dei client connessi

AT+CIPMUX= val OK Val: 1=singola connessione

2=connessione multipla AT+CIPSERVER= val, port OK Configuro come server.

Val: 0=cancella server

1=crea server Port=porta in ascolto

AT+CWQAP OK Disconnetto il modulo da un’eventuale rete a cui è

collegato AT+CWLAP AT+CWLAP: [parametri reti

trovate] Ottengo una lista delle reti a

cui mi posso collegare AT+CWJAP= “SSID”,

“password” WI-FI CONNECTED Mi collego a una rete

AT+CIFSR AT+CIFSR: ip OK

Mi restituisce l’indirizzo ip

della connessione AT+CIPSTO=val OK Setto il time-out del server

29

A.2 Pseudo-Codice

ABILITAZIONI

Abilitare bus per GPIOA, GPIOB, GPIOD, I2C, USART2, TIM5, TIM2.

SETUP

1. I2C

Configurare PB8 e PB7 in modalità alternate function.

Configurare PB8 e PB7 come Open Draine.

Configurare la alternate function I2C per PB8 e PB7.

Configurare correttamente il registro di timing per I2C1 affinché funzioni con baud-

rate di 100 Kb/s.

Abilitare la periferica I2C1

2. USART

Configurare la alternate function USART per PA2 e PA3.

Configurare il registro BRR per ottenere un baud rate di 115200.

Abilitare trasmissione e ricezione tramite il registro CR1.

Abilitare la periferica USART

3. POCKET GEIGER

Abilitare interrupt sul fronte di salita sul pin PA1 e PA5.

Configurare PA1 e PA5 come pull-up

Abilitare interrupt di TIM2

Settare registro ARR di TIM2 con un conteggio di 2 minuti.

Routine di Interrupt per pA1

Conteggio+1;

Routine di Interrupt per PA5

Noise +1;

Routine di Interrupt per TIM2

30

ValoreLetto=Conteggio/2;

Reset variabili.

4. PULSANTE BLU

Abilitare interrupt sulla linea PA0

Routine di Interrupt per PA0

Se modalità= Access Point

Modalità=Client

SettaggioStation=1

Accendere Led arancione

Altrimenti

Modalità=Access Point

SettaggioAp=1

Accendere Led verde

CONFIGURAZIONE ACCESS POINT

Inviar Comandi AT sulla linea di trasmissione dell’USART per configurare ESP8266

come AP.

Accendere led verde per segnalare la modalità di lavoro attuale.

LOOP

Se Modalità=Access Point

Se SettaggioAp=1

SettaggioAp=0

Inviare Comandi per settaggio come Access Point

Leggere dalla linea di ricezione dell’USART.

Se il dato ha il formato atteso

Se dopo la parola GET trovo ‘cont’

Inviare sulla USART pagina web contenente il valore di ValoreLetto;

Se dopo la parola GET trovo ‘temp’

31

Temp=Temperatura();

Inviare sulla USART pagina web contenente il valore di Temp;

Altrimenti

Inviare sulla USART pagina web contenente Messaggio di benvenuto;

Se Modalità=Client

Se SettaggioStation=1

SettaggioStation=0

Inviare Comandi per settaggio come Client

Leggere dalla linea di ricezione dell’USART.

Se il dato ha il formato atteso

Temp= Temperatura();

Inviare sulla USART pagina web contenente il valore di ValoreLetto e Temp;

32

//Funzione per il rilevamento della temperatura

Temperatura()

Attendere che la linea di trasmissione sia libera

Generare la Start Condition

Aspettare che la Start Condition sia stata generata

Pulire registro SR1

Invio Slave Address in scrittura

Aspetto che l'indirizzo sia matchato

Pulisco Registro SR1

Pulisco registro SR2

Aspettare che il buffer di trasmissione sia vuoto

Inviare registro da cui si vuole leggere il dato

Aspettare che il buffer di trasmissione sia vuoto e che il dato sia stato inviato

Generare la Start Condition

Aspettare che la Start Condition sia stata generata

Pulire Registro SR1

Settare il bit Ack

Inviare Slave Address in lettura

Aspettare che l'indirizzo sia matchato

Pulisco Registro SR1

Pulisco registro SR2

Per ogni byte da ricevere

33

Aspettare che il buffer di ricezione sia pieno

Leggere il dato

Se siamo alla penultima ricezione...

Disabilitare l’Ack

Dare la Stop Condition

Conversione da codice a temperatura

Temp=((((double))(((dataHigh & 0x007F) << 8) + dataLow)) *0,02)-001)-273,15.

Ritornare Temp

34

Bibliografia

[1] Thejapanetimes, http://www.japantimes.co.jp/life/2012/12/05/life/pocket-geiger-

counter-is-a-breath-of-fresh-air/#.WPtnnIjyjIU

[2] Radiation Watch, http://www.radiation-watch.co.uk/?new=1

[3] Rivelatori a semiconduttori,

http://users.unimi.it/veronese/doc/beni%20culturali/lez13.pdf

[4] PocketGeiger Type5 Interface Specification, http://www.radiation-

watch.org/2011/05/professional.html#emb

[5] MLX90614 family Single and Dual Zone Infra Red Thermometer in TO-39

[6] ESP8266-AT Command Reference.