VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Cos’è la DOMOTICA La domotica, dall'unione delle parole domus (che in latino significa "casa") e robotica, è la scienza interdisciplinare che si occupa dello studio delle tecnologie atte a migliorare la qualità della vita nella casa e più in generale negli ambienti antropizzati. Questa area fortemente interdisciplinare richiede l'apporto di molte tecnologie e professionalità, tra le quali ingegneria edile, architettura, automazione, elettrotecnica, elettronica, telecomunicazioni, informatica e design. 1
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA CASA DOMOTICA Una casa domotica è una casa automatizzata, che garantisce a chi vi abita sicurezza e risparmio sui consumi energetici. La casa domotica viene spesso definita “intelligente” in quanto è in grado di modificare la configurazione dei suoi apparati in funzione di variabili interne ed esterne 2
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA OPENHAB 3
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA openHab openHAB è un software open-source che permette di automatizzare ambienti come la propria abitazione o ufficio. openHAB è sviluppato in Java, e questo lo rende installabile su diverse piattaforme come Windows, Linux e MacOS. . Una particolarità di questo software è quella di essere facilmente interfacciabile a diverse tecnologie e prodotti smart della nostra casa come ad esempio la TV, il modem, lo stereo, l’illuminazione o un sistema d’allarme, ma anche social network e servizi di rete/cloud. . 4
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA openHAB La logica di openHAB è riconducibile a 4 componenti principali: I connettori (Bindings) Le regole (Rules) La persistenza dei dati (Persistance) Interfaccia grafica (User Interface) 5
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Bindings openHAB mette a disposizione diversi pacchetti scaricabili che permettono per l’appunto il collegamento e dialogo con i dispositivi e servizi. Attualmente si contano più di 50 pacchetti (Chiamati Bindings), la lista completa e aggiornata è consultabile qui: http://www.openhab.org/features/supported-technologies.html 6
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Persistence & Charts openHAB supporta la registrazione dei dati nel tempo, questo permette di creare delle serie di dati marcati temporalmente che possono essere utilizzati per generare dei grafici o tabelle. Il software mette a disposizione più modalità di salvataggio dati, come ad esempio un database relazionale, file di log. Utilizzando per esempio un database MySql per la persistenza dei dati, sarà possibile successivamente avvalersi delle query per estrarre agilmente delle informazioni storiche. 7
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Rules & Script openHAB mette a disposizione un motore di regole scritto in un linguaggio simile al Java. Le regole possono essere lanciate da eventi come il cambio di stato di una variabile, in base ad un orario o evento di sistema. Attraverso un meccanismo di script, è possibile scrivere una procedura e riutilizzarla per diverse regole, risparmiando codice, mantenendolo pulito e leggibile 8
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Interfaccia utente openHAB permette di ragguppare e interagire con le tecnologie connesse al software attraverso una semplice e intuitiva interfaccia utente raggiungibile dal browser del proprio computer. La comunità ha sviluppato inoltre una APP dedicata agli smartphone e tablet sia Android che Apple. La App permette infatti, dopo una breve configurazione, di accedere all’interfaccia grafica di OpenHAB e di gestire da remoto l’abitazione. 9
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Interfaccia utente openHAB permette di ragguppare e interagire con le tecnologie connesse al software attraverso una semplice e intuitiva interfaccia utente raggiungibile dal browser del proprio computer. La comunità ha sviluppato inoltre una APP dedicata agli smartphone e tablet sia Android che Apple. La App permette infatti, dopo una breve configurazione, di accedere all’interfaccia grafica di OpenHAB e di gestire da remoto l’abitazione. 10
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Interfaccia utente openHAB permette di ragguppare e interagire con le tecnologie connesse al software attraverso una semplice e intuitiva interfaccia utente raggiungibile dal browser del proprio computer. La comunità ha sviluppato inoltre una APP dedicata agli smartphone e tablet sia Android che Apple. La App permette infatti, dopo una breve configurazione, di accedere all’interfaccia grafica di OpenHAB e di gestire da remoto l’abitazione. 11
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA ESP8266 L’ ESP8266 è un SoC (System on Chip) prodotto dalla Cinese Espressif, contiene un microcontrollore, un modulo WiFi con stack TCP-IP completo. Sopratutto, ha un basso costo. 12
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA MCU Vs CPU Un microcontrollore (MCU), a differenza di un microprocessore (CPU) è meno raffinato, meno general purpose, più specializzato in un solo compito. Però questo consente di avere più componenti integrate (il processore, la memoria permanente, la memoria volatile e i canali di I/O), il che gli consente di funzionare con pochissimi (a volte nessun) componente esterno, mentre un microprocessore richiede una intera scheda madre e unità esterne, memorie,periferiche. Nei microcontrollori il programma da eseguire viene memorizzato direttamente nella ROM, assieme al firmware. Quindi non è in grado (non necessita) di un sistema operativo, con i relativi vantaggi/svantaggi che questo comporta. Tutto questo li rende molto economici quindi preferiti nelle applicazioni specifiche (calcolatrici, centraline di auto, modem, antifurti, elettrodomestici ecc ecc). 13
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA L’evoluzione I microcontrollori esistono di ogni specie e versione, e fino a poco tempo fa non esisteva una configurazione standardizzata, e spesso i maker si creavano da soli la scheda con l’elettronica di contorno utile al loro funzionamento. Questo produceva un hardware diverso per ognuno. Proprio per questo nacque Arduino, che creava una scheda Open Hardware standard con microcontrollore Atmel, e fu un gran successo. Poi nacque l’ESP8266, e il WiFi integrato è stata la sua arma vincente per distinguersi. Vista proprio l’estrema economicità, produttori di terze parti hanno incominciato a commercializzare piccoli moduli che montavano ESP8266, ottenendo subito (verso il 2014) un grande successo presso le comunità dei maker. E’ un SoC pensato per la produzione industriale (piccolo, i pin non hanno un passo standard, sono pensati per il montaggio SMD) quindi per usarlo a livello hobbystico più facilmente, è indispensabile averlo montato su una scheda con elettronica di contorno più o meno completa. 14
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Sono state generate una marea di varianti . Le varianti più diffuse sono quelle prodotte da AI-Thinker, nominate ESP-01 , ESP-02, fino a ESP-14, ma ne esistono diverse di altri produttori, più o meno equivalenti. Si differenziano tra loro per le caratteristiche costruttive: il tipo di antenna del WiFi, la certificazione FCC o meno, la quantità di memoria, la presenza o meno di adattatori usb/seriali a bordo, il numero di Pin attivi. I prezzi sono irrisori: se comprate in Cina si va da 1,5 Euro per ESP-01 alle 3 Euro scarse per la scheda di sviluppo più completa con ESP-12E, ma i tempi di consegna sono oltre il mese (più vicino ai 60 giorni); in Italia, fate più o meno il doppio dei prezzi, ma potete comprare da Amazon. 15
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Caratteristiche ESP8266 RISC CPU a 32-bit: Tensilica Xtensa LX106 funzionante a 80 MHz* 4Kb di memoria RAM per le istruzioni e 96Kb di memoria RAM per i dati stack TCP/IP e la possibilità di collegarsi alle reti wifi b/g/n supporto per un Flash RAM esterna da 512Kb a 4Mb a seconda della versione, in cui viene memorizzato il programma 16 GPIO (anche se non su tutti i moduli sono utilizzabili tutti e 16) UART / I2C / I2S/ SPI / 1 modulo ADC a 10bit * su alcune versioni, overcloccate, la CPU può funzionare a 160Mhz e la Flash RAM a 80Mhz (invece di 40) 16
VimeLUG by ADMT INTRODUZIONE ALLA DOMOTICA Firmware ESP8266 NodeMCU: firmware basato sul linguaggio Lua Arduino: firmware basato su C++. permette di programmare l’ESP8266 e la componente WiFi come fossero un Arduino. Disponibile su GitHub. MicroPython: un port di MicroPython (una versione di Python per microcontrollori). ESP8266 BASIC: un Basic Open Source adattato per l’IoT (Internet of Things). Zbasic for ESP8266: Un sottoinsieme del diffuso Visual basic 6 di Microsoft, adattato a linguaggio per i microcontrollori della serie ZX e per l’ESP8266. Mongoose Firmware: un firmware open source con servizio cloud gratuito Open RTOS 17