SMART DEVICE PER IL MONITORAGGIO AMBIENTALE · Tesi di laurea in Fisica Tecnica e Impianti ......
Transcript of SMART DEVICE PER IL MONITORAGGIO AMBIENTALE · Tesi di laurea in Fisica Tecnica e Impianti ......
ALMA MATER STUDIORUM
UNIVERSITÀ DI BOLOGNA
SCUOLA DI INGEGNERIA E ARCHITETTURA
Corso di laurea in Ingegneria Edile
SMART DEVICE PER IL MONITORAGGIO
AMBIENTALE
Tesi di laurea in Fisica Tecnica e Impianti
Relatore Presentata da
Prof. Luca Barbaresi Daniele Focchi
Correlatore
Prof. Paolo Guidorzi
Sessione Anno Accademico 2016-2017
2
Indice
1 Introduzione pag. 4
2 Benessere ambientale pag. 6
2.1 Il corpo umano pag. 7
2.2 Bilancio energetico pag. 8
2.3 Misurazione del comfort termico pag. 10
2.4 Indoor air quality pag. 18
2.5 Benessere visivo pag. 20
3 Monitoraggio ambientale pag. 25
3.1 Misure e valutazioni soggettive pag. 26
3.2 Strumenti e procedure per il monitoraggio degli ambienti pag. 28
3.3 Sensoristica pag. 32
3.4 Rappresentazione dei dati pag. 33
4 Progetto di un sistema di monitoraggio pag. 36
4.1 I componenti hardware pag. 39
4.2 La programmazione software pag. 50
4.3 Realizzazione del sistema di monitoraggio pag. 56
4.4 Funzionamento dei dispositivi pag. 66
5 Caso studio pag. 68
Conclusioni pag. 80
Bibliografia pag. 82
Allegati
I° allegato: Manuale di istruzioni
II° allegato: Diagramma di flusso
III° allegato: Schema elettrico del dispositivo
3
4
1 Introduzione
L’avanzamento tecnologico degli ultimi anni ha portato alla nascita di nuovi strumenti per la raccolta
e l’elaborazione dei dati. Cloud, smart systems, IoT, IA: sono parole sempre più rilevanti nella nostra
vita e hanno permesso la nascita di strumenti definiti “smart”, caratterizzati dal basso costo e dalla
possibilità di connettersi a Internet. Anche nell’edilizia sta avvenendo un’importante rivoluzione
grazie alla domotica.
La progettazione di ambienti salubri che possano fornire un elevato grado di benessere è oggi un
obbiettivo imprescindibile, regolamentato dalla normativa e richiesto dai clienti. È un aspetto che va
di pari passo con il risparmio energetico. Una buona progettazione, basata sulla scelta di impianti
correttamente dimensionati e predisposti, permette da una parte l'ottimizzazione dei consumi e
dall'altra un miglioramento della vivibilità degli ambienti.
La realizzazione di impianti di monitoraggio, esterni o integrati nell'involucro edilizio, è una pratica
sempre più comune e premiata dalla normativa, che porta notevoli vantaggi sia per il progettista che
per l'utilizzatore. Infatti, la disponibilità di dati "reali" permette un costante miglioramento dei modelli
matematici utilizzati ed una più facile interazione con l’ambiente.
I monitoraggi vengono effettuati mediante dispositivi dotati di sensori, che vengono programmati
perché possano leggere e misurare numerose grandezze in completa autonomia. Sono molti i prodotti
che si occupano di monitoraggio, integrati negli impianti o mobili. Con la seguente tesi si è voluto
però realizzare un nuovo sistema di monitoraggio partendo da zero e seguendo la filosofia dell’Open
Source. Si vogliono determinare i benefici, l’affidabilità e i limiti offerti da soluzioni tecnologiche
“home made”. Si vuole entrare nel mondo della prototipazione offerto da realtà come Arduino,
realizzando un sistema “smart” su misura, che possa raccogliere e gestire dati ambientali.
5
2 Benessere ambientale
6
2 Benessere ambientale
Caratteristica che ha sempre distinto l'uomo come specie è la ricerca del benessere. Il corpo stesso
dell'uomo si regola costantemente per rimanere in uno stato ideale e poter così funzionare
correttamente. E se qualcosa non va, allora il nostro cervello ci avvisa con stati di malessere sempre
più intensi finché non interveniamo, trovando la causa della sofferenza ed eliminandola. Qualunque
sia la causa: fame, freddo, rumore, etc., per poter tornare nella nostra zona sicura, cioè in uno stato di
comfort, dobbiamo intervenire ed eliminare la causa di disagio.
Oggi, la tecnologia ha permesso all'uomo di intervenire sulle cause di malessere con maggior facilità,
delegando ad essa, con sistemi sempre più automatici, il controllo e l'intervento sull'ambiente
circostante.
Un tempo le famiglie si riunivano attorno al camino per scaldarsi. Oggi ogni stanza permette una
propria regolazione della temperatura per adeguarsi all'utilizzatore. La ricerca di riserve quotidiane
di cibo e acqua oggi viene considerato un problema superato per la maggior parte delle persone.
Questo ha permesso di dedicarsi sempre più ai propri interessi e alle proprie attività, e rimanere in
uno stato fisico/mentale ottimale.
Il benessere, al contrario della felicità, è qualcosa di tangibile e che oggi possiamo avere.
Ogni qualvolta una tecnologia permette una riduzione del carico di lavoro all'uomo, esso è spinto a
ricercarla ed utilizzarla, al fine di migliorare il suo stato.
Il benessere termico è riconosciuto dalla normativa (UNI EN ISO 7730): sarà dunque necessario
quantificarlo e predisporre interventi per la sua regolazione. Particolare attenzione oggi va anche al
risparmio energetico. Si dovranno dunque studiare soluzioni che permettano, oltre ad un alto grado
di benessere, anche il massimo risparmio energetico.
Scopo di questa tesi è la definizione di benessere ambientale, la sua quantificazione e gli strumenti
per la raccolta dei dati necessari ai modelli matematici per la progettazione.
7
2.1 Il corpo umano
Il corpo umano può essere visto come una macchina termica. Attraverso trasformazioni chimiche,
trasforma l'energia potenziale chimica dei cibi in altre forme di energia. Tali trasformazioni
costituiscono il metabolismo, che quindi può essere definito come quantità di energia chimica su unità
di tempo trasformata in potenza termica e lavoro per unità di tempo, espressa in W (watt).
Figura 2.1 – 1 Trasformazioni energetiche nell'organismo
Tutte le forme di energia utilizzate dal corpo umano, alla fine si trasformano in energia termica che
si disperderà nell'ambiente sotto forma di lavoro meccanico o di calore dissipato. La velocità con cui
il calore si disperde è legata all'attività svolta e quindi il metabolismo è funzione del grado di attività
dell'individuo.
Come ogni macchina, l'organismo cederà energia all'ambiente e riceverà energia dall'ambiente.
Se si ha un accumulo o una perdita di energia, non si è in condizione di omeotermia, cioè il bilancio
energetico del corpo non è più soddisfatto, e si avrà una variazione della temperatura del corpo umano,
discostandosi dalla temperatura ottimale di 37°C. Tale temperatura è quella interna del corpo umano
e nell'arco della giornata non dovrebbe variare per più di mezzo grado. La regolazione della
temperatura interna è legata a quella esterna, definita temperatura della pelle, la quale può subire
variazioni di temperatura molto più ampie.
8
Il sistema di termoregolazione del corpo umano, mediante recettori termici che funzionano da sensori,
misura le variazioni di temperatura e le velocità di variazione di queste ultime.
Quando il sistema rileva una variazione di temperatura, interviene per ristabilire l'equilibrio.
I principali meccanismi di termoregolazione sono: quello vasomotorio, che interessa i capillari
superficiali i quali, grazie a valvole, intervengono sull'afflusso sanguigno; quello ghiandolare, con
l'attivazione delle ghiandole sudoripare per la generazione di sudore; quello comportamentale, legato
alle abitudini della persona, come l'aumento della quantità di vestiario o dell'area del corpo coperta
in caso di sensazione di freddo.
2.2 Bilancio energetico
Come già accennato, in condizioni di omeotermia, l'energia prodotta da un individuo deve essere pari
all'energia scambiata con l'ambiente sotto forma di calore o lavoro. Possiamo indicare il bilancio
energetico come segue:
M – W – E – Cresp – (R + C) = 0
M = potenza metabolica;
W = lavoro meccanico nell'unità di tempo;
E = flusso termico ceduto per evaporazione cutanea;
Cresp = flusso termico ceduto attraverso respirazione;
R = flusso termico ceduto/ricevuto per irraggiamento;
C = flusso termico ceduto/ricevuto per convezione.
- Flusso termico ceduto per evaporazione cutanea:
Traspirazione e sudorazione permettono la regolarizzazione della temperatura corporea
mediante meccanismi presenti nella pelle. La prima consiste in fenomeni di diffusione del
vapor d'acqua attraverso la pelle, mentre la seconda consiste nella secrezione da parte delle
ghiandole sudoripare di una soluzione acquosa di cloruro di sodio.
9
- Flusso termico ceduto attraverso respirazione:
I processi di respirazione necessitano di potenza termica per scambiare calore e vapor
d'acqua con le mucose del tratto respiratorio. In pratica l'aria immessa nel corpo viene prima
"trattata" per non scompensare l'ambiente interno al corpo stesso.
- Flusso termico ceduto/ricevuto per convezione:
Il calore superficiale del corpo, in base al vestiario indossato legato all'unità di misura
"clo" (Icl), subisce uno scambio convettivo con l'aria dell'ambiente circostante.
Ci si baserà sul coefficiente di aria dell'abbigliamento, cioè il rapporto tra l'area della
superficie del corpo umano vestito e l'area della superficie del corpo umano nudo, valutato
mediante relazioni empiriche che ne forniscono il valore in base alla resistenza termica
dell'abbigliamento. Quest'ultima è legata all'unità di misura incoerente "clo", i cui valori
sono presenti nelle norme UNI sotto forma di tabelle in base al vestiario.
Tabella 2.2 – 1 Valori del vestiario in "clo"
- Flusso termico ceduto/ricevuto per irraggiamento:
Gli oggetti circostanti la superficie del corpo umano vestito scambiano energia per
irraggiamento. Come semplificazione della realtà, viene introdotta la temperatura media
radiante, cioè una temperatura fittizia uniforme, definita come la temperatura delle pareti di
un ambiente virtuale con temperatura uniforme che sia in grado di scambiare per
irraggiamento con il soggetto, la stessa quantità di calore ceduta dall'ambiente reale.
10
2.3 Misurazione del comfort termico
Il comfort termico può essere definito come lo stato psicofisico in cui soggetto esprime soddisfazione
nei riguardi del microclima, oppure come condizione in cui il soggetto non ammette nessuna
sensazione di caldo o sensazione di freddo (neutralità termica).
È facile comprendere, da queste due definizioni, la difficoltà nell'esprimere e misurare correttamente
il comfort termico, che è per lo più una sensazione, facilmente influenzabile psicologicamente, e che
differisce da gruppo etnico a gruppo etnico, da persona a persona, da attività ad attività.
Quello che si può fare, e che la normativa richiede, è la valutazione di tutti i parametri microclimatici
e fisiologici che influenzano il fenomeno e la realizzazione di valutazioni statistiche il più precise e
generali possibili. Tali valutazioni possono essere globali o locali, ed entrambe dovranno essere
soddisfatte.
Riscrivendo la formula del bilancio energetico del corpo umano considerando tutti i termini
precedentemente descritti e ipotizzando la situazione di comfort, considerando cioè nullo l'accumulo
di energia nel corpo umano, avremo:
f (Icl, M, ta, va, UR, tMR, tsk, E) = 0
Questa funzione è caratterizzata da 8 termini così suddivisibili:
- relativi al soggetto (Icl per l'abbigliamento e M per l'attività);
- relativi all'ambiente (temperatura ta, velocità dell'aria va, umidità dell'aria UR e
temperatura media radiante tMR);
- relative alla fisiologia (temperatura della pelle tsk e potenza termica dispersa per
evaporazione E).
Essendo però i termini fisiologici in funzione degli altri, avrò sei termini indipendenti da utilizzare
per la determinazione del benessere termico.
Per valutare il livello di benessere in una determinata situazione, sono stati realizzati degli indici, detti
di discomfort, che valutano lo scostamento della situazione "di misura" da quella di comfort. Questi
indici si dividono in indici di sensazione e indici di temperatura.
11
L'indice di temperatura più famoso è l'indice di temperatura effettiva (ET). Secondo tale indice, i
parametri fisiologici della temperatura della pelle e della percentuale di bagnatura della pelle sono i
più rilevanti per la valutazione della sensazione termica, ed è alla base della norma ASHRAE 55/92.
Attraverso una combinazione di temperatura operativa, umidità specifica e umidità relativa dell'aria,
sarà possibile determinare un range di condizioni ambientali accettabili, sia invernali che estive
(Figura. 2.3-1).
Figura 2.3 – 1 Grafico ASHRAE per l'indice ET
L'indice di sensazione più conosciuto è invece il Voto Medio Previsto (PMV).
Proposto da Fanger nel 1970, è basato su un'equazione di benessere ambientale, ricavata
sperimentalmente, e su analisi statistiche. Tale equazione è in realtà un'equazione del bilancio termico
che considera due termini sperimentali ricavati da Fanger: la temperatura della pelle (tsk) e la potenza
termica dispersa per sudorazione (Esw).
L = (M – W) - (Ed*+Esw*+Eve+Cve+C*+R*)
(I valori asteriscati indicano l'utilizzo dei valori proposti da Fanger).
Il carico termico (L) corrisponde alla differenza fra l'energia generata dal corpo umano che si disperde
sotto forma di energia termica (M-W) e l'energia termica che il soggetto disperderebbe nell'ambiente
nella condizione di benessere.
12
L > 0 -> sensazione di caldo
L = 0 -> neutralità termica
L < 0 -> sensazione di freddo
Aggiungendo i dati dell'indagine statistica è possibile calcolare il PMV in base a M e L:
PMV = [0,303 exp(-0,036*M)+0,028] * L
Essendo i valori della temperatura dell'aria (ta) diversi da quelli della temperatura media radiante
(tMR), verrà presa come riferimento la temperatura operativa t0, che corrisponde alla loro media pesata.
L'indice è alla base della norma ISO 7730, la quale classifica i risultati dell'equazione mediante una
scala psicofisica (Tabella 2.3-1).
Tabella 2.3 – 1 Scala psicofisica per indice PMV
Il PMV rappresenta quindi il voto che un individuo darebbe all'ambiente che lo circonda.
Vista la natura di questo indice, c'è una certa dispersione intorno al valore medio che non permetterà
mai una soddisfazione completa da parte di tutti. Viene quindi definito l'indice PPD, cioè la
percentuale prevista di insoddisfatti, il quale indica la percentuale delle persone che esprime un voto
di sensazione termica pari o superiore a 2.
PPD = 100 – 0,95 exp -(0,03353*PMV4 + 0,2179*PMV2)
13
Figura 2.3 – 2 Scala psicofisica per indice PMV
Dalla formula che lega i due indici, è possibile ottenere un grafico (figura 2.3-2), il quale mostra
chiaramente che per qualunque valore di PMV, ci sarà sempre almeno un 5% di utenti insoddisfatti,
perché le sensazioni sono mutevoli e le abitudini differenti. La normativa invece permette,
principalmente per ragioni economiche, come parametro di progettazione, valori di PPD inferiori o
uguali al 10%.
Tutte le valutazioni fatte finora sono di tipo globale, cioè riguardano l'ambiente nel suo complesso.
Ma da un punto di vista del comfort, andranno prese in considerazione anche valutazioni locali,
riferite a determinati aspetti che possono apportare un disagio all'utente.
Disuniformità della temperatura delle pareti:
Principalmente in inverno, le superfici vetrate presentano temperature molto più fredde delle superfici
opache, provocando una dissimmetria dello scambio di calore per irraggiamento con il soggetto.
La normativa prevede due situazioni. Entrambe devono risultare minori di un determinato valore di
PPD. In caso di attività leggera, si potrà avere una differenza di temperatura minore di 10°C rispetto
a superfici vetrate fredde e minore di 5-7°C rispetto a soffitti caldi (figura 2.3-3).
Gradienti verticali di temperatura:
È la situazione in cui la temperatura al livello delle caviglie risulta inferiore a quella del capo.
La differenza di temperatura accettata è in base alla percentuale di insoddisfazione ed è classificata
per livelli di qualità dalla normativa europea CEN 1752. Avremo quindi 2°C per il livello A, 3°C per
il livello B e 4°C per il livello C, il meno restrittivo.
14
Figura 2.3 – 3 Valori di PPD causa asimmetria media radiante
Temperatura troppo calda o troppo fredda della pavimentazione:
Lo scambio termico tra la pianta dei piedi e la pavimentazione, può generare una disuniformità di
temperatura nel corpo e provocare malessere. La normativa impone anche in questo caso dei limiti in
base al livello di qualità ricercato. Gli studi, effettuati da Denmark, Olsen e Fanger in base alla
pavimentazione, sia su soggetti scalzi che con scarpe, dimostrano che la temperatura della
pavimentazione deve essere tra i 20 e i 30°C (Figura 2.3-4).
Figura 2.3 – 4 Valori di PPD in base alla temperatura del pavimento
15
Disuniformità della velocità dell'aria:
I movimenti d’aria possono provocare il raffreddamento di una parte del corpo, causando una
condizione di malessere. La percentuale di insoddisfatti (Figura 2.3-5) considera l’effetto combinato
della temperatura dell’aria (ta), del valore medio della velocità (var) e dell’intensità di turbolenza (Tu),
che vale circa 0,4 per ambienti normalmente climatizzati.
Figura 2.3 –5 Valori limite velocità dell’aria per un valore di PPD del 15%
In tutti i casi sopra considerati, la normativa europea CEN 1752 prevede 3 classi di qualità, via via
più stringenti (Tabella 2.3-2), caratterizzate da una soglia massima di percentuale di insoddisfatti,
cioè una certa soglia di PPD.
Tabella 2.3-2 Categorie di discomfort
16
Da ricordare che l'indice PMV è ritenuto valido solo se sono verificati i seguenti intervalli di valori:
ta -> 10-30 °C M/Ab -> 0,8-4 met
tMR -> 10-40 °C Icl -> 0-2 clo
va -> 0-1,0 m/s PMV -> -0,2-+0,2
Di seguito vengono riportare le condizioni di comfort secondo l'ISO 7730 per il caso invernale
(Tabella 2.3-3) e per il caso estivo (Tabella 2.3-4), nella situazione di stato sedentario o attività
leggera.
Tabella 2.3-3 ISO 7730: condizioni di comfort invernale
Temperatura operative 20-24°C e UR = 50%
Gradiente verticale temperatura aria max 3°C tra 0,1 e 1,1
Asimmetria temperatura radiante max 10°C orizz. e 5°C vert.
Velocità dell'aria max 0,15 m/s
Temperatura pavimento 19-29°C
Tabella 2.3-4 ISO 7730: condizioni di comfort estivo
Temperatura operative 23-26°C e UR = 50%
Gradiente verticale temperatura aria max 3°C tra 0,1 e 1,1
Velocità dell'aria max 0,25 m/s
Due aspetti particolari sulla percezione di benessere sono l'umidità relativa e la velocità dell'aria.
La variazione di umidità dell'aria non influisce particolarmente sulla sensazione termica percepita.
Passare dal 30% di umidità relativa al 70% corrisponde all'aumento di circa un grado della
temperatura operativa. Bisogna però precisare che un'umidità relativa inferiore al 30% causa
l'irritazione delle mucose e un'umidità relativa superiore all'80% favorisce la formazione di muffe.
Per questo la normativa prende come riferimento un valore molto ristretto di umidità relativa,
corrispondente al 50% +/- 5%.
La velocità dell'aria invece è strettamente collegata alla temperatura della stessa: saranno accettate
dagli utenti correnti più forti all'aumentare della temperatura.
17
L'indice PMV, come già detto, è un indice statistico ed è funzione di 6 parametri legati al bilancio
energetico dell'uomo. Ma sono molti gli aspetti che non considera.
Con la più recente norma UNI EN 15251, che richiama e amplia i contenuti della ISO 7730, è stato
proposto un nuovo approccio, detto adattivo, per analizzare il comfort termico, e una nuova
classificazione della qualità dell’ambiente (Tabella 2.3-5).
Tabella 2.3-5 Categorie di qualità secondo la norma UNI 15251
Secondo l'approccio adattivo, la condizione di benessere, cioè delle aspettative degli occupanti, può
col tempo cambiare e adattarsi a varie situazioni ed è strettamente collegato all'individuo. Gli utenti
sono messi al centro, come responsabili attivi del microclima interno, permettendo così una riduzione
delle automazioni e degli sprechi energetici.
Vengono presi in considerazione fattori di natura sociale, culturale e comportamentale, che
caratterizzano l'individuo. Si è visto che tali fattori sono preponderanti soprattutto in quegli utenti
abituati a microclimi naturali, cioè senza impianti automatici. Ad esempio, sappiamo che gli utenti
abituati a impianti di climatizzazione, sono molto più sensibili alle deviazioni della temperatura dal
valore ottimale rispetto agli occupanti di edifici con ventilazione naturale. Oppure si tiene conto del
fatto che le persone cresciute in regioni con climi freddi preferiscono temperature minori rispetto alle
persone cresciute in regioni con climi caldi.
In ogni caso, qualunque sia il metodo di calcolo per determinare il comfort termico, oggi è importante
la raccolta di dati attraverso il monitoraggio ambientale, per l'ottimizzazione dei modelli di calcolo.
18
2.4 Indoor air quality
Il benessere termico non è l'unico aspetto necessario per ottenere condizioni positive di benessere
ambientale. Molto importanti sono anche la luminosità e la qualità dell'aria.
L'uomo è soggetto ad un continuo scambio gassoso con l'ambiente attraverso i tessuti e la
respirazione, perciò è importante per la salute umana interagire con ambienti salubri.
L'indoor air quality (IAQ) o qualità dell'aria interna è, secondo la norma UNI 10339, "la caratteristica
dell'aria trattata che risponde ai requisiti di purezza", specificando come requisiti che "l'aria non deve
contenere contaminanti noti in concentrazioni tali da arrecare danno alla salute e causare condizioni
di malessere ".
Sarà quindi necessario individuare le sostanze inquinanti e le loro concentrazioni, considerando sia
le emissioni interne sia le emissioni esterne. La tossicità è legata alla concentrazione e al tempo di
esposizione, mentre i contaminanti possono presentarsi sotto forma di particelle, come aerosol o
particolato, o di gas, di natura organica o non organica.
Le sostanze inquinanti utilizzate come indicatori della qualità dell'aria sono:
- Bioeffluenti: si tratta di emissioni dovute all'attività metabolica umana, non tossiche ma
caratterizzate da cattivo odore.
- SOx, NOx e CO: sono tutti prodotti di combustioni, dovuti alla cottura di cibi, impianti di
riscaldamento o utilizzo di sigarette. Il biossido di zolfo SO2 può generare irritazione all'apparato
respiratorio, il biossido di azoto NO2 può provocare disturbi respiratori soprattutto ai bambini, mentre
l'ossido di carbonio CO può combinarsi all'emoglobina dell'organismo, sostituendosi all'ossigeno.
- Composti organici volatili (VOC): sono un insieme di inquinanti generati da colle, vernici,
deodoranti, combustioni e metabolismo. Sono legati sia all'attività umana che all'utilizzo di materiali
e quindi sempre presenti negli ambienti chiusi. Alcuni di questi composti, come la formaldeide, sono
molto nocivi per l'uomo.
- Radon: gas prodotto dal decadimento dell'Uranio e presente nel suolo e nelle rocce di origine
vulcanica e può causare il cancro ai polmoni.
- Contaminanti biologici: presenza di microrganismi come muffe, batteri o spore fungine, che
proliferano in ambienti umidi, come impianti di condizionamento o pareti soggette a fenomeni di
condensa a causa di basse temperature superficiali.
- Biossido di carbonio (CO2): generata come i bioeffluenti dall'attività del metabolismo umano.
19
In ambito industriale sono disponibili delle tabelle, le Treshold limit values (TLV), che riportano i
valori massimi di concentrazione per i principali contaminanti. Non esiste però una controparte in
ambito residenziale, dove gli occupanti sono soggetti ad un'ampia gamma di inquinanti, con tempi di
esposizione spesso più lunghi, ma concentrazioni minori. Si può utilizzare come limite una
percentuale ridotta dei valori indicati nelle TLV o basarsi sui limiti di percezione olfattiva proposti da
Fanger, secondo i quali non vi siano problemi di inquinamento che non siano percepibili dall'olfatto.
L'azione più efficace per la riduzione dell'inquinamento interno è l'individuazione e rimozione delle
cause inquinanti, come la sostituzione delle vernici tossiche. In alternativa, si può calibrare la portata
d'aria in ingresso del sistema di ventilazione (naturale o forzata) per diluire gli inquinanti presenti.
Quest'ultima soluzione è la più seguita, ma presenta numerosi vincoli legati alla qualità dell'aria
esterna, all'eccessivo consumo elettrico e ad una non equa distribuzione degli inquinanti che saranno
meno presenti nella zona di immissione dell'aria. Inoltre, basarsi esclusivamente sulla portata d'aria
in ingresso può non essere sufficiente. Secondo la norma UNI 10339, sono due gli approcci per la
determinazione delle portate d'aria esterna:
- approccio prescrittivo, che stabilisce la portata volumica esterna per persona in base alla categoria
dell'edificio e alla funzione del locale;
- approccio prestazionale, in cui le portate vengono determinate in modo da mantenere le
concentrazioni dei singoli inquinanti sotto i valori massimi accettati.
Determinazione della portata di ventilazione ai fini sanitari (Qh):
Qh = Gh / [(Ch,i – Ch,0)*εv] [L/s]
Gh = carico inquinante [μg/s]
Ch,i = livello massimo di concentrazione di inquinante ammessa in ambiente [μg/L]
Ch,0 = livello massimo di concentrazione di inquinante esterno [μg/L]
εv = efficienza di ventilazione
Nella quale i livelli Ch,i e Ch,0 potranno essere riferiti ad un unico inquinante assunto come indicatore,
come la CO2, per valutare l'inquinamento generato dall'attività metabolica umana, e il CO, per
valutare l'inquinamento da sigaretta.
20
2.5 Benessere visivo
La vista è il senso più utilizzato dall'uomo ed è legata alla percezione della realtà che ci circonda.
Il benessere visivo è legato sia al tipo di illuminazione sia dall'oggetto della visione e dalla sensazione
che esso trasmette. Mentre la prestazione visiva è quantificabile ed è influenzata dal livello di
illuminamento, il comfort visivo è legato alle condizioni psicofisiche della persona, alla resa dei colori
e alla distribuzione delle luminanze.
L'occhio umano lavora su un range della radiazione elettromagnetica molto ristretto, detto campo
visibile, che ricade fra i 380nm e i 780nm. Per quantificare la sensibilità dell'occhio, che è in grado
di valutare sia la potenza che la lunghezza d'onda della radiazione, bisogna tener conto di un certo
numero di grandezze fotometriche, legate all'intensità luminosa I, definita come il flusso luminoso
emesso in una data direzione nell'unità di angolo solido da una sorgente monocromatica di frequenza
540*1012 Hz, la cui intensità energetica vale 1/683 W/sr.
A causa della variabilità degli stimoli visivi e della loro interpretazione, è stato definito "l'occhio
medio internazionale", che simuli quello umano, e il fattore di visibilità (K), cioè una funzione che
rappresenti la sensibilità media dell'occhio umano a radiazioni differenti di uguale energia.
K(λ1)*P(λ1) = K(λ2)*P(λ2)
P = potenza raggiante
λ = lunghezza d'onda
Il fattore di visibilità è quindi definito da due potenze raggianti, di due luci monocromatiche di diversa
lunghezza d'onda, che generano la stessa sensazione di visibilità.
Nel Figura 2.5-1, si può notare come la massima visibilità corrisponde al colore giallo dello spettro.
È per questo che i sistemi di illuminazione vertono sempre su tale colore.
21
Figura 2.5 –1 Coefficiente di visibilità relativa
Le grandezze fotometriche sono:
- Flusso luminoso: Ꝋ = K(λ)*P(λ) [lm]
- Intensità luminosa: I = dꝊ / dω [cd]
- Radianza: M = dꝊ / dA [lux s.b.]
Rapporto tra il flusso luminoso emesso da un elemento di superficie attorno al punto e l'area
dell'elemento.
- Illuminamento: E = dꝊ / dA [lux]
Rapporto fra il flusso luminoso incidente su una superficie elementare nell'intorno del punto e la
superficie elementare stessa.
- Luminanza: L = dI / dA*cos α [cd/m2]
Rapporto fra intensità luminosa emessa in una direzione e una superficie emittente proiettata su un
piano perpendicolare alla direzione.
22
Tabella 2.5 –1 Valori di illuminamento consigliati
Valori di illuminamento consigliati (lux) Attività/destinazione
20-50 Aree esterne industriali
50-150 Aree di passaggio o di sosta temporanea
100-200 Ambienti di lavoro occupati saltuariamente
200-500 Prestazione visiva semplice (es. lavorazioni grossolane a macchina)
300-750 Prestazione visiva media (es. lavorazioni su macchine utensili)
500-1000 Prestazione visiva elevata (es. disegno)
1000-2000 Prestazione visiva elevata per compiti difficili (es. incisioni a mano, verifica colori, ecc)
➢ 2000 Compiti particolari (es. interventi chirurgici)
Progettazione per l'illuminazione artificiale di ambienti interni secondo la norma UNI 10380:
- Livello e uniformità di illuminamento artificiale, si basa sull'illuminamento medio di esercizio,
cioè sul valore medio di E su di un piano di lavoro a 80cm da terra considerando
l'invecchiamento e sporcamento dell'impianto di illuminazione. L'illuminamento minimo
deve risultare maggiore dell'80% dell'illuminamento medio.
- Equilibrio delle luminanze, causato dalla presenza dell'eccessiva luminosità degli oggetti che
riflettono la luce nel campo visivo e quindi dalla posizione dello sguardo. Il valore di
luminanza sarà quindi uguale alla media fra la luminanza dell'oggetto osservato e quella
delle altre zone all'intorno.
- Abbagliamento, fenomeno di disturbo causato dalla presenza nel campo visivo di una sorgente con
luminanza molto più alta della media, che può provocare una riduzione della acuità visiva.
Può essere diretto o indiretto, se causato da un riflesso.
- Temperatura di colore (CCT), come già visto tabella. 2.5-1), l'aspetto cromatico della sorgente
luminosa impatta concretamente sulla qualità visiva, anche a livello psicologico. La
normativa classifica il colore apparente delle sorgenti luminose indicando per tonalità calda
una T < 3300K, per tonalità neutra una T compresa fra 3300K e 5300K e per tonalità fredda
una T > 5300K (Figura 2.5-2).
23
Figura 2.5 –2 Diagramma di Kruithof per la temperatura di colore
Altro aspetto importante per una buona progettazione di comfort visivo è l'illuminamento naturale.
I vantaggi dell'illuminamento naturale sono: risparmio energetico, effetto positivo sulle persone,
percezione dello spazio esterno mediante pareti vetrate, riduzione di impianti, etc.
È necessario garantire un buon illuminamento degli ambienti durante tutte le ore del giorno ed evitare
fenomeni di abbaglio o di luminosità troppo elevate.
Per misurare l'apporto di luce naturale in un ambiente si utilizza il fattore di luce diurna (FLD), il
quale rappresenta il rapporto in percentuale tra l'illuminamento, dovuto alla sola componente diffusa,
di un punto interno e quello misurato su una superficie orizzontale posta all'esterno e schermata dalla
radiazione diretta. Solitamente si fa riferimento al fattore medio di luce interna, perché mediato su
più punti dell'ambiente.
24
3 Monitoraggio ambientale
25
3 Monitoraggio ambientale
La progettazione di edifici e il dimensionamento degli impianti richiede un gran numero di dati per
la generazione di modelli matematici precisi e che possano rispecchiare la realtà. I sistemi di
monitoraggio permettono la raccolta e la gestione di questi dati. Ma il monitoraggio può risultare
utile, oltre all'ottimizzazione dei modelli, anche ai fruitori dell'impianto, rendendoli più consci delle
caratteristiche dell'ambiente in cui vivono.
La sempre maggiore diffusione di case con classe elevata di certificazione energetica, ha mostrato
infatti due scenari: la differenza fra i modelli utilizzati in fase di progetto e la situazione reale, e le
cattive abitudini delle persone nella gestione della casa.
La normativa, attraverso i Criteri Ambientali Minimi (CAM) che fanno riferimento al D.lgs 56/2017,
sta quindi incentivando i costruttori a integrare negli edifici di nuova costruzione, soluzioni di
monitoraggio delle prestazioni dell'edificio e degli impianti, oltre a provvedere ad informare i futuri
fruitori del corretto utilizzo degli impianti stessi. Anche se la normativa agisce principalmente con
l'intento di ridurre i consumi energetici, questo non toglie i benefici sul benessere delle persone.
La diffusione di sistemi di monitoraggio è incentivata anche dalla riduzione dei costi e dal numero
elevato di proposte presenti sul mercato.
La programmazione di un monitoraggio o la progettazione di un impianto di monitoraggio richiedono
di stabilire l'oggetto delle misure e l'approccio alla raccolta dei dati. Va quindi individuata la scelta
della strumentazione più adatta ai propri scopi e la valutazione dei dati raccolti.
26
3.1 Misure e valutazioni soggettive
Il monitoraggio di una o più grandezze richiede la misura e la restituzione di valori. Le grandezze
sono misurate mediante componenti elettronici detti sensori, i quali si differenziano in base alla
grandezza misurata, alla precisione di lettura della grandezza e alla modalità di restituzione.
Per misura si intende: "il valore numerico attribuito a una grandezza, ottenuto ed espresso come
rapporto tra la grandezza data e un’altra della stessa specie assunta come unità (unità di misura), e
determinato con opportuni metodi o strumenti di misurazione". (cit. Vocabolario Treccani)
Ogni misura effettuata è soggetta a errori. Infatti non esistono metodi perfetti di misurazione di una
quantità. L'insieme delle misure di una stessa grandezza, permette di definire un intervallo di valori
che indica la probabilità della misura, cioè la sua precisione. Gli errori possono essere sistematici, se
dovuti a difetti degli strumenti di misura e quindi si ripetono nel tempo, o casuali, se variano in modo
imprevedibile. Gli errori sistematici possono essere eliminati mediante calibrazione, cioè mediante
un confronto fra le letture del sensore da tarare e le letture del sensore di riferimento. Gli errori casuali,
invece, non possono essere individuati a priori e quindi bisogna affidarsi al valore medio della misura
e alla sua precisione.
Figura 3.1 –1 Multimetro: strumento di misura elettronico
27
Le caratteristiche degli strumenti di misura sono:
- Il campo di misura, cioè l'intervallo dei valori misurabili;
- La portata o fondo scala, cioè il valore maggiore che lo strumento può leggere per una grandezza;
- La precisione, cioè il grado di dispersione delle misure rispetto alla media campionata;
- La risoluzione, che indica la minima differenza rilevabile fra due valori misurati molto simili tra
di loro e di solito corrisponde alla metà della precisione dello strumento;
- L'accuratezza, cioè il grado di corrispondenza tra la misura effettuata e quella di riferimento;
- Tempo di risposta, che corrisponde al tempo necessario perché il valore misurato raggiunga il 90%
del valore di regime.
Figura 3.1 –2 Precisione e accuratezza
Nel campo del benessere ambientale è spesso necessario associare i dati ottenuti da un monitoraggio
a valutazioni soggettive di carattere statistico, per la valutazione della risposta dell'uomo all'ambiente
in cui vive. Queste valutazioni sono raccolte mediante questionari, cartacei o digitali.
Il questionario va costruito in base all'obbiettivo che si vuole raggiungere, cioè al risultato che si
vuole ottenere dai dati raccolti. La normativa UNI EN ISO 10551 fornisce le linee guida per la
redazione e l'uso di scale di giudizio sulle opinioni delle persone esposte all'ambiente oggetto del
monitoraggio. Vengono fornite anche indicazioni sulla formulazione di domande e risposte.
La normativa prevede anche un altro tipo di sondaggio, la valutazione post abitativa (POE), per
valutare la prestazione degli edifici da parte degli utilizzatori, dopo un tempo di utilizzo che va dai 6
ai 12 mesi.
28
3.2 Strumenti e procedure per il monitoraggio degli ambienti
Gli strumenti per il monitoraggio possono misurare una o più grandezze. La scelta dello strumento, e
il suo costo, dipenderà dalla precisione richiesta. Gli strumenti per il monitoraggio sono divisi in:
- Datalogger, per monitoraggi continuativi, economici e senza fili;
- Centraline microclimatiche, strumenti ad alta precisione che necessitano della presenza del tecnico
e sono regolamentati dalla normativa ISO 7726;
- IEQ monitors, utilizzabili mediante smartphone;
- Sistemi di regolazione, per la gestione di impianti.
Figura 3.2 –1 Datalogger Figura 3.2 –2 Centralina microclimatica
Il monitoraggio del comfort termico può essere fatto mediante centraline microclimatiche, per la
determinazione degli indici PMV e PPD, o mediante l'utilizzo di datalogger, per la raccolta dei dati
ambientali.
Nel primo caso, la norma ISO 7726 stabilisce i requisiti per la strumentazione, cioè le grandezze da
monitorare, le metodologie di misura e i campi di applicazione (Tabella 3.2-1)
Le centraline microclimatiche vanno collocate in corrispondenza delle postazioni occupate dalle
persone e dovranno rilevare i valori ambientali al livello delle caviglie, dell'addome e della testa.
In caso di luce solare diretta, bisogna schermare la strumentazione per non rilevare valori falsati. Per
ambienti residenziali o di ridotte dimensioni, è sufficiente posizionare lo strumento al centro della
stanza.
29
Tabella 3.2 –1 ISO 7726: requisiti della strumentazione
Il monitoraggio termico mediante datalogger permette la lettura di più parametri usando sistemi
economici e trasportabili, che non necessitano di una presa di corrente perché dotati di batterie. Una
volta scelto il dispositivo in base alle grandezze da misurare, si decide l'intervallo delle letture, la
durata del monitoraggio e l'ubicazione. È opportuno posizionare i datalogger appendendoli alle pareti
o fissandoli su tavoli, lontano da fonti di calore o vetrate, ma sempre in posizioni che possano
rappresentare l'ambiente oggetto di misura nel suo complesso.
I dati potranno essere letti sul monitor del dispositivo, se presente, oppure sul computer, dopo averli
trasferiti. Alcuni modelli permetto anche di caricare i dati in tempo reale su internet e visualizzarli
dal proprio smartphone.
L'intervallo tra una lettura e l'altra dei sensori dipende principalmente dall'obbiettivo del
monitoraggio e dalla precisione dell'analisi che si vuole effettuare. L'analisi comportamentale delle
persone in una stanza necessiterà, ad esempio, di un tempo ridotto di campionatura (1-5 minuti),
che produrrà una quantità maggiore di dati da elaborare.
30
Il monitoraggio della qualità dell'aria può basarsi sulla determinazione di parametri chimici o sulla
valutazione delle concentrazioni di sostanze prese come indicatori.
Per la determinazione chimica degli inquinanti, cioè per le misure microbiologiche, è necessario
l'intervento di personale specializzato, che dovrà individuare e analizzare tutte le fonti di rischio
biologico e chimico presenti nell'ambiente. L'analisi dell'aria va effettuata all'ingresso e all'uscita
degli impianti di ventilazione e consiste nella raccolta di campioni d'aria per far proliferare i
microrganismi che la compongono ed identificarli.
Il monitoraggio dell'aria attraverso indicatori della qualità, e quindi il monitoraggio microclimatico
degli ambienti interni, può essere svolto mediante datalogger. Come indicato nel caso di monitoraggio
termico, i datalogger andranno posizionati opportunatamente per non effettuare misure falsate. I dati
raccolti potranno essere usati per valutare la necessità di ricambi d'aria nell'ambiente o per integrare
le misure microbiologiche, in modo da determinare con precisione l'ambiente di sviluppo dei
microrganismi.
Figura 3.2 –3 Verifica abbagliamento per postazioni con terminali
Il monitoraggio illuminotecnico permette di valutare l'illuminamento artificiale o naturale degli
ambienti, e valutare così tipologia e distribuzione degli impianti di illuminamento. Come per i
monitoraggi precedenti, la misurazione dell'illuminamento può essere eseguita mediante
strumentazioni apposite, luxmetri o luminanzometri, o mediante datalogger.
31
Gli IEQ monitors e i sistemi di regolazione sono apparati che hanno scopi differenti. Anche se leggono
vari dati in ingresso, non lo fanno ai fini di un vero e proprio monitoraggio, ma per informare l'utente
e gestire gli impianti.
Gli IEQ monitors funzionano come dei datalogger e trasmettono in tempo reale una serie di letture
allo smartphone, dove vengono visualizzate in modo semplificato e con una grafica accattivante.
I sistemi di regolazione, come ad esempio i termostati, sono centraline adibite alla gestione degli
impianti. Un tempo questi dispositivi svolgevano un'unica funzione, mentre oggi sono diventati
sistemi tecnologicamente avanzati, ma facili da usare per l'utente. Permettono la gestione
dell'ambiente grazie all'introduzione di funzioni aggiuntive, quali il collegamento a sensori e impianti
differenti, ed il controllo a distanza mediante internet.
Sia gli IEQ monitors che i sistemi di regolazione, possono essere collegati ad applicativi web che
registrano i dati nel cloud e, attraverso algoritmi avanzati o IA (intelligenza artificiale), sono in grado
di analizzare tali dati e fornire all'utente informazioni sullo stato della qualità ambientale,
consigliando, ad esempio, le azioni per migliorare il benessere o gestendo direttamente gli impianti
domotici, se presenti. Per impianti domotici si vuole indicare quegli impianti di ultima generazione
che ne permettono l'azionamento a distanza attraverso internet.
Figura 3.2 –4 Interfacce di collegamento al cloud computing
32
3.3 Sensoristica
Le misure possono essere effettuate mediante sensori, che si differenziano per la grandezza misurata
e per la precisione. La misura rilevata viene elaborata e inviata sotto forma di segnale elettrico al
microcontrollore che comanda la strumentazione, il quale traduce questo segnale e restituisce il valore
della lettura nell'unità di misura richiesta.
I sensori di temperatura possono effettuare misurazioni per contatto, con superfici o liquidi mediante
processi di conduzione e convezione, oppure senza contatto, mediante processi di irraggiamento.
I principali sensori di temperatura sono: a lamina bimetallica, costituiti da un nastro composto da due
differenti metalli con coefficienti di dilatazione diversi; a variazione di resistenza, con utilizzo di
trasduttori elettrici, che sfruttano la capacità dei metalli di variare la conducibilità elettrica con la
temperatura; termoresistenze, in cui viene letta la resistenza elettrica dei metalli, la quale cresce
all'aumentare della temperatura.
I sensori di umidità sono normalmente costituiti da una striscia di nylon che si espande o si contrae a
seconda dell'assorbimento di vapore acqueo presente nell'ambiente. I sensori più diffusi per la
determinazione dell'umidità sono l'igrometro e lo psicrometro.
I sensori per la misura degli inquinanti dell'aria si dividono a seconda dell'indicatore che si vuole
rilevare, il quale è legato ad una determinata situazione. La CO2 è utilizzato come indicatore della
qualità dell'aria o per la regolazione di impianti di areazione ed è determinata mediante rilevatori ad
infrarosso, rilevatori a fotoionizzazione o mediante spettrometro di massa.
I VOC sono un insieme variegato di composti organici. La scelta del sensore dipenderà quindi dal
singolo composto che si vuole misurare.
I sensori per la misura dell'illuminamento permettono la lettura in lux dell'illuminamento ambientale.
Possono sfruttare celle fotovoltaiche, le quali, sotto l'effetto di un flusso luminoso, reagiscono
provocando corrente elettrica rilevata poi da un galvanometro, oppure utilizzare fotoresistori, che si
oppongono al passaggio di corrente in base alla quantità di luce che li investe.
33
3.4 Rappresentazione dei dati
Un'adeguata rappresentazione dei dati permette una più facile e veloce lettura degli stessi. Sia che si
tratti di misure che del risultato di un'indagine con questionario, la rappresentazione mediante grafici
permette di far risaltare gli schemi che caratterizzano i dati.
Un classico monitoraggio, che può presentare uno o più parametri raccolti a intervalli di tempo
costanti, permette la visualizzazione dei dati in base alla durata del monitoraggio stesso.
Per questo tipo di dati è consigliabile la rappresentazione mediante punti o linee. La scelta di una
scala adatta, cioè con valori non troppo fitti o troppo diradati, permette una corretta visualizzazione
dei dati. Le unità di misura degli assi devono essere sempre messe in evidenza e nel caso di più
parametri da visualizzare contemporaneamente, è consigliabile l'utilizzo di colori per facilitarne
l'individuazione.
Tabella 3.4 –1 Categorie dei parametri ambientali UNI 15251
La figura 3.4-1 mostra la rappresentazione delle classi di PMV, secondo la norma ISO 7730, per un
edificio residenziale durante la stagione estiva. La categoria I rappresenta il più elevato livello di
comfort (Tabella 3.4-1); il grafico mostra, per ogni ambiente soggetto a monitoraggio, il tempo in
percentuale di ogni categoria. La figura 3.4-2 mostra invece la rappresentazione della concentrazione
di CO2 in una camera da letto. Le linee rossa, verde e viola rappresentano i limiti di concentrazione
secondo la norma ISO 15251.
34
Figura 3.4 –1 Esempio di grafico per classi PMV ISO 7730
Figura 3.4 –2 Esempio di grafico sulle categorie di qualità dell'aria ISO 15251
35
4 Progetto di un sistema di monitoraggio
36
4 Progetto di un sistema di monitoraggio
Il progetto presentato, non nasce da un'esigenza particolare, ma dalla curiosità di sperimentare i
benefici e i limiti della prototipazione offerti da realtà come Arduino e Open Source applicati al
monitoraggio ambientale.
Arduino è un prodotto e una comunità, il cui scopo è dimostrare le possibilità che la tecnologia può
offrire. Viene utilizzato da scuole e aziende, che lo hanno scelto per la sua facilità nel montaggio di
componenti e nella programmazione di sistemi elettronici.
Per prototipazione mi riferisco a quel sottoprocesso della progettazione necessario come studio
conoscitivo sui limiti di una data soluzione. È un passo obbligatorio per tutti coloro che vogliono
mettere sul mercato un nuovo prodotto e permette poi la valutazione dei tempi e dei costi di
produzione.
L'Open Source è invece l'indicazione che viene data al software fornito liberamente dagli autori,
permettendone così l'analisi e la modifica, anche a scopo personale. Ciò ha portato alla nascita di
progetti completamente gratuiti, realizzati e supportati da comunità che credono nello scopo che il
progetto si è prefissato. Alcune di queste realtà sono diventate così diffuse da diventare veri e propri
punti di riferimento, utilizzate da migliaia di aziende.
La progettazione di questo sistema di monitoraggio parte ovviamente dall'utilizzo che se ne vuole
fare, cioè dalla tipologia di raccolta dei dati. Decisi quindi i sensori che si vogliono utilizzare, cioè i
parametri ambientali da misurare, è stato necessario cercare la piattaforma più adatta al progetto. Si
tratta della scelta più importante perché caratterizza le possibilità del sistema. Si è optato per un
NodeMCU Amica, una board basata su un chip wifi ESP8266, che offre bassi consumi e funzioni di
comunicazione senza fili, permettendo così di rendere il sistema mobile e indipendente.
Non basta ovviamente leggere i dati con i sensori e inviarli su internet, ma è necessario realizzare un
sistema per la ricezione e la gestione di questi dati. È stato allora progettato un applicativo web, che
si occupa della gestione dei dispositivi e dei dati, e un database, che permetta l'archiviazione di tutti
i dati raccolti. L'applicativo web e il database sono collocati su un server, che permette la
comunicazione con i dispositivi mobili mediante protocollo http. Infine, è stato redatto un manuale
di istruzioni per l'utilizzo dei dispositivi e dell'applicativo web.
37
Come già accennato, tutti i software utilizzati per la programmazione, la comunicazione e la
realizzazione dell'infrastruttura, sono Open Source e dispongono di una grande quantità di
documentazione, anche in italiano. È stato così possibile concentrarsi sul progetto e utilizzare funzioni
avanzate, come quelle offerte dai database, senza investimenti e limiti di utilizzo.
Questo non riduce la difficoltà della prototipazione di un sistema così vasto, che richiede competenze
in vari campi, oltre alle difficoltà tipiche di un qualsivoglia progetto.
Figura 4 –1 Esempio di importanti progetti Open Source
Più si avanza con la progettazione, maggiori sono i limiti e i problemi riscontrati. Spesso è necessario
adeguarsi ai limiti della piattaforma utilizzata, cambiando o eliminando funzioni e caratteristiche che
inizialmente si volevano fornire al progetto. L'alternativa è rincominciare da capo, cambiando la
piattaforma di sviluppo. È una scelta non facile da prendere, soprattutto quando si è raggiunto un
certo stadio nello sviluppo del sistema.
Visto che si tratta di sperimentazioni e prototipazione, la filosofia è che una cosa non la si conosce
finché non viene fatta. Difatti, se uno sapesse già il risultato finale, non servirebbe una fase di
prototipazione. Questo continuo working progress, nel tempo permette di ottenere un risultato, più o
meno simile alle intenzioni iniziali. Sarà allora che si dovrà decidere se la prototipazione ha avuto
successo o bisogna cambiare strada e ritentare. Ma non si tratta di uno spreco di tempo e risorse. Ogni
strada sbagliata ci permette di avvicinarci sempre più al risultato voluto e gli studi effettuati ci
permetteranno di migliorare costantemente. Sarà alla fine il rapporto fra il tempo necessario alla
sperimentazione e le funzioni implementate a decidere il risultato finale.
38
Le attività svolte per la realizzazione del prototipo sono:
- individuazione ed analisi dei componenti elettronici;
- programmazione mediante l'IDE di Arduino;
- configurazione database;
- programmazione dell'applicativo web.
- stesura di un manuale di istruzioni
Figura 4 –2 Prototipo del dispositivo
La progettazione mediante soluzioni Open Source può facilitare e velocizzare la realizzazione di
sistemi completi dal punto di vista funzionale, lasciando da parte tutte le fasi di ottimizzazione e
commercializzazione del prodotto. Non sono quindi obbligatori investimenti ingenti di risorse per
sperimentare, prototipare e provare nuove possibilità.
Ma quanto questo sistema di prototipazione è da privilegiare? Le competenze richieste non sono
eccessive, visto che si parla di programmazione ed elettronica? I tempi per l'utilizzo di queste
soluzioni sono maturi? Queste sono alcune delle domande da porsi durante la fase di prototipazione,
e alle quali si cercherà di dare una risposta.
39
4.1 I componenti hardware
L’utilizzo delle board di Arduino richiede competenze minime di elettronica, che possono essere
acquisite mediante le numerose guide presenti sulla rete. Di seguito vengono descritti i principali
componenti di Arduino.
Pin:
Sistema di input/output di un microcontrollore per l’interfaccia con componenti hardware esterni.
A seconda di come il segnale elettrico può essere gestito dai pin, avremo pin analogici, che assumono
un range del segnale più o meno ampio, e pin digitali, che possono assumere solo un segnale tra alto
(HIGH = 1) e basso (LOW = 0). I pin digitali sono utilizzati dai sistemi di comunicazione per il
trasferimento delle istruzioni.
Figura 4.1 –1 Differenza segnale analogico e digitale
Sistemi di comunicazione:
Protocolli per la comunicazione di informazioni e istruzioni con altri dispositivi mediante pin digitali.
La comunicazione può essere:
- SPI, comunicazione rapida mediante 4 pin (MOSI, MISO, SCK, SS);
- I2C, comunicazione lenta mediante 2 pin (SDA, SCL);
- RX-DX, sfrutta la porta seriale e permette la comunicazione con un computer mediante uscita
USB.
Figura 4.1 –2 Struttura comunicazione SPI Figura 4.1 –3 Struttura comunicazione I2C
40
Alimentazione:
L’alimentazione fornita alla board, caratterizzata da una certa quantità di corrente e da un una certa
tensione, permette non solo il funzionamento della board, ma anche di tutti i componenti che sono
alimentati da essa. I valori di corrente e tensione assorbiti vanno presi dai datasheet dei componenti,
cioè dalle loro schede tecniche. Per controllare che la corrente circoli correttamente e che la tensione
non subisca grosse dispersioni nel suo percorso, è possibile utilizzare un multimetro. L’alimentazione
nei circuiti elettrici ha un unico verso, da positivo a negativo, e la tensione va regolata in base ai valori
richiesti dai componenti. Attenzione anche nel collegare la board con dispositivi che inviano segnali
a tensioni superiori a quelle supportate dai pin dalla board.
Il primo problema del progetto è stata la scelta della board che avrebbe gestito il monitoraggio. Per
board si intende un PBC, cioè un circuito stampato, composto da un microcontrollore, un sistema di
alimentazione e uno di comunicazione. Oltre alle board ufficiali di Arduino, esistono board di altre
aziende che, per le loro qualità, si sono diffuse così tanto da essere supportate dalla stessa comunità
di Arduino. Le possibilità di scelta della board comprendevano: un Arduino Uno affiancato ad un chip
wifi, un Raspberry PI Zero W, una board GSM oppure una board con chip wifi.
Le necessità principali per il progetto sono: gestione sensori, collegamento a internet, portabilità.
Di ogni possibilità sono stati studiati i vantaggi e gli svantaggi.
Arduino UNO:
Vantaggi: possibilità di collegamento, grazie ai numerosi pin sia digitali che analogici; bassi consumi
energetici; compatibilità software e hardware, essendo il prodotto più popolare.
Svantaggi: necessità di un chip wifi esterno per la comunicazione, che comporta aumento di costi,
codice e consumi energetici.
Figura 4.1 –4 Arduino UNO
41
Raspberry PI Zero W:
Vantaggi: potenza di calcolo, paragonabile a un piccolo computer; programmazione avanzata.
Svantaggi: bassa predisposizione alla gestione di hardware esterno, per il numero ridotto di
connessioni; maggiore instabilità del codice, che deve girare sotto un sistema operativo.
Figura 4.1 –5 Raspberry PI Zero W
Board GSM:
Vantaggi: geolocalizzazione; indipendenza da connessioni esterne; gestione SMS.
Svantaggi: costi, gestione della Sim, consumi.
Figura 4.1 –6 Board GSM Sim900
42
Chip wifi: (EPS-8266)
Vantaggi: bassi costi e consumi; ridotte dimensioni; supporto da parte della comunità di Arduino.
Svantaggi: presenza di una sola porta analogica; voltaggio dei pin a 3,3V.
Figura 4.1 –7 NodeMCU Amica
Dopo questa prima analisi, si è optato per l’utilizzo di un chip wifi EPS-8266, e precisamente la
variante NodeMCU Amica, una board di piccole dimensioni, con ingresso micro-USB ed ancora sup-
portata dalla casa produttrice.
Il chip può essere programmato come se fosse una board di Arduino ed è il più indicato per dispositivi
mobili alimentati a batteria. Inoltre, i chip EPS-8266 sono molto diffusi nelle comunità di hobbisti,
per cui esiste molta documentazione.
43
Scelta la piattaforma, sono stati individuati tutti gli altri componenti che formeranno il dispositivo.
Verranno riportati di seguito i vari componenti hardware utilizzati nella versione finale del disposi-
tivo.
NodeMCU Amica:
Figura 4.1 –8 Pin NodeMCU Amica
Tabella 4.1-1 Estratto del datasheet del NodeMCU
Microcontroller ESP-12E
Operating voltage 3,3V
Input voltage 5 - 12V
Digital I/O pins 10 (GPIO)
Analogic input pins ADC (10 bit - 1V)
Communication protocols SPI / I2C / UART
Communication wifi IEEE 802.11 b/g/n
Dimension 49*24.5*13 mm
Lettore microSD:
Componente che dialoga con la board mediante comunicazione SPI. Utilizzato per la lettura dei
parametri di configurazione e per il backup dei dati in assenza di connessione a internet.
Necessita di una microSD, formattata in modalità FAT32. Come tensione di ingresso sono richiesti
5V, mentre per gestire la comunicazione possono bastare i pin a 3,3V della board.
44
Led:
Per la segnalazione degli errori verrà utilizzato un led rosso. I led emettono luce se attraversati da
corrente e fanno parte della famiglia dei diodi, componenti elettronici caratterizzati dal fatto che la
corrente può passare solo in una direzione. Il led funziona con una tensione di 1,8V e va collegato ad
un pin digitale della board che lavora a 3,3V.
Sarà necessario allora dimensionare una resistenza
per ridurre la tensione e non bruciare il led. La
formula da utilizzare, derivante dalla legge di
Ohm, è la seguente:
R = (Vin – V)/I
R = resistenza necessaria
Vin = voltaggio in ingresso
V = caduta di tensione ai capi del diodo
I = corrente supportata dal led (20mA) Figura 4.1 –9 Lettura codice
identificativo resistenze
Sarà necessario quindi l’utilizzo di una resistenza da 160 ohm o più.
CD4051:
Multiplex analogico che mette a disposizione 8 pin ADC per poter così espandere le capacità della
board. Necessita di 3 pin digitali per impostare il pin ADC da leggere e di un pin analogico. Il
voltaggio e l'alimentazione sono gli stessi del pin analogico della board a cui è collegato.
Figura 4.1 –10 Schema di connessione CD4051
Power supply:
Componente per la gestione dell’alimentazione del dispositivo. Comprende una porta USB, un
ingresso per un trasformatore, un tasto di accensione e la possibilità di scegliere la corrente in uscita
tra 3,3V e 5V.
45
DHT 22:
Si tratta di un sensore di temperatura e umidità dell’aria, di piccole dimensioni e con discreta
precisione. Comunica con la board mediante pin digitale, sfruttando le funzioni di un’apposita libreria
software, restituendo la lettura in °C della temperatura e in % dell’umidità.
Il collegamento viene effettuato mediante 3 pin: comunicazione, neutro, alimentazione a 3,3V o 5V.
Se il sensore non integra al suo interno delle resistenze, visibili sul PCB del sensore, sarà necessario
mettere una resistenza, detta di “Pull-up”, da 5k ohm tra il pin di alimentazione e quello di
comunicazione.
Tabella 4.1-2 Datasheet sensore DHT22
Power supply 3.3 – 6V DC
Output signal Digital signal
Operating range temperature -40 ⁓ 80 °C
Operating range humidity 0 ⁓ 100 % RH
Accuraty temperature < +/- 0,5 °C
Accuraty humidity +/- 2% RH
Sensitivity temperature 0,1 °C
Sensitivity humidity 0,1% RH
Sensing period ⁓2s
Dimensions 22*28*5 mm (max)
Figura 4.1-11 Sensore DHT22
I sensori DHT22 necessitano di taratura, ma quello a disposizione è già stato tarato, mediante camera
climatica, durante lo svolgimento della tesi:” Ottimizzazione di un apparato per il controllo delle
condizioni climatiche nella cella per la misura della rigidità dinamica” di Rossella Minto.
Curva di taratura utilizzata:
y = m * x + q
x = lettura del sensore
y = valore da inserire nel database
Figura 4.1-12 Curva di calibrazione DHT22
0 2 4 6 8 10 12
0
2
4
6
8
10
12
X (°C)
Y (°
C)
Curva di calibrazione DHT22
46
MH – Z14A:
Sensore per la lettura della concentrazione di biossido di carbonio (CO2) negli ambienti interni.
Nasce per il monitoraggio delle serre in ambito industriale e dispone di numerose interfacce di
comunicazione. Permette infatti di comunicare con un microcontrollore mediante pin digitale,
analogico o per via seriale. Sul mercato sono disponibili tre modelli che si differenziano per la portata:
2000 ppm, 5000ppm o 10000ppm.
Il collegamento viene effettuato mediante 3 pin: analogico, neutro, alimentazione a 5V.
Tabella 4.1-3 Datasheet sensore MH-Z14A
Power supply 4,5 ⁓ 5,5V DC
Output signal PWM / UART / 0,4-2V DC
Measuring range 0 ⁓ 2000 ppm / 0 ⁓ 5000 ppm / 0 ⁓ 10000 ppm
Accuraty carbon dioxide +/- 50 ppm
Working temperature 0 ⁓ 50 °C
Working humidity 0 ⁓ 95 % RH
Measuring range 0 ⁓ 5% VOL optional
Average current < 85 mA
Dimensions 57,5*34,7*16 mm
Figura 4.1-13 Sensore MH - Z14A
Il sensore dispone di un sistema di autocalibrazione e regola le letture in base alla temperatura.
La lettura della concentrazione di CO2 avviene mediante infrarossi (NDIR).
Il sensore invia sul pin analogico, un segnale con voltaggio fra 0,4 e 2V, range che descrive la portata
del sensore (5000 ppm nel mio caso). La porta analogica della board è però in grado di leggere
tensioni da 0 a1V. È quindi necessario l’utilizzo di un partitore di tensione che dimezzi la tensione
d’ingresso. Avremo così un segnale tra 0,2 e 1V che descrive il range 0 – 5000 ppm.
Il partitore è realizzato mettendo due resistenze di uguale capacità in serie e leggendo la tensione
dopo la prima resistenza.
Il valore letto dalla board sarà poi restituito in bit in un range da 0 a 1024. Avremo quindi due scale
differenti di conversione da utilizzare per ottenere il valore della concentrazione in ppm.
La prima curva di conversione (Figura 4.1-14) sarà una retta del tipo:
(x-a) / (b-a) = (z-0) / (1024-0) -> x = (0,8*z+204,8) / 1024
x = valore in volt ricevuto
a = voltaggio minimo del sensore (0,2V)
b = voltaggio massimo del sensore (1V)
z = valore in bit restituito dalla board
47
Figura 4.1-14 Curva bit-volt sensore MH-Z14A
La seconda curva di conversione (Figura 4.1-15) sarà una retta del tipo:
y / k = x-a / b-a -> y = (x-0,2)*5000 / 0,8
y = valore in ppm letto dal sensore
k = portata del sensore (5000 ppm)
Figura 4.2-15 Curva volt-ppm sensore MH-Z14A
Tabella 4.1-4 Livelli di concentrazione di CO2
250-350 ppm Concentrazione normale aria esterna
350-1000 ppm Concentrazione tipica per ambienti interni arieggiati
1000-2000 ppm Aria ristagnate e primi avvisi di sonnolenza
2000-5000 ppm Possibili situazioni di malessere, sonnolenza, perdita di concentrazione
5000 ppm Limite di esposizione per ambienti di lavoro (8 ore)
0 200 400 600 800 1000 1200
0
0,2
0,4
0,6
0,8
1
1,2
Z (bit)
X (
Vo
lt)
Curva bit-volt sensore MH-Z14A
0 0,2 0,4 0,6 0,8 1 1,2
0
1000
2000
3000
4000
5000
6000
X (Volt)
Y (p
pm
)
Curva volt-ppm sensore MH-Z14A
48
Fotoresistenza:
Sensore LDR (Light Dependent Resistor) per la lettura dell’intensità luminosa degli ambienti interni.
Si tratta di una resistenza che ha la capacità di cambiare il suo valore ohmmico in funzione della luce
che la illumina. Per determinare il valore della fotoresistenza va inserita una resistenza in serie al
sensore. La capacità della resistenza deve essere paragonabile a quella della fotoresistenza.
La fotoresistenza può essere scelta in base alla quantità di luce che si vuole misurare. Per il progetto
sono state scelte una fotoresistenza da 10k ohm e una resistenza da 10k ohm.
Il collegamento viene effettuato mediante 3 pin: analogico, neutro, alimentazione a 5V.
Tabella 4.1-5 Datasheet fotoresistenza
Max voltage 150V
Light resistance 5-10 kΩ
Dark resistance 0,5 MΩ
Response time 30 ms
Environmental temperature -30 ⁓ +70 °C
Spectrum peak value 540 nm
Dimension ᴓ5 mm
Figura 4.1-16 Fotoresistenza
Per ottenere il valore in lux dell’illuminamento è necessario costruire una curva bit-lux per la
conversione dei valori. Questa curva va inoltre calibrata in base al sensore acquistato.
Per la calibrazione va utilizzato un luxmetro. Nel mio caso ho utilizzato lo strumento Babuc/A.
Si tratta di un multi-acquisitore portatile per visualizzare, memorizzare ed elaborare grandezze, quali
temperatura, umidità, concentrazione degli inquinanti dell’aria, intensità luminosa, etc.
Le letture sono effettuate mediante sonde. Per la calibrazione è stata collegata al Babuc/A una sonda
BRS001, con portata di 25k lux, ed è stato effettuato un monitoraggio in modalità di sola lettura.
Vengono poi confrontati i valori letti dalla sonda con quelli letti dalla fotoresistenza, entrambi
sottoposti alla stessa fonte luminosa. Durante la fase di taratura dei sensori, è stato utilizzato per
comodità un Arduino Uno (Figura 4.1-17). Sia il pin analogico del NodeMCU che quello
dell’Arduino Uno, traducono il segnale analogico in un valore che va da 0 a 1024 bit, quindi non ci
sono differenze fra i valori letti dalle due board.
49
Figura 4.1-17 Calibrazione della fotoresistenza mediante Babuc/A
I dati raccolti vengono riportati sul programma Excel e viene realizzato un grafico, da cui si ottiene
una curva con andamento esponenziale. Mediante la funzione “linea di tendenza” di Excel, si ricava
la funzione della curva di taratura che meglio approssima la curva ottenuta dai dati:
y = 31,20968336 exp 0,0037083117*x
y = valore in lux ricercato
x = valore in bit letto dal sensore
Figura 4.1-18 Curva di calibrazione fotoresistenza
y = 31,21e0,0037x
R² = 0,99
0 200 400 600 800 1000 1200
0
200
400
600
800
1000
1200
1400
1600
X (bit)
Y (l
ux)
Curva di calibrazione fotoresistenza
50
4.2 La programmazione software
La realizzazione di un software è legata alla piattaforma su cui deve funzionare e al linguaggio di
programmazione utilizzato. Per programmare è necessario disporre di un editor di testo, col quale
scrivere il codice, e di un compilatore, per tradurre il sorgente in un codice interpretabile dalla
macchina. Ogni linguaggio di programmazione ha le sue regole di scrittura, ma possiamo distinguere
due grandi tipologie: programmazione procedurale e programmazione orientata agli oggetti. La prima
consiste nello scrivere passo a passo l'attività che deve essere svolta dal programma e si avrà un inizio
e una fine. La seconda invece, permette di definire degli "oggetti" con rispettive proprietà e creare
delle relazioni tra di essi.
Di seguito verranno elencati i linguaggi di programmazione utilizzati nel progetto.
HTML e CSS:
Utilizzati per la realizzazione della struttura e dello stile grafico dei siti web.
Non si tratta di veri e propri linguaggi di programmazione, ma fanno parte dei linguaggi di markup,
cioè linguaggi che funzionano in base ad una serie di regole. Questo codice viene eseguito da
programmi chiamati browser web. Questi contattano il server che ospita la pagina internet, scaricano
il codice sul client e interpretano secondo la propria filosofia il codice HTML e CSS. Questo si traduce
in differenze di stile e funzionamento dello stesso codice da browser a browser, e andrà quindi scritto
in modo che funzioni allo stesso modo sui principali browser web.
Figura 4.2 –1 Loghi dei principali browser web
C:
Linguaggio di programmazione procedurale utilizzato per la creazione di software per computer.
Per la scrittura del codice mediante l'IDE di Arduino, è stata utilizzata una variante semplificata del
linguaggio di programmazione C.
51
MySQL:
Si tratta di un relational database management system (RDBMS), cioè di un linguaggio per la gestione
delle basi di dati. Permette la formulazione di richieste (queries) e, mediante estrapolazione ed
elaborazione di dati presenti sotto forma di righe (records), restituire un risultato. Presenta
un’interfaccia grafica, accessibile via browser, per la gestione delle tabelle, funzioni avanzate per
l'esportazione dei dati e tutti i tipi più diffusi di variabili.
PHP:
Linguaggio di programmazione, sia procedurale che ad oggetti, utilizzato per la realizzazione di
siti web. Viene eseguito dal server, il quale restituisce un risultato, di solito incorporato in una pagina
HTML, che può essere letto da un browser web.
Il PHP ha una serie di funzioni che gli permettono di formulare queries a un database MySQL.
Vengono ora riportati i programmi utilizzati per la scrittura e la compilazione del software.
Questi programmi sono tra i più famosi della loro categoria, permettono l'installazione di estensioni
per l'aggiunta di funzioni avanzate, sono Open Source, e quasi tutti multipiattaforma, cioè disponibili
per più sistemi operativi.
XAMPP:
Ambiente di sviluppo per PHP e altri linguaggi utilizzati per la programmazione web. Permette di
installare sul computer un server ed un database MySQL. Può essere usato sia nelle prime fasi di
realizzazione di un sito internet, senza doversi appoggiare ad un server commerciale, che per la
manutenzione. Infatti, per effettuare modifiche ai siti web, riducendo al minimo il tempo di inattività
del sito, di solito si lavora su una versione locale del sito e lo si carica online una volta che sono state
completate le modifiche.
Filezilla:
Si tratta di un programma per il file transfer protocol (FTP), cioè per il trasferimento dei dati nelle
architetture di tipo client-server. Utile se si dispone di uno spazio su un server che non mette a
disposizione degli utenti un gestore file con interfaccia grafica. Sarà però necessario farsi fornire
dall'amministratore del server i parametri per l’accesso mediante programmi FTP.
52
Notepad++:
Editor di testo che supporta molti linguaggi di programmazione. Aiuta nella scrittura del codice, con
suggerimenti per il codice e con una visualizzazione differenziata per colore dei vari elementi del
codice.
Browser web:
Programmi che consentono l'interazione con internet, mediante l'utilizzo di motori di ricerca, e che
permettono la visualizzazione delle pagine web. Dispongono di strumenti avanzati di sviluppo per la
programmazione web e sono il primo strumento per il controllo del codice. Possono essere usati, ad
esempio, per il debugging, cioè per la ricerca di errori nel codice di programmazione.
Draw.IO:
Applicativo web per la realizzazione di schemi logici, tabelle o appunti. Utilizzato per la
rappresentazione, mediante diagrammi di flusso, del funzionamento del software dei dispositivi.
Figura 4.2 –2 Diagramma di flusso del codice del dispositivo
53
Fritzing:
Programma per lo sviluppo semplificato di progetti di elettronica. Utilizzato principalmente con
Arduino, sfrutta librerie che comprendono i principali componenti elettronici ed è in grado di
effettuare collegamenti virtuali fra i pin, simulando così un circuito elettrico. Può essere sfruttato per
la prototipazione di circuiti, permettendo inoltre di realizzare un circuito stampato del progetto.
Figura 4.2 –3 Schema dei collegamenti del dispositivo
IDE Arduino:
Programma per la scrittura e la compilazione del codice. È il principale strumento di sviluppo per le
board di Arduino, ma supporta anche hardware esterno, permettendo l’installazione di librerie e pac-
chetti di altri produttori. Presenta un sistema per la verifica della sintassi, la visualizzazione seriale
sia testuale che grafica, fornisce informazioni sullo spazio occupato dal codice e dispone di un gestore
di librerie. Inoltre, l’installazione comprende già un gran numero di sketch d’esempio.
Figura 4.2 –4 Interfaccia IDE Arduino
54
La programmazione è composta da variabili, funzioni e strutture di controllo.
Variabili:
Sono contenitori di dati. Le variabili vanno dichiarate, indicando il tipo di dato, cioè il tipo di valori
che può accettare, e un nome identificativo, mentre il loro valore può essere specificato in un secondo
momento. La gestione delle variabili cambia da linguaggio a linguaggio. I tipi di dato più utilizzati
sono: char, composto da singoli caratteri; string, che funziona come una lista di caratteri; int, numero
intero; float, numero a virgola mobile; boolean, variabile logica che può valere true o false; array,
lista di variabili. Le variabili possono essere locali, utilizzabili all’interno della funzione in cui sono
stati dichiarati, o globali, utilizzabili in ogni parte del programma.
Le variabili permettono di effettuare operazioni per la modifica del loro valore/contenuto. Possiamo
ad esempio sommare due int fra di loro e ottenere la loro somma, o unire una stringa con un numero,
ottenendo in questo caso una stringa diversa dalla precedente, i cui ultimi caratteri corrispondono al
numero “aggiunto”.
Funzioni:
Sequenza di istruzioni autonome e identificabili mediante un nome univoco. Possono richiedere in
ingresso dei dati per il loro utilizzo e restituire un valore al termine. Le funzioni vengono chiamate
liberamente durante l’esecuzione di un programma e sono di solito utilizzate per scrivere una volta
sola una serie di istruzioni che si ripetono più volte nel programma. Vengono anche utilizzate per
strutturare un programma in modo che sia più facile da leggere.
Cicli e istruzioni condizionali:
I cicli sono strutture di controllo che eseguono ripetutamente una sequenza di istruzioni. I più diffusi
sono il ciclo for, che esegue un numero stabilito di cicli, e il ciclo while, che lavora finché è verificata
la condizione imposta. I cicli permettono ad esempio la ricerca di un valore all’interno di una lista
(array) o l’attivazione di codice quando una condizione si verifica. Le istruzioni condizionali sono
un costrutto di programmazione, il cui esponente più importante è if-else. Permettono l’attivazione di
parti del codice in base al verificarsi di una condizione. La verifica si basa sul risultato di un confronto
che può essere vero o falso.
55
La programmazione richiede alcune regole di formattazione, per la comprensione del codice anche
da parte di terzi. Un codice pulito, permette inoltre un controllo maggiore sul suo funzionamento e
ne facilita l’ottimizzazione. Bisogna quindi darsi delle regole, e seguirle per tutto il tempo di sviluppo,
sulla dichiarazione delle variabili, cioè nella scelta dei nomi identificativi, sulle spaziature e nella
gestione delle funzioni. Altro aspetto importante sono i commenti. Essi permettono di inserire
all’interno del programma, del testo che non verrà letto (interpretato) dal compilatore. Questo testo
permette di descrivere le varie parti del codice, inserendo delle note per sè o per chi dovrà lavorare in
futuro a quel programma.
Il controllo del codice può essere effettuato mediante strumenti per il debugging, che permettono di
analizzare il codice passo a passo, mostrando il contenuto delle variabili, individuando errori di
sintassi, errori nella gestione del tipo di dati o la formazione di cicli senza fine che possono bloccare
il programma. Sono controlli indispensabili, e se l’ambiente di sviluppo utilizzato non presenta
strumenti appositi, è possibile gestire questi controlli dall’interno del codice. Basta posizionare nel
codice delle espressioni per la “stampa”, su file o su monitor, del contenuto delle variabili in modo
da capire cosa il programma sta facendo e come lo sta facendo.
56
4.3 Realizzazione del sistema di monitoraggio
Il cuore del progetto risiede nella capacità del NodeMCU di comunicare informazioni mediante la
rete. Per capire le possibilità e i limiti del sistema di comunicazione, sono serviti molti test. Bisognava
infatti scambiare dati con l’applicativo web e quindi con un server.
Per prima cosa si è individuata una rete wifi che permettesse l’interfaccia con la board. La rete
dell’Università di Bologna è stata esclusa immediatamente perché si appoggia su un protocollo di
autenticazione, chiamato WPA2 Enterprise, non compatibile con la board. Sono stati riscontrati pro-
blemi anche con le reti domestiche, gestite dal router di casa, dove la presenza di firewall e altri
sistemi di sicurezza possono bloccare l’accesso al chip wifi. Si è optato quindi per l’utilizzo di un
cellulare come hotspot. Si tratta di una modalità degli smartphone, i quali si trasformano in router
portatili, in grado di generare una rete wifi, permettendo così di condividere la connessione internet
della Sim con altri dispositivi.
La comunicazione con il server è effettuata mediante protocollo http (HyperText Transfer Protocol),
che si basa su un’architettura client-server. Il client, e quindi la board, conoscendo il nome del domi-
nio dell’applicativo web, cioè l’indirizzo del server, è in grado di richiedere e inviare informazioni al
server. Questo è il funzionamento che sta alla base dei siti web.
La richiesta è composta dal metodo, dall’URL, cioè dall’indirizzo, e dalla versione del protocollo. Il
metodo utilizzato è GET, che permette sia la ricezione che l’invio di informazioni. La versione del
protocollo utilizzata è la 1.0.
La risposta è composta dalla riga di stato, che riporta un codice a tre cifre che permette di capire se
la risposta è avvenuta correttamente, dall’header e dal body, cioè il contenuto della risposta.
L’header contiene al suo interno numerose informazioni come il tipo di server, la tipologia di conte-
nuto restituito (testo, immagini, etc.) e l’orario.
57
Figura 4.3-1 Comunicazione http
L’invio dei dati mediante metodo GET consiste nell’inserire, alla fine dell’URL, una formattazione
di questo tipo: un punto di domanda “?” per indicare la presenza di dati e, a seguire, un nome per
identificare il dato e il valore da passare, separati da un uguale “=”. Nel caso sia necessario passare
più dati, si aggiunge il simbolo “&” e i successivi dati con la stessa formattazione, nome = valore.
I dati verranno così “recapitati” al link indicato. Dovranno poi essere “presi in consegna”, grazie alla
funzione $_GET di PHP inserita nella pagina web, ed elaborati. Questo sistema è utilizzato per l’invio
delle letture dei sensori all’applicativo web.
La risposta viene gestita dal server e può essere letta dal NodeMCU un carattere alla volta. Il carattere
letto viene inserito in una stringa in modo da salvare tutto il contenuto del messaggio. Attraverso le
funzioni di gestione delle stringhe è possibile poi estrapolare le informazioni di maggior interesse.
Una volta impostata la comunicazione col server, si è passati alla programmazione del dispositivo.
Le caratteristiche principali che il dispositivo deve avere sono la facilità di utilizzo e la mobilità. Il
dispositivo deve quindi essere “smart” ed autonomo.
Per la gestione dei dispositivi da remoto è stato realizzato un applicativo web. In questo modo l’unica
azione che l’utente deve eseguire sul dispositivo è l’accensione dello stesso.
L’applicativo web è un sito internet, strutturato in modo che possa inviare e ricevere dati con i dispo-
sitivi, permettendone la gestione.
58
Per ridurre i consumi energetici e la complessità del codice è stata scelta una comunicazione mono-
direzionale verso l’applicativo web. Sarà il dispositivo a contattare l’applicativo e non viceversa.
Questo sistema non permetterà la modifica dei progetti di monitoraggio già avviati. Perché i disposi-
tivi possano accorgersi di una modifica, devono essere spenti e riaccesi, permettendo al dispositivo
di richiedere all’applicativo le ultime impostazioni.
Questo limite permette una notevole semplificazione, senza provocare grossi problemi nella gestione
dei monitoraggi, che vanno definiti a priori e non devono subire modifiche durante l’esecuzione.
Il dispositivo necessita di un orologio per gestire il tempo. I microcontrollori dispongono di funzioni
per la gestione del tempo e sono in grado di “riconoscere” il passare del tempo. La data è legata al
numero di secondi passi rispetto ad una data di riferimento, corrispondente al 1/1/1970.
Ma non disponendo di una batteria interna, ad ogni riavvio viene perso il riferimento temporale al
momento presente. Invece di aggiungere una batteria al dispositivo, si è deciso di sfruttare la comu-
nicazione http e di prelevare, dalla risposta ricevuta dal server, la data e l’ora attuali. Il monitoraggio
partirà una volta superato l’orario d’inizio, e l’intervallo delle letture, che scandirà l’attività del di-
spositivo, è gestito dalla funzione timerRepeat della classe TimeAlarms.h. Questa funzione richiede
come parametri la funzione da chiamare, che in questo caso è la funzione che gestisce le letture dei
sensori, e l’intervallo di tempo tra una chiamata e l’altra. Per far terminare questo ciclo all’ora di fine
del progetto, prima della lettura dei sensori viene confrontata l’ora attuale con l’ora di fine.
Per la gestione dei dati, ci si appoggia ad una memoria esterna, una microSD letta mediante un lettore
di microSD. I dati che necessitano di un salvataggio locale sono di due tipologie: le informazioni per
la configurazione del dispositivo e il salvataggio delle letture in assenza di connessione alla rete. I
dati di configurazione riguardano il nome identificativo del dispositivo, il link all’applicativo web e
i dettagli della rete wifi. Questi dati possono essere modificati dall’utente. Sarà possibile, ad esempio,
cambiare la rete wifi a cui il dispositivo si deve collegare. A questi dati si aggiungono due variabili
di sistema, cioè utilizzate dal programma per il suo funzionamento. Sono salvate sulla memoria per-
ché, in caso di interruzione di corrente, il progetto possa proseguire correttamente.
I valori sono racchiusi da un tag, composto da un numero fra parentesi, che ne facilita il riconosci-
mento.
59
Il salvataggio delle letture sulla memoria locale permette, oltre al salvataggio dei dati che non possono
essere caricati sull’applicativo web, il funzionamento offline del monitoraggio.
Inizialmente per la lettura dei dati sulla microSD si utilizzava la funzione readString(), la quale per-
mette solo di leggere tutto il contenuto di un file e di inserirlo in un’unica stringa. Questo sistema
però poteva causare un crash del programma perché si trasferiscono tutti i dati dalla memoria esterna
a quella interna del microcontrollore, che ha dimensioni limitate.
Il programma è stato quindi riprogettato per poter utilizzare la funzione read(). Questa funzione
chiede in ingresso la lunghezza di caratteri da leggere dalla memoria esterna e un array di caratteri
dove inserire i dati estrapolati. In questo modo è possibile leggere un file di testo una riga alla volta,
proprio com’è strutturato il file backup delle letture, dove ogni campionamento costituisce una riga.
È necessario, però, sapere esattamente la lunghezza della riga da leggere. Per questo, all’inizio del
progetto, viene calcolata la lunghezza delle righe. Per ridurre l’elaborazione da parte della board, la
stringa dei dati che verrà salvata sulla memoria esterna è in realtà quella utilizzata per la richiesta al
server. Quindi, una volta effettuate le letture dei sensori, i dati vengono inseriti in una stringa format-
tata secondo una richiesta di tipo GET, con i dati da inviare accodati uno all’altro alla fine dell’URL.
La stringa è così composta: GET; link al server; nome del progetto e nome del dispositivo, necessari
all’applicativo web per capire chi invia i dati; data e ora di lettura dei dati; valore della temperatura
in °C, dell’umidità in %, della concentrazione della CO2 in bit e dell’intensità luminosa in bit; infine
una variabile di stato.
In questo modo, la riga letta sulla memoria esterna è già pronta per essere inviata al server. La lun-
ghezza della stringa dipenderà dal nome del progetto e del dispositivo, perché tutti gli altri dati sono
formattati in modo che occupino sempre la stessa dimensione. Ad esempio, i valori numerici delle
letture analogiche occuperanno quattro cifre. Se il valore è inferiore al migliaio, verrà aggiunto uno
zero davanti perché la lunghezza rimanga di 4 cifre.
Quando la stringa viene salvata sulla microSD, viene aggiunto all’inizio un tag identificativo con un
numero progressivo. In questo modo si potrà sapere quante righe sono salvate nella memoria esterna
e utilizzare un ciclo for per estrapolarle una alla volta. Ogni volta che una riga è stata inviata con
successo al server, viene aggiunto all’inizio un asterisco “*”. Questo permette, in caso di interruzione
di corrente, di riconoscere le righe da inviare al server da quelle già inviate.
60
Ogni volta che si accede alla microSD, sia per la lettura che per la scrittura di dati, viene effettuato
un controllo per verificare che la memoria esterna sia leggibile. Se la verifica risulta negativa, il pro-
gramma entra in un loop infinito che accende e spegne un led rosso, bloccando di fatto il dispositivo.
Questa soluzione è necessaria per impedire qualsiasi forma di malfunzionamento che potrebbe cau-
sare la perdita dei dati.
I parametri ambientali da rilevare dovevano essere cinque:
- Temperatura e umidità dell’aria mediante un sensore DHT22;
- Intensità luminosa mediante una fotoresistenza;
- Concentrazione di CO2 con un sensore MH-Z14A;
- Livello sonoro mediante un microfono digitale amplificato.
All’inizio era infatti previsto l’utilizzo di un piccolo microfono amplificato. Il microfono è in grado
di tradurre la pressione sonora rilevata in una tensione. Questa tensione è poi letta da un microcon-
trollore su una porta analogica. Dopo una serie di test, si è capito che il microfono necessita di board
apposite per i campionamenti sonori, che permettano intervalli di lettura molto rapidi, inferiori al
millisecondo, per lunghi periodi di tempo, oltre ad un’elevata capacità computazionale per la gestione
di tutti i dati raccolti. L’enorme dispendio di energia e l’incompatibilità con la board NodeMCU, ha
portato alla sua eliminazione dal progetto.
Figura 4.3-2 Microfono digitale amplificato
Le funzioni per l’interrogazione del sensore DHT22 sono utilizzabili grazie alla libreria DHT.h.
Per il sensore MH-Z14, si voleva inizialmente sfruttare il collegamento digitale, che consiste nel leg-
gere la durata dello stato HIGH del pin. Il valore va poi inserito in una semplice formula per ottenere
la concentrazione di CO2 in parti per milione. La funzione necessaria è la pulseIn(), che sfortunata-
61
mente non è supportata dalla board. Si è allora optato per il collegamento analogico che, come pre-
cedentemente descritto, necessita di un partitore di tensione.
Anche la fotoresistenza comunica per via seriale, ma la board dispone di una sola porta analogica.
Per questo è stato aggiunto un multiplex analogico CD4051. Questo dispositivo mette a disposizione
otto porte analogiche ed è comandato da tre pin digitali. Il multiplex si comporta come uno switch,
permettendo il collegamento tra una delle sue otto porte e il pin analogico. La scelta della porta si
basa sulla combinazione tra stato HIGH e LOW dei tre pin digitali.
Tabella 4.3-1 Codice porte multiplex CD4051
Per permettere all’utilizzatore di conoscere lo stato di funzionamento del programma del dispositivo,
si utilizzano dei segnali luminosi. All’inizio era previsto l’utilizzo di un led rgb, cioè un componente
composto da tre led di diverso colore, azionabili con tre pin digitali, che permette l’utilizzo di un’am-
pia gamma di colori. Ma i pin digitali della board messi a disposizione dell’utente, cioè i pin marchiati
GPIO, non sono tutti realmente utilizzabili. Dei 13 pin inizialmente individuati, se ne possono in
realtà utilizzare solo 9. La mancanza di ingressi ha portato alla sostituzione del led rgb con un led
rosso, utilizzato per la segnalazione dei problemi legati al lettore di microSD. Viene poi utilizzato il
led, di colore blu, integrato nella board, per segnalare la ricerca della rete wifi e la conclusione del
progetto.
Figura 4.3-3 Led rgb con resistenze integrate
62
L’applicativo web permette di gestire i progetti di monitoraggio e i dispositivi.
Nella pagina personale dell’applicativo, è possibile interagire con i vecchi progetti o crearne di nuovi.
Per la creazione di un nuovo progetto di monitoraggio bisogna indicare un nome per il progetto,
l’intervallo delle letture, scegliere i dispositivi da utilizzare, l’ora di fine e d’inizio del progetto e
indicare se attivare la modalità offline. Tutti questi dati vanno inseriti nell’apposito form. Il tasto Start
provoca il caricamento della pagina e il passaggio dei dati inseriti. Il codice scritto in PHP si occupa
della loro elaborazione e, se i dati rispettano i criteri imposti, l’applicativo procede inserendo nel
database il nuovo progetto, toglie i dispositivi dalla lista di quelli utilizzabili e crea un file di testo per
ogni dispositivo con i parametri necessari al loro funzionamento. Infine, viene creata nel database
una nuova tabella per la raccolta dei dati.
Perché l’applicativo avvii il nuovo progetto, bisogna inserire tutti i dati richiesti e scegliere un nome
univoco, privo di spazi o caratteri speciali, e lungo al massimo 19 caratteri. Questi limiti vengono
imposti perché il nome andrà salvato nel database e inviato al dispositivo, ed entrambi sono molto
restrittivi sui caratteri utilizzabili. Sarà possibile ritardare l'inizio del nuovo test per 48 ore massimo,
mentre la durata del progetto, cioè la durata del monitoraggio, non potrà superare le 48 ore. Nel form
è stato inserito anche un campo di testo per l’aggiunta di un commento che accompagni il progetto.
Il file di testo creato contiene, oltre ai parametri necessari al funzionamento del dispositivo, un valore
che, quando passa da 0 a 1, indica al dispositivo che i dati riguardano un nuovo progetto.
Se non ci sono problemi, il progetto viene aggiunto nell’elenco dei progetti in corso. In caso di ne-
cessità, si può interrompere il progetto.
Al termine del monitoraggio, il progetto viene aggiunto allo storico dei progetti. Le azioni permesse
sui vecchi progetti sono la cancellazione del progetto, la visualizzazione dei dati e la loro esportazione
in formato .xls.
La funzione per la visualizzazione dei dati si occupa di creare una tabella con i dati del progetto
selezionato. Richiede al database l’intero contenuto della tabella del progetto, che viene restituita un
record alla volta. Ogni record è inserito poi in una nuova riga, ricostruendo così la tabella del database.
Viene realizzata anche una seconda tabella che contiene, per ogni dispositivo, il valore minimo, quello
massimo e la media dei valori per ogni grandezza, permettendo così una rapida visione d’insieme.
La gestione dei dati è affidata al database. È importante impostare correttamente il database, soprat-
tutto se si devono gestire grosse quantità di dati come nei monitoraggi. I database sono composti da
una serie di tabelle, ma non si occupano solo dello storage dei dati, ma permettono di fare delle query
che richiedono, dopo l’estrapolazione, di effettuare delle elaborazioni.
L’efficienza di un database dipende dalla struttura dei dati realizzata e dalla precisione della richiesta.
63
Ad esempio, è più efficiente e meno complicato chiedere al database di effettuare la media della
temperatura che scaricare tutti i dati e poi elaborarli.
I database MySQL supportano molte tipologie di variabili e si possono impostare campi che accettano
valori nulli o univoci. Tutte le tabelle dispongono di una chiave univoca, cioè un numero progressivo
che permette l’individuazione del record. Così, ogni volta che si aggiunge un record, anche se uguale
al precedente, sarà univoco. Visto l’enorme quantità di dati da gestire (un monitoraggio di 48ore, con
quattro dispositivi e intervalli di lettura di un minuto, genera 11520 record) si è optato per la creazione
di una tabella per ogni monitoraggio. Le tabelle utilizzare per la gestione dell’applicativo web sono
invece: tab-user, per i dati degli utenti; tab-device, con l’elenco dei dispositivi; tab-project, con
l’elenco dei progetti.
Figura 4.3-4 Diagramma relazioni database
L’applicativo permette anche la gestione dei dispositivi. Nella pagina Device è possibile visionare
l’elenco di tutti i dispositivi ed è presente la procedura per l’aggiunta di nuovi dispositivi.
Nell’elenco dei dispositivi sono indicate le informazioni seguenti: chi ha aggiunto il dispositivo, il
suo stato di utilizzo e la versione. Si potranno inoltre modificare le impostazioni della rete wifi (ssid
e password), le curve di calibrazione oppure eliminare il dispositivo.
64
Quando i dispositivi inviano i dati delle letture all’applicativo per l’inserimento nel database, vengono
prima processati e introdotti nelle equazioni delle curve di taratura. In questo modo si riduce il carico
computazionale nei dispositivi, permettendo però una calibrazione su misura per ogni device.
La procedura per l’aggiunta di nuovi dispositivi fornisce il nome univoco da associare al dispositivo.
È possibile aggiungere i dati della rete wifi ed è disponibile un campo di testo per eventuali note.
Bisogna inoltre indicare la versione, dove per versione 1.0 si intendono quei dispositivi realizzati
seguendo il Manuale di istruzioni e che comprendono tutti i sensori. Infatti, l’applicativo web non
blocca i dispositivi con caratteristiche differenti e sarà possibile utilizzare, ad esempio, versioni del
dispositivo che dispongono soltanto di un sensore DHT22.
Tutte queste informazioni, inoltre, permettono agli altri utenti di conoscere le caratteristiche dei vari
dispositivi esistenti. Sarà così possibile individuare i dispositivi idonei al proprio progetto di monito-
raggio e chiederli in prestito al proprietario, secondo una logica di condivisione delle attrezzature.
Comunque, sono stati messi a disposizione nella pagina Download alcuni documenti, come il Ma-
nuale di istruzioni, che permettono a chiunque di costruire in autonomia nuovi dispositivi.
Durante la fase di progettazione del dispositivo si è utilizzata una breadboard per il montaggio dei
componenti, lasciando per ultima la saldatura dei componenti sulle millefori, necessaria per avere dei
collegamenti stabili.
Figura 4.3-5 Primo prototipo del dispositivo su breadboard
65
Il NodeMCU richiede 5V in ingresso e supporta una tensione fino a 12V, grazie alla presenza del
regolatore di tensione incorporato nel PCB. La board può essere alimentata mediante una porta micro
USB oppure tramite i pin Vin e GND, che fanno parte dello stesso ramo del circuito della porta USB.
Anche se la board può occuparsi dell’alimentazione dei vari dispositivi, fornendo 3,3V sui pin o 4,5V
su Vin, ci si affida ad un power supply, a cui viene collegato un powerbank come fonte di energia.
Questo permette di ridurre il numero delle saldature perché il power supply dispone di un tasto per
l’accensione e di un led che indica lo stato di attività del dispositivo, componenti che andrebbero
aggiunti se si alimentasse la board dalla porta micro USB.
Il power supply può essere impostato per fornire 5V sia al NodeMCU che agli altri componenti,
ricordando però che l’alimentazione di componenti in serie comporta la riduzione della corrente di-
sponibile.
Figura 4.3-6 Alimentazione board NodeMCU
66
4.4 Funzionamento dei dispositivi
Gli utenti possono scegliere fra due modalità di funzionamento dei dispositivi: quella online e quella
offline.
Con la prima modalità (online) il dispositivo, dopo aver ricevuto le istruzioni per un nuovo progetto,
invierà i dati letti dai sensori all’applicativo web. Se non trova il server o la rete wifi, salverà i dati
sulla memoria esterna. Ad ogni lettura il dispositivo, cercando di contattare il server, si rimetterà alla
ricerca della rete wifi e, nel caso la trovi, provvederà a caricare tutti i dati di backup su internet prima
di riprendere il monitoraggio. Per non far arrivare tutti i dati insieme e rischiare di saturare il server,
viene inviato un record ogni secondo.
In questo modo il monitoraggio continua anche se viene perso il segnale wifi.
Con la seconda modalità (offline) il dispositivo, dopo aver ricevuto le istruzioni per un nuovo pro-
getto, non contatterà più il server e non si metterà alla ricerca della rete wifi fino a progetto concluso.
I dati letti dai sensori verranno salvati nella memoria esterna. Questo permette un notevole risparmio
della batteria, ma non si potranno consultare i dati in tempo reale, che, in assenza dell’operatore,
possono essere utilizzati anche come indicatori del corretto funzionamento dei dispositivi. Infatti, i
dispositivi smettono di inviare i dati in quattro situazioni: interruzione dell’alimentazione, problemi
nell’accesso alla rete wifi, danneggiamento o furto.
Qualunque sia la modalità, se all’accensione il dispositivo rileva la presenza di dati nel file di back-
up, procederà a caricarli online. Se entro cinque minuti non trova una connessione si bloccherà e alla
prossima accensione proverà ancora a caricare i dati online. Se invece trova la rete wifi e il server,
caricherà tutti i dati su internet. Questo meccanismo permette di non perdere nessuno dei dati salvati,
ma causa anche il blocco del monitoraggio. Infatti, per riprendere il monitoraggio, il dispositivo dovrà
essere spento e riacceso, così potrà contattare l’applicativo web e continuare il monitoraggio. In ogni
caso, se c’è un problema con l’alimentazione, come una batteria esaurita, è necessario l’intervento
umano e quindi serve una presenza fisica accanto al dispositivo.
67
5 Caso studio
68
5 Caso studio
Per mostrare il funzionamento del sistema realizzato, si è effettuato il monitoraggio di un ambiente.
I dati raccolti vengono poi restituiti sotto forma grafica e commentati.
Dati del rilievo:
- Aula 1.1, facoltà in Ingegneria Edile, Ravenna;
- Giorno: martedì 6 marzo 2018;
- Orario della lezione: dalle 9:30 alle 13:30;
- Numero di persone: 20-22;
- Intervallo fra le letture: 1 minuto;
- Impianto di riscaldamento: termosifoni;
- Impianto di ventilazione: assente;
- Condizioni climatiche medie: temperatura 5°C e umidità 85%.
Figura 5-1 Impostazioni del monitoraggio sull’applicativo web
Descrizione:
L’ambiente scelto per il monitoraggio è un’aula durante l’orario di lezione. Il monitoraggio è partito
alle 10:00 a lezione già iniziata e viene eseguito un secondo monitoraggio più corto al termine della
lezione per verificare l’effetto del ricambio d’aria sull’ambiente.
Il dispositivo è stato montato sul momento sopra una breadboard ed è stato alimentato mediante un
trasformatore collegato alla corrente elettrica. Posizionato in un angolo dell’aula, sopra un banco e a
lato di una delle due finestre, il dispositivo ha potuto lavorare senza essere disturbato. Infatti, è ne-
cessario non spostare o coprire i sensori durante l’attività di lettura. Dalle 11:08 alle 11:27 gli studenti
sono usciti per la pausa e sono state aperte le finestre e la porta per permettere il ricambio dell’aria.
Il monitoraggio è proseguito fino al termine delle lezioni, avvenuta verso le 13:25, e sono state ria-
perte le finestre. Alle 14:10, dopo la pausa pranzo, è stato ripreso il monitoraggio fino alle 14:30,
sempre nella condizione di finestre e porta aperte.
69
Figura 5-2 Aula oggetto del monitoraggio
Viene adesso riportata la tabella con i dati rilevati col monitoraggio e i grafici per facilitarne la lettura.
Tempo Temperatura (°C) Umidità (%) CO2 (ppm) Intensità luminosa (lux)
10:01 24,70 33,10 635 244
10:02 24,80 33,20 703 253
10:03 24,80 33,20 684 271
10:04 24,80 33,40 688 272
10:05 24,80 33,50 679 265
10:06 24,80 33,50 679 240
10:07 24,80 33,70 684 251
10:08 24,80 33,80 688 271
10:09 24,80 33,80 684 266
10:10 24,80 34,00 688 257
10:11 24,80 34,10 / 274
10:12 24,80 34,20 / 256
10:13 24,90 34,40 698 244
10:14 24,90 34,60 703 253
10:15 24,90 34,60 713 245
10:16 24,90 34,70 713 272
10:17 24,90 34,70 713 257
10:18 24,90 34,90 718 240
10:19 24,90 34,90 723 242
10:20 24,90 35,10 728 241
10:21 24,90 35,20 728 232
10:22 25,00 35,30 732 237
10:23 25,00 35,30 / 230
10:24 25,00 35,50 / 256
10:25 25,00 35,50 / 239
10:26 25,00 36,20 757 228
10:27 25,00 35,70 757 240
10:28 25,00 35,70 767 266
10:31 25,10 36,10 771 256
10:32 25,10 36,40 771 257
10:33 25,10 35,90 771 234
70
10:34 25,10 36,20 776 237
10:35 25,00 36,40 776 270
10:36 25,10 36,40 / 245
10:37 25,10 36,50 / 245
10:38 25,10 36,60 791 249
10:39 25,10 37,40 796 273
10:40 25,10 36,70 801 248
10:41 25,10 36,90 801 275
10:42 25,10 36,90 806 263
10:43 25,10 37,00 806 260
10:44 25,10 37,00 811 257
10:45 25,20 37,10 820 288
10:46 25,20 37,20 815 282
10:47 25,20 37,30 820 320
10:48 25,20 37,40 / 318
10:49 25,20 37,50 / 316
10:50 25,20 37,50 835 306
10:51 25,20 37,50 835 355
10:52 25,20 38,20 840 361
10:53 25,20 37,60 845 366
10:54 25,20 37,70 845 324
10:55 25,20 37,80 845 332
10:56 25,30 37,80 850 361
10:57 25,20 37,90 854 357
10:58 25,30 38,00 854 348
10:59 25,30 38,00 / 345
11:00 25,30 38,10 / 323
11:01 25,30 38,20 / 301
11:02 25,30 38,30 859 293
11:03 25,30 38,30 859 311
11:04 25,30 38,40 864 319
11:05 25,30 38,50 874 288
11:06 25,30 38,60 869 304
11:07 25,30 38,70 879 311
11:08 25,30 38,80 884 293
11:09 25,30 39,20 879 283
11:10 25,30 38,40 869 282
11:11 25,20 37,00 / 286
11:15 24,90 32,60 698 272
11:16 24,90 32,60 684 276
11:17 24,80 33,20 679 301
11:18 24,80 33,30 664 301
11:19 24,70 32,00 640 325
11:20 24,60 31,90 625 305
11:21 24,60 31,60 610 346
11:22 24,50 32,10 605 331
11:23 24,30 31,30 / 331
11:24 24,20 32,00 / 353
11:25 24,10 32,50 / 348
11:26 24,10 32,80 596 312
11:27 24,00 32,60 591 289
11:28 23,90 32,80 591 265
11:29 23,90 33,00 596 279
11:30 23,90 33,90 610 271
71
11:31 23,90 34,70 610 281
11:32 24,00 34,30 625 291
11:33 24,10 34,20 635 303
11:34 24,20 33,90 635 281
11:35 24,30 33,80 640 290
11:36 24,30 33,70 / 264
11:37 24,40 33,70 / 273
11:38 24,40 33,70 654 265
11:39 24,50 33,90 664 261
11:44 24,60 34,40 679 271
11:45 24,60 34,10 684 262
11:46 24,60 34,40 684 280
11:47 24,60 34,50 684 249
11:48 24,70 34,60 / 253
11:49 24,70 34,70 / 293
11:50 24,70 34,80 698 263
11:51 24,70 35,00 703 270
11:52 24,70 35,00 708 247
11:53 24,80 35,10 713 296
11:54 24,80 35,10 713 301
11:55 24,80 35,20 718 272
11:56 24,80 35,30 718 293
11:57 24,80 35,40 723 301
11:58 24,80 35,50 728 261
11:59 24,80 35,60 732 299
12:00 24,80 35,70 / 268
12:01 24,80 35,80 / 296
12:02 24,80 35,80 737 258
12:03 24,80 35,90 742 302
12:04 24,80 36,00 757 293
12:05 24,90 36,10 757 308
12:06 24,90 36,10 752 263
12:07 24,90 36,20 757 306
12:08 24,90 36,40 762 305
12:09 24,90 36,40 762 267
12:10 24,90 36,50 767 278
12:11 24,90 36,60 771 299
12:12 24,90 36,60 / 281
12:13 25,00 36,70 / 269
12:14 25,00 36,80 / 268
12:15 24,90 36,90 786 285
12:16 24,90 37,00 791 263
12:17 24,90 37,00 791 308
12:19 24,90 37,20 801 302
12:20 25,00 37,30 806 290
12:21 25,00 37,30 806 264
12:22 25,00 37,40 811 281
12:23 25,00 38,10 811 291
12:24 25,00 37,50 / 309
12:25 25,00 37,60 / 311
12:26 25,00 37,60 / 316
12:27 25,00 37,70 825 299
12:28 25,00 37,80 830 281
12:29 25,10 37,80 830 313
72
12:30 25,00 37,90 830 317
12:31 25,00 38,00 830 318
12:32 25,10 38,10 840 281
12:33 25,10 38,20 840 332
12:34 25,10 38,20 850 299
12:35 25,10 38,30 854 357
12:36 25,10 39,00 854 320
12:37 25,10 38,40 / 357
12:38 25,10 38,50 / 331
12:39 25,10 38,40 859 387
12:40 25,10 38,50 859 379
12:41 25,10 38,60 869 357
12:42 25,20 38,70 869 345
12:43 25,20 38,80 869 340
12:44 25,20 38,80 879 346
12:45 25,20 38,90 889 323
12:46 25,20 38,90 884 309
12:47 25,20 38,90 884 350
12:48 25,20 39,00 / 303
12:49 25,20 39,10 / 330
12:50 25,20 39,20 / 299
12:51 25,20 39,30 898 323
12:52 25,20 39,30 898 317
12:55 25,20 39,60 913 322
12:56 25,20 39,70 918 323
12:57 25,20 39,70 918 318
12:58 25,20 39,70 923 295
12:59 25,20 39,80 923 319
13:00 25,20 39,80 / 306
13:01 25,20 39,90 / 300
13:02 25,20 40,00 933 289
13:03 25,20 40,10 938 330
13:04 25,20 40,10 942 286
13:05 25,20 40,20 942 322
13:06 25,30 40,30 952 332
13:07 25,30 40,40 952 362
13:08 25,30 40,40 962 373
13:09 25,30 40,50 957 322
13:10 25,30 40,50 957 362
13:11 25,30 40,60 967 332
13:12 25,30 40,70 / 325
13:13 25,30 40,60 / 373
13:14 25,30 40,70 972 372
13:15 25,30 40,80 977 332
13:16 25,30 40,90 981 376
13:17 25,30 40,90 981 372
13:18 25,30 41,00 981 373
13:19 25,30 41,10 981 374
13:20 25,40 41,20 986 372
13:21 25,30 41,20 986 383
13:22 25,30 41,20 996 384
13:23 25,30 41,40 / 376
13:24 25,30 41,40 / 357
13:25 25,40 41,50 / 381
73
13:26 25,40 41,50 1011 394
13:27 25,40 41,50 1011 406
14:10 22,6 34,7 542 315
14:11 22,7 33,9 547 316
14:12 22,7 33,9 542 355
14:13 22,7 33,8 542 352
14:14 22,7 34 / 349
14:15 22,8 34,3 / 352
14:16 22,8 34,3 562 297
14:17 22,7 33,9 562 294
14:18 22,7 33,9 557 312
14:19 22,7 34,2 557 263
14:20 22,7 35 557 306
14:21 22,7 34,2 557 306
14:22 22,7 34,2 562 302
14:23 22,6 33,9 557 256
14:24 22,6 33,7 552 289
14:25 22,6 34,1 552 270
14:26 22,6 34,2 552 311
14:27 22,6 34,2 / 278
14:28 22,6 34,9 / 289
14:29 22,6 34,9 / 317
14:30 22,5 35,3 566 275
Una volta terminato il monitoraggio e scaricati i dati, si è provveduto a ripulirli da tutte le anomalie
che non sono riconducibili alle variabili ambientali, come i picchi spuri della concentrazione di CO2,
riconducibili all’architettura del sensore. Alcuni record sono stati invece eliminati perché i valori della
temperatura e dell’umidità non sono stati riportati, probabilmente a causa di un collegamento elettrico
difettoso tra il sensore DHT22 e la board.
Di seguito viene riportato un grafico per mostrare l’andamento della temperatura e dell’umidità, uno
per l’andamento della concentrazione di CO2 in relazione alla temperatura, e un grafico per mostrare
la variazione dell’intensità luminosa. Tutti i grafici comprendono il monitoraggio effettuato durante
la lezione e quello effettuato dopo la pausa pranzo.
74
Figura 5-3 Grafico temperatura e umidità
Il primo grafico mostra chiaramente l’aumento costante della temperatura e dell’umidità durante lo
svolgimento della lezione provocato dall’attività metabolica umana e dall’impianto di riscaldamento.
Si può anche notare una variazione molto accentuata durante il periodo della pausa, dove l’apertura
delle finestre e della porta ha permesso un ricambio d’aria sufficiente a riportare la situazione ai valori
iniziali. Mediante il grafico possiamo dire, per questo ambiente, che 20 persone comportano un au-
mento di circa 1°C della temperatura in due ore, e un aumento dell’umidità di circa il 10%.
30,00
35,00
40,00
45,00
50,00
55,00
60,00
20,00
21,00
22,00
23,00
24,00
25,00
26,00
10
:01
10
:08
10
:15
10
:22
10
:31
10
:38
10
:45
10
:52
10
:59
11
:06
11
:16
11
:23
11
:30
11
:37
11
:48
11
:55
12
:02
12
:09
12
:16
12
:24
12
:31
12
:38
12
:45
12
:52
13
:01
13
:08
13
:15
13
:22
14
:10
14
:17
14
:24
Um
idit
à (%
)
Tem
per
atu
ra (
°C)
Tempo
Temperatura e umidità
Temperatura (°C) Umidita' (%)
75
Figura 5-4 Grafico concentrazione CO2 e temperatura
Il secondo grafico, concentrazione di CO2 e temperatura, conferma le ipotesi del primo. Infatti, eli-
minando i picchi anomali di CO2, l’andamento delle due curve è coerente. Avremo quindi un aumento
costante durante le ore di lezione e una variazione repentina durante la pausa. Inoltre, possiamo dire
che, nell’arco di due ore in quell’ambiente, 20 persone comportano un aumento di circa 300ppm di
CO2. Entrambi i grafici ci dimostrano che l’abitudine di aprire le finestre durante le pause, è suffi-
ciente per riportare i parametri ambientali ai valori iniziali, cioè annullare gli effetti del metabolismo
umano sull’ambiente.
20,00
21,00
22,00
23,00
24,00
25,00
26,00
400
500
600
700
800
900
1000
1100
10
:01
10
:07
10
:13
10
:19
10
:25
10
:33
10
:39
10
:45
10
:51
10
:57
11
:03
11
:09
11
:18
11
:24
11
:30
11
:36
11
:46
11
:52
11
:58
12
:04
12
:10
12
:16
12
:23
12
:29
12
:35
12
:41
12
:47
12
:55
13
:01
13
:07
13
:13
13
:19
13
:25
14
:12
14
:18
14
:24
14
:30
Tem
per
atu
ra (
°C)
Co
nce
ntr
azio
ne
CO
2 (
pp
m)
Tempo
Temperatura e CO2
CO2 (ppm) Temperatura (°C)
76
Figura 5-5 Grafico intensità luminosa
Il terzo grafico riguarda la variazione nel tempo dell’intensità luminosa, espressa in lux.
Il valore medio misurato dell’illuminamento vale circa 300 lux, un valore un po' basso per il tipo di
attività svolta che, secondo la tabella 2.5 –1, dovrebbe rientrare tra i 300 e i 750 lux.
Il grafico mostra un andamento vario e confuso, che non permette di capire lo stato di illuminamento
dell’ambiente. Si può solo supporre che la vicinanza ad una delle due finestre e le condizioni clima-
tiche di quel giorno, abbiano influenzato le letture.
0
100
200
300
400
500
600
700
8001
0:0
1
10
:07
10
:13
10
:19
10
:25
10
:33
10
:39
10
:45
10
:51
10
:57
11
:03
11
:09
11
:18
11
:24
11
:30
11
:36
11
:46
11
:52
11
:58
12
:04
12
:10
12
:16
12
:23
12
:29
12
:35
12
:41
12
:47
12
:55
13
:01
13
:07
13
:13
13
:19
13
:25
14
:12
14
:18
14
:24
14
:30
Inte
nsi
tà lu
min
osa
(lu
x)
Tempo
Intensità luminosa
77
Si è deciso di effettuare un secondo rilievo, sullo stesso ambiente, per verificare le ipotesi fatte me-
diante la consultazione delle curve.
Dati del rilievo:
- Aula 1.1, facoltà in Ingegneria Edile, Ravenna;
- Giorno: giovedì 8 marzo 2018;
- Orario della lezione: dalle 9:30 alle 12:30;
- Numero di persone: 24;
- Intervallo fra le letture: 1 minuto;
- Impianto di riscaldamento: termosifoni;
- Impianto di ventilazione: assente;
- Condizioni climatiche medie: temperatura 12°C e umidità 60%.
Descrizione:
Il monitoraggio è partito alle 10:00 a lezione già iniziata e le finestre sono state chiuse da circa 10
minuti. Il dispositivo è stato montato sul momento sopra una breadboard ed è stato alimentato me-
diante un powerbank, così da non venir spostato in caso di urto con il cavo di alimentazione. Posizio-
nato in un angolo dell’aula, nel lato opposto rispetto al primo rilievo, sopra un banco e a lato della
porta, il dispositivo ha potuto lavorare senza essere disturbato. Dalle 11:16 alle 11:36 gli studenti sono
usciti per la pausa e sono state aperte le finestre e la porta per permettere il ricambio dell’aria. Il
monitoraggio è proseguito fino al termine delle lezioni, avvenuta verso le 12:20, e sono state riaperte
le finestre.
78
Figura 5-6 Grafico temperatura e umidità
I valori della temperatura e dell’umidità crescono costantemente nella prima ora, con una variazione
di temperatura di oltre un grado e un aumento dell’umidità intorno al 5%. L’apertura delle finestre
durante la pausa causa una brusca diminuzione dei parametri ambientali ma si può assistere, nell’ora
successiva, ad un rapido aumento di temperatura, che varia circa di 2°C, il doppio rispetto alla prima
ora di monitoraggio e quattro volte la variazione avuta durante il precedente monitoraggio. Mentre
l’umidità rimane su una variazione di circa il 5% in un’ora, valore che conferma l’andamento visto
nel precedente monitoraggio.
30,00
35,00
40,00
45,00
50,00
55,00
60,00
20,0
21,0
22,0
23,0
24,0
25,0
26,01
0:0
1
10
:08
10
:13
10
:18
10
:23
10
:28
10
:33
10
:38
10
:45
10
:50
10
:55
11
:00
11
:05
11
:10
11
:15
11
:21
11
:26
11
:31
11
:36
11
:41
11
:46
11
:52
11
:57
12
:02
12
:07
12
:12
12
:17
12
:22
12
:27
12
:33
Um
idit
à (%
)
Tem
per
atu
ra (
°C)
Tempo
Temperatura e umidità
Temperatura (°C) Umidità (%)
79
Figura 5-7 Grafico concentrazione di CO2 e temperatura
Anche in questo caso, è possibile notare un aumento costante della concentrazione di CO2, che nella
prima ora è quantificabile in una variazione di 300 ppm, un valore doppio rispetto a quello rilevato
nel primo monitoraggio.
20,0
21,0
22,0
23,0
24,0
25,0
26,0
400
500
600
700
800
900
1000
1100
10
:01
10
:08
10
:13
10
:18
10
:23
10
:28
10
:33
10
:38
10
:45
10
:50
10
:55
11
:00
11
:05
11
:10
11
:15
11
:21
11
:26
11
:31
11
:36
11
:41
11
:46
11
:52
11
:57
12
:02
12
:07
12
:12
12
:17
12
:22
12
:27
12
:33
Tem
per
atu
ra (
°C)
Co
nce
ntr
azio
ne
CO
2 (
pp
m)
Tempo
Concentrazione di CO2 e temperatura
CO2 (ppm) Temperatura (°C)
80
Conclusioni
Il benessere ambientale deve essere, per il progettista, un argomento da tenere sempre in
considerazione. Oggi la tecnologia ci permette di ottenere quel controllo sull’ambiente che può fare
la differenza tra il vivere e lo stare bene. Il monitoraggio degli ambienti è quindi un ambito di ricerca
da perseguire e incentivare. Analogamente, la possibilità di realizzare un sistema di monitoraggio
“home made” è un’opportunità che vale la pena sviluppare e approfondire.
Il lavoro di tesi ha avuto proprio come scopo quello di indagare e valutare la fattibilità di un sistema
di acquisizione dei parametri ambientali caratteristici del comfort all’interno di un ambiente chiuso.
Sono stati affrontati tutti gli aspetti tipici della realizzazione di un prototipo per la misura della
temperatura, dell’umidità, della CO2 e dell’illuminazione.
La progettazione del sistema di monitoraggio ha richiesto comunque alcuni compromessi. Infatti, per
motivi di budget o limiti tecnici/tecnologici non è stato possibile implementare tutti i sensori che
avrebbero potuto rendere il progetto ancora più completo. Infatti, la possibilità di analizzare anche il
rumore indoor avrebbe richiesto una capacità di calcolo decisamente superiore a quella disponibile
su di una board NodeMCU, da qui l’idea di abbandonare l’acquisizione di questo parametro
ambientale. Analogamente la possibilità di usare reti wifi con protocolli di sicurezza aziendali,
avrebbe richiesto degli shield wifi appositi, che avrebbero fatto lievitare troppo i costi del prototipo.
Le scelte effettuate comunque non pregiudicano il funzionamento del sistema e che questo possa
essere arricchito nel tempo con nuove funzionalità.
Il prototipo permette di rilevare dati ambientali scelti dall’utente, adattare con rapidità le curve di
taratura a diverse tipologie di sensori, montare i dispositivi secondo i propri criteri. La libertà è quindi
la caratteristica più rilevante del sistema. Avere a disposizione il codice sorgente e poter intervenire
direttamente e a piacimento sulla realizzazione, permette di creare un prodotto su misura per
l’acquisizione dei dati.
Un possibile sviluppo futuro del sistema di monitoraggio potrebbe essere dato dalla combinazione di
un Arduino Uno con un chip wifi. Anche se la board NodeMCU utilizzata è autonoma come capacità
di elaborazione, il collegamento di tanti componenti esterni può essere gestito con maggior praticità
se affidato ad un altro microcontrollore, avendo così una scheda dedicata alla raccolta dei dati e
un’altra che si occupa della comunicazione.
81
Lo sviluppo di prototipi, mediante Arduino, permette sicuramente una certa autonomia nella
progettazione. Anche con modeste basi in elettronica, è possibile creare semplici sistemi per la
raccolta e la gestione dei dati. Discorso diverso va fatto nel caso in cui si voglia aggiungere nei propri
progetti una connessione a internet. Ottenere una connessione dati stabile non è scontato e richiede
tutta una serie di competenze informatiche che vanno dalla progettazione di database
all’implementazione della comunicazione http. Gli ambiti di studio richiesti sono svariati e i sistemi
hardware che contemplano l’aggiunta di connessione a internet comportano un aumento della
complessità del sistema.
Nel lavoro svolto durante la tesi, si è potuto sviluppare un sistema per il monitoraggio ambientale
economico, compatto, di facile utilizzo, gestibile da remoto e che permette il collegamento di un
numero praticamente infinito di datalogger.
82
Bibliografia
MONCADA LO GIUDICE-DE SANTOLI, 19996
Gino Moncada Lo Giudice, Livio De Santoli, Fisica tecnica ambientale. Benessere termico, acustico
e visivo, volume III, Borghetto Lodigiano, Ambrosiana, 2011
MONCADA LO GIUDICE-COPPI, 19974
Gino Moncada Lo Giudice, Massimo Coppi, Benessere termico e qualità dell’aria interna,
Borghetto Lodigiano, Ambrosiana, 2006
PERETTI, 2016
Clara Peretti, Monitorare per migliorare. Verifica e ottimizzazione del sistema edificio-impianto,
Vicenza, Utet, 2016
Risorse web
https://www.arduino.cc | Arduino
https://www.arduino.cc/reference/en
https://forum.arduino.cc
https://emanuelebuchicchio.wordpress.com | Blog Emanuele Buchicchio
https://emanuelebuchicchio.wordpress.com/2017/07/01/alimentazione-esterna-per-schede-nodemcu
https://cityos.io | Cityos foundation
https://cityos.io/Best-CO2-meter-for-indoor-gardening
https://github.com | Github
https://github.com/esp8266
http://www.html.it | HTML.it
http://www.html.it/guide/guida-html
http://www.html.it/guide/guida-css3
83
https://www.kane.co.uk | Kane
https://www.kane.co.uk/knowledge-centre/what-are-safe-levels-of-co-and-co2-in-rooms
https://www.logicaprogrammabile.it | Logicaprogrammabile.it
https://www.logicaprogrammabile.it/tutorial-arduino-time-timealarms-ds1307rtc
http://www.maffucci.it | Michele Maffucci
http://www.maffucci.it/2017/05/13/espandere-gli-io-analogici-di-arduino
http://www.minambiente.it | Ministero dell’ambiente
http://www.minambiente.it/sites/default/files/archivio/allegati/GPP/allegato_tec_CAMedilizia.pdf
https://frightanic.com | My2cents
https://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards
http://php.net | PHP.net
http://www.sciamannalucio.it | Sciamanna Lucio
http://www.sciamannalucio.it/come-usare-arduino-e-le-fotoresistenze-ldr
http://www.settorezero.com | SottoZero.com
http://www.settorezero.com/wordpress/il-modulo-esp8266-e-il-nodemcu-devkit-parte-1-
introduzione-e-preparazione-ambiente-di-sviluppo-con-arduino-ide
https://www.w3schools.com | w3schools.com
1
ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA
SCUOLA DI INGEGNERIA E ARCHITETTURA
Corso di laurea in Ingegneria Edile
Tesi di laurea in Fisica Tecnica e Impianti
SMART DEVICE PER IL MONITORAGGIO
AMBIENTALE
Allegato I°
Manuale di istruzioni
Tutor accademico Presentata da
Luca Barbaresi Daniele Focchi
Sessione Anno Accademico 2016-2017
2
Indice
1- Introduzione all'utilizzo pag. 3
2- Dati tecnici pag. 4
2.1- Datasheet dei sensori pag. 4
2.2- Altri componenti hardware pag. 5
3- Guida all'utilizzo dell'applicativo web pag. 7
3.1- Registrazione pag. 7
3.2- Panoramica delle attività pag. 8
3.3- Procedura per creare un nuovo progetto pag. 13
3.4- Procedura per aggiungere un nuovo dispositivo pag. 15
3.5- Procedura per attivare un Hotspot mobile pag. 16
4- Guida alla realizzazione di un dispositivo pag. 17
4.1- Introduzione all'utilizzo dell'IDE di Arduino pag. 17
4.2- Montaggio hardware pag. 20
4.3- Procedure di debugging pag. 22
5- Avvisi di errore e raccomandazioni pag. 24
5.1- Segnalazioni visive e di errore pag. 24
5.2- Raccomandazioni finali pag. 25
3
1 Introduzione all'utilizzo
Questo manuale riguarda l'utilizzo del sistema di monitoraggio ambientale, di proprietà dell'Alma
Mater Studiorum, realizzato dallo studente Focchi Daniele per la tesi di laurea "Smart device per il
monitoraggio ambientale".
Il sistema, composto da un applicativo web e dispositivi hardware comprensivi di sensori per le letture
ambientali, permette una facile raccolta e visualizzazione di dati ambientali per un utilizzo rapido e
autonomo da parte del docente o dello studente. Il sistema di lettura è automatizzato e configurabile
mediante pratico applicativo web. Permette inoltre la gestione di più dispositivi di lettura
contemporaneamente e di più utenti simultanei.
I dispositivi comprendono:
- un sensore DHT22 per la lettura di temperatura e umidità relativa;
- un sensore MH – z14A per la lettura della concentrazione di CO2;
- una fotoresistenza per la lettura dell'intensità luminosa.
I dispositivi sono comandati da una board NodeMCU Amica, basata su un chip wifi EPS8266 che si
occupa dell'esecuzione delle letture e della comunicazione col server. Vengono alimentati mediante
powerbank o altra fonte di energia che permetta un’erogazione di 5V e 1A. Presentano anche un
lettore di microSD per il backup delle letture dei sensori in assenza di segnale wifi.
Il principio che sta alla base di questo sistema per il monitoraggio ambientale è quello di dare a tutti
gli utenti abilitati la possibilità di realizzare i propri dispositivi di lettura, e di raccogliere i dati
mediante un apposito applicativo web. Per tale motivo, viene fornito liberamente il codice dei
dispositivi e il seguente manuale, che guiderà gli utenti durante il loro primo progetto.
4
2 Dati tecnici
2.1 Datasheet dei sensori
Di seguito sono riportati i dati principali presi dai datasheet dei sensori. I datasheet completi possono
essere scaricati dalla pagina "download" dell'applicativo web.
Sensore DHT 22
Power supply 3.3 – 6V DC
Output signal Digital signal
Operating range temperature -40 ⁓ 80 °C
Operating range humidity 0 ⁓ 100 % RH
Accuraty temperature < +/- 0,5 °C
Accuraty humidity +/- 2% RH
Sensitivity temperature 0,1 °C
Sensitivity humidity 0,1% RH
Sensing period ⁓2s
Dimensions 22*28*5 mm (max)
Fig. 2.1-1 Sensore DHT22
Sensore MH – z14A
Power supply 4,5 ⁓ 5,5V DC
Output signal PWM / UART / 0,4-2V DC
Measuring range 0 ⁓ 2000 ppm / 0 ⁓ 5000 ppm
Accuraty carbon dioxide +/- 50 ppm
Working temperature 0 ⁓ 50 °C
Working humidity 0 ⁓ 95 % RH
Measuring range 0 ⁓ 5% VOL optional
Average current < 85 mA
Dimensions 57,5*34,7*16 mm
Fig. 2.1-2 Sensore MH - Z14A
Fotoresistenza
Max voltage 150V
Light resistance 5-10 kΩ
Dark resistance 0,5 MΩ
Response time 30 ms
Environmental temperature -30 ⁓ +70 °C
Spectrum peak value 540 nm
Dimensions ᴓ5 mm
Fig. 2.1-3 Fotoresistenza
5
2.2 Altri componenti hardware
Board NodeMCU Amica
Fig. 2.2-1 Board NodeMCU e pins map
Microcontroller ESP-12E
Operating voltage 3,3V
Input voltage 5 - 12V
Digital I/O pins 10 (GPIO)
Analogic input pins ADC (10 bit - 1V)
Communication protocols SPI / I2C / UART
Communication wifi IEEE 802.11 b/g/n
Dimensions 49*24.5*13 mm
Lettore microSD
Componente che dialoga con la board mediante comunicazione SPI. Necessita di una microSD,
formattata in modalità FAT32. Voltaggio di ingresso 5V.
CD4051
Multiplex analogico che mette a disposizione 8 pin ADC. Necessità di 3 pin digitali per impostare il
pin ADC da leggere e di un pin analogico. Il voltaggio e l'alimentazione sono gli stessi del pin
analogico della board a cui è collegato.
6
Modulo per l'alimentazione
Il sistema richiede in ingresso 5V ed almeno 1A. Sarà necessario alimentare sia la board NodeMCU
che gli altri componenti. Nel caso in cui l'alimentazione eroghi già 5V, sarà sufficiente introdurre un
interruttore per consentire l'accensione del dispositivo. Altrimenti bisognerà dotarsi di un regolatore
di tensione 7805, opportunatamente dimensionato. Per evitare ulteriori saldature o dimensionamenti
errati del circuito di alimentazione, si consiglia l'utilizzo di shield denominate power supply. Esse
normalmente dispongono una porta USB, un ingresso per un trasformatore, un tasto di accensione e
la possibilità di scegliere la corrente in uscita tra i 3 e i 5V. Inoltre, sono compatibili con le breadboard.
Fig.2.2-3 Power supply Fig.2.2-4 Regolatore di tensione
Nota:
Nel caso di problemi con la lettura dei sensori o nell'accesso alla microSD, controllare mediante
multimetro il voltaggio e l'amperaggio del circuito elettrico.
Nella sezione "download" sono presenti i datasheet completi e gli sketch di esempio per testare il
funzionamento dei singoli componenti.
Prestare attenzione nel caso in cui si voglia collegare il dispositivo alla presa di corrente.
7
3 Guida all'utilizzo dell'applicativo web
I dispositivi per il monitoraggio ambientale sono gestiti mediante applicativo web, il quale si occupa
anche della gestione dei dati raccolti. La documentazione è accessibile liberamente a tutti nella
sezione Download, ma per l'utilizzo dell'applicativo sarà necessario prima registrarsi.
3.1 Registrazione
Dalla Home page, spostare il puntatore del mouse in alto
a destra sopra il simbolo
Alla comparsa del menù, cliccare sulla voce "login".
La pagina adibita al login permette anche la registrazione dei
nuovi utenti.
Inserire quindi un'e-mail valida, necessaria per essere contattati
e per contattare gli amministratori in caso di problemi. Scegliere
una password e inserirla una seconda volta per controllare che
non ci siano errori.
Fig. 3.1-1 Schermata login applicativo web
Nota:
Il sito non dispone di un sistema per il recupero delle password.
Il sito non utilizzerà le informazioni per fini commerciali.
Il sito e le password non sono protetti mediante crittografia.
La funzione di logout è raggiungibile posizionando il puntatore del mouse in alto a destra sul
simbolo . Alla comparsa del menù, cliccare sulla voce "logout". Verrà quindi caricata la pagina
per il login.
8
3.2 Panoramica delle attività
Una volta effettuato il login, si accederà alla pagina utente, che comprende:
- lo storico dei progetti;
- i progetti in corso;
- l'inizio di nuovi progetti;
- grafici e tabelle.
Lo storico dei progetti elencherà tutti i vecchi progetti, indicandone: il nome, la data di inizio e fine,
i dispositivi utilizzati e l'intervallo delle letture. Sarà possibile: visualizzare la tabella con le letture,
esportare la tabella in formato xls per il caricamento dei dati su excel, o infine cancellare il progetto
con tutti i suoi dati.
La sezione dei progetti in corso mostra tutti i progetti non ancora terminati. I dati mostrati e le opzioni
sono gli stessi della sezione dello storico dei progetti, a differenza dell'opzione di cancellazione, che
qui è sostituita con l'opzione "interrompi" e causa solo l'interruzione del progetto, il quale sarà poi
considerato concluso e visualizzabile nello storico dei progetti.
Fig. 3.2-1 Tabella progetti in corso
Nota:
L'interruzione di un progetto non causerà il blocco dei dispositivi. Essi infatti continueranno la loro
funzione di monitoraggio finchè non raggiungeranno l'ora di fine progetto originale. Sarà dunque
necessario spegnere i dispositivi manualmente.
Ricorda:
Una volta interrotto un progetto o raggiunta l'ora di fine del progetto bisogna ricordarsi di spegnere i
dispositivi manualmente.
9
La sezione adibita ai nuovi progetti permette la scelta dei parametri fondamentali per il
funzionamento dei dispositivi. Il nome del progetto serve per identificare rapidamente il
monitoraggio, ma deve essere privo di spazi e senza caratteri speciali. La lunghezza massima
consentita è di 18 caratteri. Per inserire una descrizione più dettagliata del progetto sarà necessario
utilizzare il campo di testo messo a disposizione. L'intervallo delle letture è il tempo che passerà tra
una lettura e l'altra dei sensori. Si potrà selezionare un valore tra quelli presenti nell'elenco a tendina.
Bisognerà indicare l'ora d'inizio e di fine del nuovo progetto. Sarà possibile ritardare l'inizio del nuovo
test per 48 ore massimo. Inoltre, la durata del progetto, cioè la durata del monitoraggio, non potrà
superare le 48 ore.
La scelta dei dispositivi permetterà di decidere quanti e quali dispositivi dovranno partecipare al
nuovo progetto. Non saranno mostrati i dispositivi presenti in progetti in corso di un qualsiasi utente.
La spunta per la modalità offline permette di attivare o disattivare la modalità offline.
Nota:
Tutti i campi, tranne quello di testo, sono obbligatori per
l'inizio di un nuovo test.
Nell'elenco dei dispositivi utilizzabili saranno presenti
tutti i dispositivi a prescindere dal proprietario. Questo
permetterà di verificare quali dispositivi sono
disponibili e sarà poi possibile, in caso di necessità,
contattare il proprietario per poterli chiedere in prestito.
Se non si vede un certo dispositivo fra quelli disponibili,
provare a ricaricare la pagina.
Fig. 3.2-2 Aggiunta di un nuovo progetto
La sezione "grafici e tabelle" mostra tutti i dati ricevuti dai dispositivi. In ogni record vengono
mostrati: il dispositivo, l'orario della lettura, il valore della temperatura, dell'umidità, della
concentrazione di CO2 e dell'intensità luminosa.
Per visualizzare i dati è necessario cliccare sull'icona di un progetto. Saranno indicati per ogni
dispositivo anche dei valori riassuntivi, attraverso l'indicazione dei valori minimi, massimi e le medie
della temperatura, dell'umidità, della concentrazione di CO2 e dell'intensità luminosa del progetto
selezionato.
10
La pagina per la gestione dei dispositivi è raggiungibile posizionandosi col puntatore del
mouse sull'icona : attivato il menu a tendina, sarà possibile selezionare la voce "device".
La pagina per la gestione dei dispositivi comprende due sezioni:
- aggiungi un nuovo dispositivo;
- elenco dei dispositivi.
Fig. 3.2-3 Procedura per l'aggiunta di un nuovo dispositivo
La sezione per l'aggiunta di un nuovo dispositivo fornisce un nome univoco da assegnare al
dispositivo: ad esso ci si dovrà riferire per dialogare con l'applicativo web al fine di generare il file di
configurazione necessario al suo funzionamento.
La procedura permette l'inserimento di una descrizione che favorisca il riconoscimento del
dispositivo, indicandone ad esempio le particolarità. Vanno impostati il nome e la password della rete
wifi a cui si intende collegare il dispositivo. Va poi indicata la versione del dispositivo: nel caso il
dispositivo sia stato realizzato seguendo le indicazioni della seguente guida e siano presenti tutti i
sensori previsti, il dispositivo rientrerà nella "versione 1.0". Altrimenti sarà necessario togliere la
spunta per indicare che il dispositivo da aggiungere presenta caratteristiche differenti. Tali differenze
potranno essere indicate nel box testo precedentemente segnalato.
Nota:
Il nome e la password della rete wifi potranno essere modificati successivamente, per poter così
adeguare i dispositivi alle situazioni future.
I dispositivi potranno collegarsi soltanto a reti wifi di tipo WPA2. Non è possibile quindi collegarsi a
reti con crittografia WEP o di tipo WPA2 Enterprise.
Alcune reti wifi WPA2 potrebbero impedire il collegamento dei dispositivi a causa di firewall o altri
sistemi di sicurezza interni alla rete. Si consiglia quindi l'utilizzo della modalità hotspot dei cellulari
per la generazione di una rete wifi.
11
L'elenco dei dispositivi mostra i dati di configurazione per ogni dispositivo, sotto forma di tabella.
Sono indicati: il nome del dispositivo, lo stato del dispositivo legato alla sua presenza a un progetto,
la versione del dispositivo e il nome dell'utente che ha aggiunto il dispositivo. È disponibile anche
una funzione per la cancellazione del dispositivo. Sarà possibile inoltre modificare le impostazioni
della rete wifi.
Nota:
I dispositivi con stato "non disponibile" non
possono essere cancellati finché non tornano
disponibili, quindi al termine del progetto in cui
sono coinvolti.
Fig. 3.2-4 Tabella dispositivo DP25
L'area "curve dei sensori" permette la gestione dei sensori del dispositivo. I dati letti dal dispositivo,
prima di essere caricati sul database ed essere mostrati all'utente, vengono modificati seguendo le
curve di calibrazione del dispositivo.
Il sensore DHT22, mediante la porta digitale, fornisce già il valore della temperatura in °C e
dell'umidità in %. Le curve scelte per descrivere la temperatura e l'umidità sono delle rette, con in
ascissa il valore letto dal sensore e in ordinata il valore da registrare nel database. Nel caso i valori
della temperatura letti superino i 99°C o scendano sotto i -5°C, il valore riportato nel database sarà
rispettivamente di 99°C e -5°C. Nel caso i valori dell'umidità letti superino il 99% o scendano sotto
l'1%, il valore riportato nel database sarà rispettivamente del 99% e del 1%.
12
La fotoresistenza e il sensore MH-Z14A sono collegati alla porta analogica a 10bit della board
NodeMCU, la quale restituirà un valore in bit che va da 0 a 1024.
La calibrazione della fotoresitenza, effettuata mediante associazione del valore in bit restituito con i
valori letti da un luxmetro, permette di ottenere una curva di tipo esponenziale. In ascissa si avranno
i valori in bit e in ordinata i valori in lux da inserire nel database.
Il sensore MH-Z14A presenta una calibrazione di fabbrica. Restituisce il valore in ppm della CO2
mediante una tensione con un range di 0,4-2V. Tale range è ridotto a 0,2-1V mediante un partitore di
tensione per adeguarsi al range di tensione leggibile dall'ingresso analogico della board NodeMCU.
Sono necessarie quindi due curve: la prima permette di ottenere dal valore in bit il valore in volt e la
seconda permette di passare dai volt ai ppm. I parametri su cui l'utente può intervenire sono quelli
che caratterizzano il tipo di sensore: il voltaggio in ingresso minimo, quello massimo e il livello
massimo di ppm letti dal sensore.
13
3.3 Procedura per creare un nuovo progetto
Modalità online
Permette di impostare un progetto in modo che i dispositivi, una volta ricevuti i dati di progetto,
carichino in tempo reale i dati sull'applicativo web. Questa modalità necessita di una connessione wifi
attiva per tutta la durata del progetto. Nell'eventualità in cui si perda la connessione per un periodo
più o meno lungo, ad ogni lettura dei sensori i dispositivi proveranno a collegarsi alla rete wifi, e nel
caso di fallimento le letture saranno salvate in locale sulla microSD. Appena i dispositivi ritroveranno
la connessione, verranno caricati sull'applicativo web i dati salvati in locale.
Procedura per la modalità online:
- Impostare i dati per il progetto;
- Lasciare la modalità offline disattiva e cliccare su Start;
- Accendere i dispositivi e attivare una connessione wifi a cui essi possano agganciarsi;
- I dispositivi setteranno i dati di progetto e inizieranno le letture all'ora stabilita;
- Ad ogni intervallo di lettura dei sensori, i dispositivi si collegheranno alla rete wifi per
raggiungere l'applicativo web e caricare i dati;
- Sull'applicativo web cliccare su mostra progetto per visualizzare i dati di quel progetto;
- All'ora di fine del progetto spegnere i dispositivi. Se non tutti i dati sono stati salvati online,
alla prossima accensione dei dispositivi i dati salvati in locale saranno caricati in
automatico sull'applicativo web.
Nota:
La procedura di caricamento online dei dati salvati in locale, in base ai tempi necessari, potrebbe
causare un ritardo della successiva lettura e la perdità dell'ultimo record.
14
Modalità offline:
Permette di impostare il progetto in modo che i dispositivi, una volta ricevuti i dati di progetto, non
cerchino più la connessione wifi per collegarsi all'applicativo e passare i dati. Tutti i dati saranno
salvati in locale sulla microSD e saranno caricati alla riaccensione del dispositivo.
Procedura per la modalità offline:
- Impostare i dati per il progetto;
- Selezionare la modalità offline e cliccare su Start;
- Accendere i dispositivi e attivare una connessione wifi a cui essi possano agganciarsi;
- Aspettare due minuti in modo che tutti i dispositivi si colleghino a internet e impostino
correttamente i dati di progetto;
- Ora sarà possibile disattivare la connessione wifi: i dispositivi lavoreranno in completa
autonomia fino all'ora di fine del progetto.
- All'ora di fine spegnere i dispositivi, riattivare la connessione wifi e accendere un
dispositivo alla volta per il caricamento dei dati. Tempi di attesa da lasciare tra
un'accensione di un dispositivo e l'altro: 30 secondi per ogni ora di lettura.
Nota:
Nella situazione in cui venga spento il dispositivo o termini la batteria, alla prossima accensione il
dispositivo cercherà come prima cosa di trasmettere i dati salvati sulla memoria interna. Se la
connessione wifi non sarà disponibile, il programma non proseguirà con il progetto in corso. Una
volta salvati i dati, spegnere e riaccendere il dispositivo per continuare il monitoraggio.
15
3.4 Procedura per aggiungere un nuovo dispositivo
Una volta assemblato un nuovo dispositivo, seguire i seguenti passaggi:
- Collegare, mediante cavo USB, la board NodeMCU al computer su cui è stato
installato l'IDE di Arduino;
- Caricare lo sketch "sketch_tesi_Focchi_Daniele", scaricabile dalla sezione download
dell'applicativo web, mediante il menù "File" alla voce "Apri...";
- Avviare la compilazione dal menù "Sketch" alla voce "Carica". Al termine, scollegare il
dispositivo dal computer.
- Andare alla pagina "device" dopo aver effettuato il login e iniziare la procedura per
aggiungere un nuovo dispositivo;
- Compilare i campi inserendo la descrizione del dispositivo e i dati della rete wifi, e
verificare la versione del dispositivo;
- Premere il tasto "aggiungi" per visualizzare il nome del dispositivo creato;
- Nella tabella del nuovo dispositivo, cliccare sul nome, per aprire una nuova pagina
contenente una stringa di testo;
- Creare sul computer un file di testo: tasto destro sul Desktop -> Nuovo -> Documento di
testo;
- Nominarlo "config.txt" e inserire la stringa di testo visualizzata in precedenza;
- Inserite il file "config.txt" in una microSD e inserire la microSD nel lettore del
nuovo dispositivo;
- Il dispositivo è ora pronto per il monitoraggio.
Fig. 3.4-1 Etichetta identificativa dispositivo Nota:
Si consiglia l'utilizzo di un'etichetta adesiva per segnare il nome del dispositivo e facilitarne
l'individuazione. È possibile stampare e utilizzare come etichetta il file "etichetta_device" presente
nella sezione "download".
16
3.5 Procedura per attivare un Hotspot mobile
I dispositivi possono essere collegati con facilità alla rete dati dei cellulari mediante la modalità
Hotspot. Tale modalità permette di trasformare il proprio cellulare in un router, generando una rete
wifi privata, di cui si può decidere: SSID, password e tipologia di crittografia (WEP, WPA, WPA2).
Per i dispositivi Android, la modalità Hotspot è attivabile dalle "Impostazioni", sotto la voce "Altro"
del menu "Wireless e reti". Per i dispositivi Apple, la modalità Hotspot è attivabile dalle
"Impostazioni", sotto la voce "Cellulare".
Infine, è possibile utilizzare anche "saponette" o altri apparati muniti di SIM, quali tablet.
Fig. 3.5-1 Attivazione modalità Hotspot su dispositivi Android
Nota:
Alcuni operatori bloccano la funzione Hotspot: nel caso di problemi informarsi dal proprio operatore
telefonico. I consumi di banda dei dispositivi sono minimi e non è necessaria una connessione veloce
o di ultima generazione per il funzionamento dei dispositivi.
L'area coperta dalla rete Hotspot dipende da molti fattori: si va dai 5m fino ai 10m.
Ricorda:
L'utilizzo di una rete wifi tradizionale, cioè generata da un ruoter, potrebbe impedire il corretto
funzionamento dei dispositivi a causa di firewall o altri meccanismi di sicurezza.
17
4 Guida alla realizzazione di un dispositivo
4.1 Introduzione all'utilizzo dell'IDE di Arduino
Per l'inserimento del codice nel dispositivo e la sua modifica, è necessario l'utilizzo di un compilatore.
Per questo progetto è stato utilizzato l'IDE (ambiente di sviluppo) di Arduino.
Scaricato l'IDE di Arduino, installarlo sul proprio computer e far partire il programma.
Procedere con l'installazione delle librerie della board NodeMCU.
Nel menù "File", cliccare la voce "Impostazioni" e posizionarsi sulla voce "URL aggiuntive per il
Gestore schede". Inserire il seguente link:
http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json
Premere "ok" e andare al menù "Strumenti", alla voce "Scheda" e cliccare su "Gestore schede".
Scorrere fino in fondo e cliccare sulla voce "eps8266". Installare la libreria. Al termine sarà possibile
utilizzare l'IDE di Arduino per la programmazione del dispositivo.
Glossario Arduino:
board = schede elettroniche con microcontrollore e ingressi/uscite (NodeMCU)
shield = schede generiche con vari componenti saldati su di esse
sketch = programma per Arduino
compilazione = traduzione in codice macchina del programma
check = controllo della sintassi del programma
Nota:
L'IDE di Arduino è compatibile anche con i sistemi Linux e Mac, ma la guida fa riferimento al sistema
Microsoft Windows 10.
Se nel "Gestore dispositivi" non compare la voce "eps8266", cercare su internet la versione del link
più recente.
La versione della libreria "eps8266" con cui è stato provato il programma è la 2.3.0.
18
Ricorda:
Per qualsiasi problema nell'installazione e utilizzo
dell'IDE di Arduino o della scheda NodeMCU, si
può fare affidamento alla grande comunità online.
Fig. 4.1-1 Schermata IDE Arduino
Installare le librerie necessarie al funzionamento del programma. Nella sezione "dowload"
dell'applicativo web scaricare il file "libreries.zip" e scompattarlo.
Inserire il contenuto in: Documenti -> Arduino -> libreries
Collegare la board NodeMCU al computer mediante cavo USB. Dal tasto Start di Windows, cercare
il "Gestione dispositivi" e posizionarsi sulla voce "Porte (COM e LPT)". Controllare la porta COM
con cui il computer dialoga con la board, indicata con la dicitura USB CP210 o simile.
19
Fig. 4.1-2 Gestione dispositivi Windows
Nota:
Sarà necessario installare il driver USB nel caso in cui il sistema operativo non lo riconosca.
Sempre con il dispositivo collegato al computer, andare sull'IDE di Arduino, menù "Strumenti"
sezione "Scheda", e cercare la voce "NodeMCU 1.0" per indicare al programma quale dispositivo
leggere. Posizionarsi sulla sezione "Porta" e selezionare la voce corrispondente alla porta COM
individuata prima sul "Gestore dispositivi" di Windows.
Ora sarà possibile caricare e modificare il programma per il funzionamento dei dispositivi.
Nota:
Il caricamento dello sketch può impiegare molto tempo. Attendere il completamento dell'operazione.
20
4.2 Montaggio hardware
Il collegamento fra i vari componenti elettronici può essere effato mediante saldature su millefori o
mediante l'utilizzo di una breadboard. È consuetudine incominciare un progetto utilizzando una
breadboard e, finito il periodo di test, saldare tutti i componenti su una millefori per aumentare la
tenuta dei collegamenti.
Fig. 4.2-1 Breadboard
Verranno riportati di seguito i collegamenti dei singoli componenti del dispositivo:
- HC4051: multiplex analogico
Vcc – 5V (Power supply)
E – GND (Power supply)
GND – GND (Power supply)
Z – A0 (NodeMCU)
S0 – D0 (NodeMCU)
S1 – D1 (NodeMCU)
S2 – D2 (NodeMCU)
Y2 – R10k – 4 (MH-Z14A)
Y1 – Fotoresistenza
Fig. 4.2-2 Schema HC4051 Fig. 4.2-3 Partitore di tensione
- MH-Z14A: sensore CO2
1 – 5V (Power supply)
2 – GND (Power supply)
4 – R10k – Y2 (HC4051) – R10k – GND(Power supply)
21
Le due resistenze servono per realizzare un partitore di tensione che riduca il range del voltaggio del
pin 4 da 0,4–2V a 0,2–1V e poter così essere letto correttamente dalla board NodeMCU.
- DHT22: sensore temperatura umidità
Vcc – 5V (Power supply)
GND – GND (Power supply)
SIG – D3 (NodeMCU)
- Fotoresistenza:
lato 1 – 5V (Power supply)
lato 2 – Y1 (HC4051) – R10k – GND (Power supply)
La resistenza da utilizzare dipenderà dalla tipologia di fotoresistenza acquistata.
- Lettore microSD:
Vcc – 5V (Power supply)
GND – GND (Power supply)
MISO – D6 (NodeMCU)
MOSI – D7 (NodeMCU)
SCK – D5 (NodeMCU)
CS – D8 (NodeMCU)
- Power supply: o altri sistemi di alimentazione
Vcc – 5V
GND – GND
Vcc e GND in questo caso corrisponderanno alla fonte esterna di alimentazione (cavo USB,
batteria, alimentatore).
- NodeMCU:
Vcc – 5V (Power supply)
GND – GND (Power supply)
A0 – Z (HC4051)
D0 – S0 (HC4051)
D1 – S1 (HC4051)
D2 – S2 (HC4051)
D3 – SIG (DHT22)
D5 – SCK (microSD)
D6 – MISO (microSD)
D7 – MOSI (microSD)
D8 – CS (microSD)
Posizionare tutti i componenti in una scatola che li possa proteggere e valutare eventuali fori per
l'alimentazione esterna. Posizionare correttamente i sensori in modo che le letture non vengano falsate
dall'ambiente interno della scatola, il quale può risultare notevolmente diverso dall'ambiente esterno.
Nota: R10K = resistenza da 10 000 ohm
22
4.3 Procedure di debugging
Nel caso in cui il dispositivo montato non funzioni correttamente, sarà necessario effettuare dei test
per determinare l'origine del problema. Collegando la board NodeMCU ad una porta USB di un
computer su cui è stato installato l'IDE di Arduino (paragrafo 4.1), sarà possibile ricevere un input
visivo del funzionamento del dispositivo e poter così effettuare un debugging del sistema.
All'interno del codice, in punti strategici, sono state posizionate infatti delle stampe a video.
Tali stampe, realizzate col comando Serial.println ('nostra_stringa'), possono essere modificate e
aggiunte dall'utente a piacimento perché non intaccano il corretto funzionamento del programma.
Attivazione della porta seriale: dall'IDE di Arduino andare nel menù "Strumenti" e cliccare sulla voce
"Monitor seriale".
Una volta collegato il NodeMCU al computer e attivato il monitor seriale, seguire il percorso del
programma fino alla situazione di errore. Prestare particolare attenzione alla stringa dei dati che verrà
inviata al server e che è responsabile del buon caricamento dei dati sul database.
Nota:
Se nella colonna della temperatura e dell'umidità di un vostro progetto compaiono
contemporaneamente 99°C e 99%, allora si deve imputare la causa ad un problema del collegamento
del sensore DHT22.
Se l'errore è da imputare alla memoria microSD, sarà necessario: controllare lo stato dei collegamenti,
effettuare una nuova formattazione della microSD o provare altri modelli di memorie.
Ad ogni modifica del codice, effettuare un controllo ortografico prima della compilazione attraverso
menù "Sketch", alla voce "Verifica".
23
Tra il materiale presente nella sezione "download" dell'applicativo web, sono disponibili degli sketch
per il test dei singoli sensori, da aggiungere agli sketch di esempio già presenti nel menù "File" alla
voce "Esempi" dell'IDE di Arduino.
Collegando la board NodeMCU al computer tramite cavo USB e compilando dall'IDE di Arduino i
singoli sketch, sarà possibile visualizzare sul monitor seriale il comportamento del singolo
componente.
Elenco sketch per il debugging disponibili:
- Sketch_fotoresistenza: per la lettura della sola intensità luminosa;
- Sketch_MH-Z14A: per la lettura della concentrazione di CO2 su pin analogico;
- Sketch_DHT22: per la lettura della temperatura e dell'umidità;
Nota:
Le letture dei sensori sono accompagnate dalla loro unità di misura. Se si conoscono le curve di
calibrazione dei propri sensori è possibile implementarle anche negli sketch per il debugging e
ottenere valori legati al proprio componente.
24
5 Avvisi di errore e raccomandazioni
5.1 Segnalazioni visive e di errore
Sono state previste delle segnalazioni luminose per permettere all'utilizzatore di ricevere un feedback
sullo stato del dispositivo.
Elenco delle segnalazioni previste:
- Led rosso: (lampeggio)
Problema nella lettura della memoria microSD o raggiungimento del tempo massimo per la
ricerca di una rete wifi. Il programma verrà bloccato. Controllare la presenza della microSD,
lo stato delle connessioni, la presenza e correttezza del file config.txt sulla microSD del
dispositivo e la correttezza dei dati della rete wifi a cui ci si vuole collegare.
Risolta la situazione, spegnere e riaccendere il dispositivo per continuare.
- Led blu: (lampeggio veloce)
Il dispositivo è alla ricerca della rete wifi.
Attesa massima di 5 minuti la prima volta e di 15 secondi le successive.
- Led blu: (lampeggio lento)
Il dispositivo sta segnalando la fine del progetto assegnatoli.
Spegnere il dispositivo.
Nota:
In caso di problema e ripetizione ricorrente di un errore, leggere il paragrafo 4.3 del manuale.
25
5.2 Raccomandazioni finali
L'applicativo web e la progettazione dei dispositivi fanno parte del materiale dalla tesi: "Smart device
per il monitoraggio ambientale" di Daniele Focchi. Sono liberamente utilizzabili per scopi didattici
da parte degli organi universitari. Non è ammessa la manipolazione totale o in parte del codice di
programmazione dell'applicativo web, la sua analisi o l'accesso non autorizzato alle informazioni
riportate nel database. Tutte il materiale condivisibile e modificabile è riportato nella pagina
"download" dell'applicativo web.
In caso i problemi o domande, contattare il Laboratorio di Fisaca Tecnica del dipartimento DIENCA
dell'univertà Alma Mater Studiorum.
II°
II°
SMART DEVICE PER IL MONITORAGGIO AMBIENTALEAllegato III° , parte prima
Studente: Focchi Daniele Tutor accademico: Barbaresi Luca
SMART DEVICE PER IL MONITORAGGIO AMBIENTALEAllegato III° , parte seconda
Studente: Focchi Daniele Tutor accademico: Barbaresi Luca