IoT / Smart Home

L'idea

Qualche anno fa, grazie all'imbeccata di un amico, scopro il mondo di Arduino & co; per chi non lo sapesse, Arduino è un'azienza che progetta e produce microcontrollori basandosi su hardware e software opensource. Ne esistono diversi modelli che variano in funzione di caratteristiche tecniche e dimensioni; la scelta, quindi, viene effettuata in funzione degli obiettivi. Queste schede elettroniche (che si trovano sui principali ecommerce di tecnologia) permettono, tramite la scrittura di software più o meno complesso, di gestire ingressi (INPUT) ed uscite (OUTPUT). Un esempio molto semplice è quello dell'accensione di un led (OUTPUT) tramite l'utilizzo di un pulsante (INPUT). In generale, attraverso ingressi e uscite digitali e la programmazione software si possono realizzare dei veri e propri circuiti per interfacciarsi a sensori e pilotare attuatori.
Non mi voglio dilungare troppo sull'argomento e lascio il link al sito ufficiale per permettere, a chi fosse interessato, di approfondire https://www.arduino.cc/.

Torniamo a noi...
Il mio primo esperimento con Arduino è stata la creazione di un sensore di GAS. Trovate tutti i dettagli sul relativo post del mio blog: Primo esperimento: un semplice rilevatore di gas.
Da quel momento in avanti ho iniziato ad approfondire questo affascinante mondo e mi sono balenate per la testa diverse idee, fino ad arrivare al mio progetto definitivo: l'implementazione di un Home Automation System, grazie anche alla scoperta dei pulsanti Wifi (vedi Home Automation System - La scoperta dei Sonoff) e delle schedine ESP8266, molto simili ad Arduino ma con Wifi integrato, molto più piccole e soprattutto molto meno care. Il tutto, condito con diversi sensori (temperatura, umidità, gas, sonde per monitoraggio dei consumi energetici, etc etc) e grazie all'aiuto di mini computer (come ad esempio il famigerato Raspberry PI) e di software open source mi ha permesso di arrivare allo sviluppo reale del mio progetto, attualmente ancora in corso di implementazione (il tempo a disposizione è quello che è...)

Cos'è un Home Automation System

Cos'è un Home Automation System

In giro per la rete si possono trovare numerose definizioni di Home Automation System. In parole molto semplici e semplificative, possiamo definire un Home Automation System come un sistema di monitoraggio, controllo ed automazione delle principali funzioni di una cosidetta "smart home" o casa intelligente. Un insieme di sensori ed attuatori che comunicano con un'unità centrale, detta Hub, cervello del sistema. Un classico esempio di componenti di un Home Automation System può essere dato da sensori di temperatura, interruttori e pulsanti virtuali, sistemi di videosorveglianza e sicurezza, sensori di misurazione di energia, lampadine intelligenti, etc etc, tutti interconnessi tramite hub in grado di interfacciarsi con i diversi protocolli di comunicazione dei dispositivi, spesso eterogenei tra loro. Affiancato all'hub abbiamo anche i sistemi di interfaccia utente, che permettono il reale utilizzo del sistema: partendo dal pannello montato a muro fino ad arrivare all'app sullo smartphone, ad un'applicazione desktop o ad un'interfaccia web; dulcis in fundo il controllo vocale, che ci permette di "utilizzare" la nostra Smart Home tramite semplici frasi. Esempi famosi sono Amazon Echo Dot / Alexa e Google Home / Assistant. Un'altra caratteristica importante degli Home Automation System è la possibilità del controllo remoto a distanza: possiamo gestire i nostri dispositivi in qualunque luogo ci troviamo, utilizzando la rete internet.Riassumendo, un Home Automation System ci permette di gestire i dispositivi domestici, anche fuori dalle mura di casa, senza a necessità di agire fisicamente sugli attuatori ma semplicemente utilizzando un software (smartphone, pc, tablet, pannello a muro) o addirittura la nostra voce. Un ultimo aspetto, non meno importante degli altri, che rende la nostra casa ancora più intelligente è la possibilità di automatizzare diverse operazioni e permettere di prendere decisioni basandosi sullo stato del sistema stesso. Esempi: la temperatura in soggiorno è superiore ai 28°C, allora accendo il climatizzatore; l'impianto fotovoltaico sta producendo 2.5Kwh, allora faccio partire la lavatrice; è sera, allora accendo le luci in giardino. Come si può facilmente immaginare, l'unico limite è la fantasia.

Il progetto

Dopo tutte queste belle parole, passiamo alla realtà dei fatti. Dopo aver studiato ed effettuato numerosi esperimenti pratici sono arrivato finalmente al progetto definitivo (per modo di dire...) del mio sistema di Home Automation System, comunque sempre in continua evoluzione. Il tutto si basa sull'ottimo software OpenHAB, selezionato tra i diversi sistemi Open Source di Home Automation presenti sulla rete. In questo post del mio blog potete approfondire cosa mi ha portato ad effettuare questa scelta.
Ecco i moduli principali del mio attuale sistema di Home Automation:

  • DHT11
    DHT11 - Sensore di temperatura ed umidità

    Sensore economico per la misurazione di temperatura ed umidità. Output digitale, facilmente leggibile da un microcontrollore.

  • DS18B20
    DS18B20 - Sensore di temperatura da esterno

    Sensore di temperatura utilizzabile all'esterno. Più preciso del DHT11 e leggermente più caro. Possono essere usati diversi sensori con un unico di comunicazione, sfruttando l'interfaccia One Wire.

  • PZEM-004t
    PZEM-004t - Multimetro per misurazione di corrente e tensione

    Sensore non invasivo (grazie al trasformatore di corrente CT) per la misurazione di potenze elettriche. Può funzionare standalone con un software per PC e collegamento USB, oppure collegato ad un microcontrollore tramite porta seriale.

  • MQ-4
    MQ-4 - Sensore di GAS

    Sensore per la misurazione di GAS, sensibile principalmente al gas metano, propano e butano. Ha un'uscita analogica per ottenere il valore preciso di rilevamento ed un'uscita digitale triggerabile.

  • SONOFF Basic
    SONOFF Basic - Pulsante WiFi singola uscita

    Pulsante WiFi singola uscita, basato su chip ESP8266. Permette di comandare un carico a distanza, tramite APP e/o pulsante integrato.

  • SONOFF Mini
    SONOFF Mini - Pulsante WiFi singola uscita

    Pulsante WiFi singola uscita di dimensioni ridotte, basato su chip ESP8266. Permette di comandare un carico a distanza, tramite APP e/o pulsante integrato. E' già predisposto per il collegamento di un pulsante / interruttore esterno e può funzionare in modalità DIY

  • SONOFF Dual
    SONOFF Dual - Pulsante WiFi doppia uscita

    Pulsante WiFi doppia uscita, basato su chip ESP8266. Permette di comandare due carichi a distanza, tramite APP e/o pulsanti integrati.

  • SONOFF 4 Channel
    SONOFF 4 Channel - Pulsante WiFi quattro uscite

    Pulsante WiFi quattro uscite, basato su chip ESP8285. Permette di comandare quattro carichi a distanza, tramite APP e/o pulsanti integrati.

  • SONOFF B1
    SONOFF B1 - Lampadina smart WiFi RGB

    Lampadina RGB WiFi comandabile a distanza. E' possibile controllare colore, temperatura e luminosità.

  • Xiaomi Yeelight
    Xiaomi Yeelight RGB - Lampadina smart Wifi RGB

    Lampadina RGB WiFi di Xiaomi utilizzabile tramite app proprietaria (Mi Home) ed integrabile in OpenHAB

  • Xiaomi Mi Robot Vacuum
    Xiaomi Mi Robot Vacuum - Robot aspirapolvere

    Robot aspirapolvere comandabile a distanza con mappatura della casa e rilevamento scale

  • ARDUINO Uno
    ARDUINO Uno - Microcontrollore per progetti DIY.

    Uno dei microcontrollori più famosi con I/O analogico/digitale. Lavora con tensione di 5V.

  • ESP8266
    ESP8266 - Microcontrollore per progetti DIY con WIFI integrato.

    Un microcontrollore economico con WiFi integrato. Lavora con tensione 3.3V ed ha, oltre diversi pin digitali, un solo pin analogico.

  • OPENHAB Basic UI
    OPENHAB Basic UI - Semplice interfaccia web di controllo.

    Semplice e minimale interfaccia web di monitoraggio ed interazione con i diversi controlli del sistema. E' presente anche un'app per i diversi sistemi operativi mobile (Android, iOS, Windows).

  • OPENHAB Hab Panel
    OPENHAB Hab Panel - Interfaccia web per pannelli touch.

    Interfaccia WEB basata su framework AngularJS per la costruzione e la fruizione di interfaccie ottimizzate per la visualizzazione su pannelli touch (ad esempio tablet).

  • GRAFANA
    GRAFANA - Interfaccia web per la visualizzazione di dashboard.

    Interfaccia WEB per la costruzione di dashboard interattive composte da widget grafici per la visualizzazione dei dati in tempo reale e storici dell'Home Automation System.

  • MOSQUITTO MQTT Server
    MOSQUITTO MQTT Server - Broker MQTT per lo scambio di messaggi

    Servizio di Broker MQTT per lo scambio di messaggio tra i diversi moduli del sistema.

  • TASMOTA Firmware
    TASMOTA - Firmware per ESP8266

    Firmware open source alternativo per moduli ESP8266 con interfaccia web di configurazione e gestione.

  • INFLUXDB
    INFLUXDB - Database per serie di dati temporali

    Motore open source di database per la memorizzazione di serie di dati temporali

  • GRAFANA Server
    GRAFANA Server - Servizio di visualizzazione dei dati

    Servizio open source per la gestione di dashboard interattive, interfacciabile con diverse tipologie di database

  • Google Home Mini
    Google Home Mini

    L'assistente virtuale di Google

  • Amazon Alexa Echo Dot
    Amazon Alexa Echo Dot

    L'assistente virtuale di Amazon

  • Samsung Smart TV 4K 49'
    Samsung UE49NU8000T 49' - 4K Ultra HD Smart TV

    TV 4K da 49 pollici

  • Bose Speaker Bluetooth
    BOSE Soundlink Color - Speaker Bluetooth

    Cassa audio senza fili portatile

  • Jam Waterproof Speaker Bluetooth
    JAM Chill Out - Speaker Bluetooth impermeabile

    Cassa audio senza fili dal design accattivante

  • Samsung Bluetooth Soundbar 2.1
    SAMSUNG Bluetooth Soundbar

    Soundbar senza fili con subwoofer esterno

  • Google Chromecast
    Google Chromecast

    Trasforma la tua vecchia TV in una Smart TV

  • Ubiquity PowerBeam 5AC Gen2
    Ubiquity PowerBeam 5AC Gen2 - 5Ghz PTP Wireless Bridge

    Antenna alte performance per connessione wireless internet 5Ghz

  • Linksys WRT54G Wireless Router
    LinkSys WRT54G - Wireless Router

    Un router wireless un pò datato ma tornato nuovo con il firmware opensource DD-WRT utilizzato per espandere la rete al primo piano

  • Belkin F5D7234-4 Wireless Router
    Belkin F5D7234-4 - Wireless Router

    Un router wireless un pò datato ma utile per espandere la copertura di rete al seminterrato

  • Tplink Archer C7 Gigabit Wireless Router
    Tplink Archer C7 - Gigabit Wireless Router

    Un nuovo router wireless con porte LAN Gigabit, utilizzato per la rete principale al piano terra

  • WD My Book World Edition 1TB NAS
    WD My Book World Edition - 1 TB NAS

    Un vecchio NAS da 1TB con porta LAN Gigabit senza nessun tipo di RAID e/o Mirror dei dati, utilizzato come storage per le copie di backup

  • WD My Cloud EX2 Ultra 4TB NAS
    WD My Cloud EX2 Ultra - 4 TB NAS RAID 1

    Un nuovo NAS da 4TB in configurazione RAID 1 con porta LAN Gigabit, utilizzato come storage per le copie di backup

  • Dahua HDCVI Recorder
    Dahua XVR5108HS-4KL-X - HDCVI Recorder

    Videoregistratore 4K - 8 ingressi

  • Dahua 4MP Mini Dome
    Dahua HAC-HDBW2401R-Z - 4MP Mini Dome Camera

    Videocamera da esterno 4MP

  • Dahua 4MP Bullet
    Dahua HAC-HFW2401R-Z-IRE6 - 4MP Bullet Camera

    Videocamera da esterno 4MP

Configurazione

L'attuale configurazione del mio sistema di Home Automation prevede un numero di sensori ed attuatori di vario genere integrati in OpenHAB che rappresentano il cuore del sistema. OpenHAB, oltre a gestirne l'acquisizione dei dati con persistenza su database InfluxDB - Time Series Database e l'invio dei relativi comandi di azione, ne permette il controllo e la visualizzazione attraverso le sue interfacce utente BasicUI e HabPanel, nonchè gestisce le regole di automazione, un altro aspetto importante di un sistema di Home Automation, dal quale non si può prescindere.
Di seguito la mia configurazione attuale:

Primo piano - zona notte
  • 5 luci: camera 1, camera 2, soppalco, mansarda, corridoio e luce notturna automatica
  • 2 sensori di temperatura / umidità: camera 1 e mansarda
  • 1 google home mini in camera 1 e 1 speaker JAM Chill Out nella doccia
Piano terra - zona giorno
  • 10 luci: soggiorno RGB, 2 faretti soggiorno, studio, disimpegno, cucina principale e sopra un muretto, ingresso e bagno ed 1 striscia led dietro il divano come luce ambiente
  • 4 sensori di temperatura / umidità: cucina, soggiorno, studio e bagno
  • 1 sensore di rilevamento GAS in cucina
  • 1 smart tv samsung, 1 soundbar samsung, 1 google home mini e 1 alexa echo dot in soggiorno e 1 speaker BOSE Soundlink Color nello studio
  • 1 XIAOMI MI robot vacuum in soggiorno
  • 1 misuratore di consumi per tutto il piano
  • 1 pannello di controllo in cucina
Seminterrato
  • 1 sensore di temperatura / umidità in garage
  • 1 google chromecast collegato ad un proiettore in tavernetta
  • 1 misuratore di consumi per tutto il piano e 1 misuratore di produzione fotovoltaica collegato all'inverter in garage
Giardino
  • 7 luci: rose, giardino roccioso, fronte cucina, GAZEBO, ingresso e 2 automatiche intorno alla casa
  • 1 sensore di temperatura sopra il gazebo
Impianto di allarme
  • Sensori perimetrici e volumetrici filari (tradizionali) collegati ad un'interfaccia "fatta in casa" che li collega ai GPIO del Raspberry per monitorarne lo stato, in parallelo ai collegamenti alla centralina proprietaria
Impianto di videosorveglianza
  • 3 telecamere in giardino collegate con un videoregistratore locale per il controllo perimetrale della proprietà anche da remoto
Automazioni
  • Luce esterno casa: accensione automatica la sera e spegnimento la mattina
  • Comando vocale "Buonanotte": spegnimento di tutte le luci ed accensione della luce notturna zona notte (spegnimento automatico la mattina) e riproduzione di suoni rilassanti
  • Controllo dei consumi in tempo reale: verifica periodica di consumi e produzioni energetiche con notifica app e vocale di potenza massima superata
  • Controllo del rilevamento del gas in cucina: verifica periodica del sensore di rilevamento del gas con notifica app e vocale se soglia superata

Approfondimenti

Il Work in Progress del sistema lo potete trovare nel blog nel quale ho cercato di riassumere i passaggi principali della costruzione del mio Home Automation System

Qui di seguito un elenco di post che ritengo più rilevanti rispetto ad altri per quanto riguarda le nozioni fondamentali del sistema