1. Introduzione
La presente trattazione descrive lo studio e la realizzazione di un siste-
ma domotico a basso costo, connesso e cloud-aware , in grado di sfruttare quanto
messo a disposizione dai moderni sistemi di networking e di smallscale computing .
Un’attenzione particolare è stata posta alla possibilità di raccogliere informazio-
ni circa l’ambiente circostante non solo dai sensori presenti in situ , ma anche da
quanto messo a disposizione dalla Rete, in modo da poter integrare un controller
climatico a tutti gli effetti tra le «Things» dell’ IoT
1
. Oltre ad utilizzare una sempli-
ce logica di tipo lettura sensore-azione, con un dispositivo connesso è possibile
sfruttare le letture di altri sensori non direttamente collegati all’apparato, ed agire
anche in funzione di quelli che dovrebbero essere i valori previsti, ad esempio
sfruttando un Web Service meteo pubblico.
La trattazione è divisa in quattro parti, di cui le prime due sono divise i n
due capitoli, la terza in tre e l’ultima è formata da un solo capitolo.
Il primo capitolo illustra alcune definizioni e notizie di carattere generale,
proseguendo con un’analisi dei risultati ottenuti in altri studi circa l’automazione
domotica. Nel secondo capitolo viene definito il campo di azione del sistema in
sviluppo e le limitazioni imposte esternamente.
La seconda parte segue la ricerca dei componenti hardware e software.
Nel capitolo 3 viene descritto l’hardware valutato, in particolare i controller e
i sensori e viene descritto il funzionamento del bus I
2
C. Nel quarto vengono
illustrati gli API
2
Cloud, il tipo di dati per l’intercomunicazione, ed il linguaggio
prescelto, insieme ad alcune librerie esterne.
Il quinto capitolo descrive le funzionalità del sistema per quel che riguar-
da il comportamento atteso e l’interfacciamento con l’utente. Il sesto capitolo se-
gue la progettazione del circuito completo a cui interfacciare la scheda controller.
Nel capitolo 7 viene descritto il progetto software andando ad analizzare i com-
1
Internet of Things
2
Application Programming Interface
9
ponenti, e per ognuno di essi il diagramma delle classi di cui è composto. Durante
la descrizione delle classi viene mostrato anche il principio di funzionamento e
gli stati del sistema.
L’ultimo capitolo è dedicato alle conclusioni, con analisi e possibili mi-
glioramenti valutati a posteriori.
1.1. Quadro tecnologico di riferimento
A partire dall’ultima decade del XX Secolo la connettività Internet è
diventata, almeno per i paesi del blocco Occidentale, pervasiva; iniziando dai PC
collegati con dei modem a 56kbps, fino ad arrivare ai cellulari di ultima generazione
connessi a reti wireless 4G da 250Mbps. Contemporaneamente l’aumento delle
potenze di calcolo dei microprocessori ha seguito abbastanza fedelmente la legge
di Moore, raddoppiando ogni diciotto mesi, almeno fino alla prima decade del
XXI Secolo. La situazione odierna è tale per cui, benché la suddetta legge non
sia più valida, i suoi effetti ci hanno portato ad avere dei chip di potenza pari a d
un Pentium!!!™, al costo di pochi dollari.
1.2. Domotica
Con domotica si intende una serie di tecniche e tecnologie atte ad auto-
matizzare e rendere più comodo, ed in alcuni casi più efficiente, l’insieme degli
impianti presenti in una casa. I sistemi che storicamente hanno maggiormente
usufruito dell’automazione in questo ambito sono la climatizzazione, la sicurezza
sia in termini di safety che di security , ed il risparmio energetico. Alcuni esempi di
automazione integrata possono essere i seguenti:
risparmio energetico: realizzazione di un sistema automatico per l’accensione e lo
spegnimento dei caloriferi o dei condizionatori oltre che in base alla tem-
peratura, anche in base alla stagione o alla presenza o meno di occupanti
l’abitazione;
security: controllo d’accesso agli ambienti dell’abitazione; adottare un lockout con-
trol nei confronti di chi non ha specifiche autorizzazioni, controllare i
sistemi di sorveglianza, come telecamere e sensori di presenza;
10
safety: uso di sensori atti a rilevare fughe di gas, o la richiesta di aiuto di una
persona anziana o disabile;
climatizzazione: l’accensione e spegnimento dei sistemi termici e la gestione delle
tende parasole e delle serrande.
Sulla base di una ricerca sul campo effettuata negli Stati Uniti da Bernheim et
al. [ 3 ] per conto di Microsoft e dell’Università di Washington, si può classificare
l’automazione in due grandi categorie:
• la smart dove il sistema posto sotto controllo automatico non è diretta-
mente gestibile dall’essere umano, di cui un esempio potrebbe essere un
sistema di luci crepuscolari o con sensore di presenza;
• la augmentation dove a fronte di un’azione umana, il sistema risponde con
ulteriori azioni a completamento; ad esempio l’accensione di un sistema
home-theater potrebbe comportare l’abbassamento graduale delle luci nella
stanza.
Nella ricerca citata sono emerse anche importanti peculiarità riguardanti l’intera-
zione con i sistemi domotici:
1. i sistemi devono essere di semplice comprensione ed utilizzo, pena il fini-
re nel paradosso osservato da Randall [ 29 ], dove l’operatività del sistema
automatico è così complessa che l’utente preferisce ignorarla ed usare le
impostazioni manuali;
2. l’aspetto che mette più a disagio gli utenti è la gestione remota dei di-
spositivi di security , in particolar modo la video sorveglianza, e la chiusu-
ra delle serrature, mentre non desta particolare preoccupazione l’apertura
remotizzata delle stesse;
3. lo sviluppo di sistemi ad hoc , in genere creati da un membro della fami-
glia, ha dato risultati migliori dal punto di vista della soddisfazione d’uso
rispetto a sistemi commerciali, in genere con esborsi di denaro inferiori.
Proprio le considerazioni sul paradosso di Randall e sulla user satisfaction , hanno
portato a sviluppare il sistema in esame. C’è da aggiungere che la copertura di
tutti gli aspetti elencati è fuori dell’ambito di studio, ed in seguito ci si limiterà
alla sola analisi del caso domotico/smart in ambito climatizzazione.
11
1.3. Internet of Things
In rete è presente un enorme quantità di dati e fino ad oggi la grande
maggioranza di essi è stata raccolta e immagazzinata da esseri umani per gli esse-
ri umani
3
. D’altronde la pervasività e la riduzione dei costi delle connessioni alla
rete Internet ha portato al collegamento di dispositivi sempre più piccoli e spe-
cifici, con poca memoria a bordo perché pensati come appendici di un sistema
più grande.
La novità del paradigma IoT è quella di rendere le macchine indipenden-
ti dall’inserimento umano dei dati, ovvero instaurare una comunicazione stabile
di tipo «machine to machine» (M2M), lasciando la comunicazione «machine to
human», o M2H, ad una mera opzione. Nel 2009 Kevin Ashton descriveva l’ IoT
in questo modo:
«If we had computers that knew everything there was to know about things
– using data they gathered without any help from us – we would be able to
track and count everything, and greatly reduce waste, loss and cost. We would
know when things needed replacing, repairing or recalling, and whether they were
fresh or past their best. We need to empower computers with their own means of
gathering information, so they can see, hear and smell the world for themselves, in
all its random glory. RFID
4
and sensor technology enable computers to observe,
identify and understand the world without the limitations of human–entered
data.» [ 2 ]
Secondo una ricerca eseguita da Gartner entro il 2020 ci saranno 26 miliardi di
dispositivi di tipo IoT connessi alla rete [ 14 ]. A parziale riduzione di quanto detto
nella ricerca citata, c’è da dire che, almeno in Italia, si rileva una penetrazione della
banda larga ridotta. La connettività Internet nelle famiglie è solo del 48,6%, anche
se questo valore cresce fino al 70,8% in quelle con almeno un figlio minorenne
[ 20 ].
3
Non esistono dati conclusivi sulla dimensione in byte di Internet, dato che bisognerebbe misurare
la dimensione di ogni file salvato su ogni macchina collegata alla rete. Esistono dati più precisi
sulla quantità di traffico generato, e delle previsioni che danno valori intorno ai 1000 Exabyte per
anno entro la fine dell’anno 2016. [ 7 ]
4
Radio Frequency IDentification
12
1.4. I Cloud service
L’ultimo fronte tecnologico esplorato è quello delle funzionalità Cloud;
come ben noto nell’ultimo decennio si è avuta, principalmente grazie all’intro-
duzione delle istruzioni di virtualizzazione nei processori basati su architettura
x86 di Intel, una crescita esponenziale dell’offerta di servizi slegati dall’hardware
ed accessibili in rete. Questi servizi, che collettivamente vengono indicati con il
nome di «Cloud Service», appartengono a tre grandi categorie:
Software as a Service o SaaS, dove il gestore fornisce accesso ad un software spe-
cifico, che gira sui suoi sistemi ed è pubblicato su Internet; GMail, ad
esempio, è il servizio che Google offre per la lettura dell’email;
Platform as a Service o PaaS, dove il gestore fornisce accesso ad una piattaforma
di sviluppo o un ambiente virtualizzato dove il cliente può far girare il pro-
prio software, «AppEngine» di Google, «Elastic BeanStalk» di Amazon, e
«Azure» di Microsoft, sono alcuni esempi di piattaforme pronte a ricevere
del software scritto in Java, Dotnet (non AppEngine), Python, ecc…
Infrastructure as a Service o IaaS, in quest’ultimo caso il gestore mette a disposi-
zione un’intera infrastruttura hardware virtualizzata, comprendente mac-
chine virtuali, switch virtuali, e load balancer ; gli utenti di questa soluzio-
ne devono curarsi di ogni aspetto della configurazione, tranne l’acquisto
dell’hardware. Dominatore indiscusso del mercato IaaS è Amazon con
soluzioni come «S3 Storage» ed «Elastic Cloud Computing» della suite
«Amazon Web Services». [ 15 ]
Punto fondamentale dei servizi Cloud è che le soluzioni girano sempre su hard-
ware virtualizzato e di conseguenza le risorse possono essere scalate, all’aumen-
tare o al diminuire delle richieste, in modo dinamico, senza la necessità di fermi
necessari agli aggiornamenti hardware.
13