– Smart Domotik – Realizzazione passo passo PARTE 1
– Smart Domotik – Realizzazione passo passo PARTE 2
– Smart Domotik – Realizzazione passo passo PARTE 3
– Smart Domotik – L’hardware che lo gestisce
Non sono pratico solitamente a scrivere sul mio sito quello che faccio personalmente, ma questa volta vorrei scrivere qualche riga nel caso qualcuno voglia cimentarsi in tutto questo. 😛
Qualche mese fa ho comprato casa, e dato che è ancora in costruzione ho potuto scegliere molte cose e caratteristiche che la rendessero veramente mia.
Da buon smanettone la prima cosa che ho pensato è stata: Cacchio, voglio un’impianto domotico!!
L’idea si è presto arenata nel momento in cui ho provato a fare un po di conti.. la casa è abbastanza grande (circa 180mq) e un’impianto domotico “decente” si aggirava intorno ai 10-15 mila euro, decisamente troppo con tutte le spese che ho attualmente.
Ho cominciato a guardarmi intorno, su internet e youtube alla ricerca di cosa potesse fare al caso mio senza davvero svenarmi.
Ho trovato molte soluzioni valide, come sistemi domotici opensource o chi si è cimentato con il “fatutto” arduino.
Ma qualcosa ancora non mi convinceva.. troppe incognite, troppa invasione nell’impianto elettrico originale.
Inoltre l’elettricista mi ha guardato abbastanza scettico quando gli ho chiesto di “infilarmi” nel suo impianto stravolgendolo per poter comandare questo e quello.
Mi è poi venuta in mente una scheda elettronica che l’anno scorso ho utilizzato con mio padre per spegnere “di emergenza” le luci che rimanevano accese nel nostro stabilimento.. abbastanza pratica, molto spartana e con intefaccia davvero troppo “basic”.
Si tratta della E4I4O di futura elettronica, sviluppata da un grande ingegnere italiano che colgo l’occasione per ringraziare: Roberto Prestianni.
Grazie al suo aiuto e alla sua disponibilità ho potuto scoprire tutte le potenzialità di questa scheda, e sorgenti alla mano, ho capito che era proprio quella che faceva al caso mio.
Questa scheda grazie a varie espansioni riesce a comandare con un bus apposito un gran numero di ingressi ed uscite.
Le schede in se non costano poi molto (comparandole all’arduino di turno per esempio), il problema era dato dalla quantità di I/O che mi servivano, che mi hanno portato ad aquistare in totale ben 8 schede tra quella principale e le espansioni!
Tempo qualche giorno dopo l’ordine e buona parte dell’hardware ce l’avevo, con l’aiuto del mio fantastico babbo (smanettone pure lui) si è assemblato la prima bozza del quadro che avrebbe dovuto gestire il tutto.
Ora il problema era il firmware della scheda, con l’interfaccia davvero troppo basic per le mie necessità e non adatto a gestire le 7 espansioni che mi servivano, quindi mi sono messo a modificare i sorgenti della scheda e con un bel po di fatica non conoscendo quello specifico linguaggio, e abbozzando un’interfaccia grafica un po piu utilizzabile (grazie anche qui a Roberto) sono arrivato ad un risultato un po più utilizzabile.. qui potete vedere il prima ed il dopo:
e questo è il quadro delle interfacce montate:
A lato è stato predisposto uno spazio dedicato per l’alimentazione e i relè di supporto agli ingressi.
Una volta che abbiamo verificato che tutte le schede funzionassero correttamente, sono passato al frontend.
Un sistema domotico deve avere una buona interfaccia grafica ed essere utilizzabile senza difficoltà da qualsiasi dispositivo.
Per questo ho evitato di basarmi su una semplice applicazione desktop, o un’applicazione solo mobile.
Ho sviluppato un’intera interfaccia grafica adattabile sia a mobile che a qualsiasi pc.
Da cosa cominciare? si sa, la maggiorparte delle cose è difficile inventarsele totalmente da zero, quindi diciamo che ho preso mooolto spunto dall’interfaccia grafica di Easydom NEXT, sistema domotico realizzato in collaborazione da microsoft e che reputo davvero il piu bello ed efficace a livello grafico e usabilità!
Armato di graaaande impegno e grazie all’aiuto dell’amico madhacker, un uomo che della pazienza ha fatto il suo stile di vita (grazie che mi sopporti 😛 ), ho cominciato ad inoltrarmi in un’area che fino ad ora era rimasta a me molto distante, cioè quella di html5, javascript e php.
Per avere un punto di partenza servivano dei rendering della casa, cosa che per diletto avevo già fatto (dovendo progettarla praticamente da zero mi hanno aiutato molto nella realizzazione).
Secondo punto, mi serviva una base grafica, ed ho utilizzato jquery con il plugin Feauture Carousel , davvero benfatto!
Ecco qua la prima base di partenza.
Ok, la parte “figa” c’era, ora bisognava passare alla sostanza!
Volevo evitare di caricare troppo la scheda inserendo al suo interno tutto il frontend, ho quindi deciso di svilupparlo totalmente sul server del mio sito, e di puntare alla scheda internamente alla LAN , tramite php e le funzioni di callback (grande scoperta! ).
Per evitare di passare ogni volta dall’interfaccia grafica della scheda, ho preferito chiamare i singoli comandi dal mio frontend, ed interrogare gli ingressi della scheda ogni 5 secondi, questo è il risultato:
Nella domotica si possono gestire un sacco di cose, dall’illuminazione alle singole prese elettriche, dalla videosorveglianza al sistema di allarme e di rilevazione di fumo/gas.
A me non servono tutte queste cose, principalmente quello che mi interessa gestire è:
- illuminazione
- Tapparelle/Garage/Porta di casa
- Videosorveglianza
- Temperatura ambiente
Diciamo che sono a buon punto, le prime 3 sono attive e funzionanti, mi manca solo la gestione dei termostati, un punto abbastanza cruciale data la poca disponibilità (quasi nulla) in europa di termostati gestibili tramite rete.
Quello che ho addocchiato è l’HEATMISER PRT-TS WIFI, venduto in italia da un’unica ditta, e dal prezzo un po spropositato.. ma sto risparmiando ed in futuro probabilmente ne prenderò un paio per gestire la temperatura ambientale dei due piani.
Per quanto riguarda la videosorveglianza ho aquistato 4 telecamere IP della apexis (mod. J901), un prodotto con rapporto qualità/prezzo davvero buono calcolando che sono totalmente motorizzate!
L’interfaccia anche qui non era delle migliori, e volevo quindi integrarla con il mio frontend, riuscendoci con buoni risultati.
Le telecamere sono visionabili sia direttamente sulle piantine, con l’immagine che è trascinabile sullo schermo in modo da non intralciare i comandi, sia su una gestione apposita dove è possibile visualizzarle tutte assieme ed effettuare pan e zoom con estrema semplicità.
(La qualità video in realtà è molto superiore, qui la telecamera è in basso all’interno del mio quadro server con sopra ancora la pellicola protettiva 😛 )
Penso che per ora sia tutto, i comandi funzionano bene e le schede rispondono con discreta velocità, i prossimi step saranno gestire gli “Scenari”, situazioni tipo in cui il sistema si occupa di gestire varie operazioni con un’unico comando, un’esempio potrebbe essere uscendo di casa che tutte le luci si spengano, si abbassano le tapparelle e la temperatura dell’ambiente scende, mentre ritornando a casa si accendano le luci dell’ingresso, si alzino le tapparelle ed i termostati tornino alla temperatura ideale.
Prima di lasciarvi, vi lascio un piccolo video in anteprima del sistema in azione, mi scuso per la qualità, ma è stato un po difficile comandare l’interfaccia mostrando le schede e nel mentre registrare 😛
Buona visione e alla prossima!
Vedi qui per aggiornamenti su questo argomento:
Pingback:Smart Domotik - Realizzazione passo passo PARTE 2 » My Virtual Word
Pingback:Smart Domotik - Realizzazione passo passo PARTE 3 » My Virtual Word
Ciao, complimenti per la realizzazione a dir poco “ECCEZIONALE”.
Ti scrivo per sapere se hai dovuto affrontare la problematica del mantenimento di uno stato.. quando sul Modulo A un ingresso va in ON impulsivamente mi occorre che sul Modulo B lo stato permanga sino alla pressione di un tasto di reset magari collegato ad una delle linee RAn riprogrammate come ingresso.
Il comportamento deve essere applicato anche a tutte le linee OUT di eventuali moduli di espansione I2C, ti è capitato qualcosa di simile o sai come contattare chi ha fatto una cosa del genere ?
GRAZIE!
Ciao, per evitare di complicare il funzionamento ho preferito spostare tutta la logica dalla scheda integrata al webserver che controlla la scheda.
Fare come vorresti vuol dire andare a modificare il sorgente della scheda per gestire queste casistiche particolari, ma io vedrei meglio farlo fare ad un arduino che si adatta di piu a queste esigenze anche perchè ora con quelli nuovi puoi riprogrammarli on the fly direttamente via wifi.
La scheda che utilizzo invece lavora molto a basso livello e anche andare a programmarla non è molto semplice (per poterla modificare io ho comprato i sorgenti dall’ingegnere che ha progettato la scheda).
Spero di essere stato utile 😉
ciao vorrei fare una cosa come la tua fatta bene veramente,
solo che non ho molta conoscenza in programmazione…..
mi potresti aiutare???
anche perchè la parte garfica è fighissima……
grazie spero tu mi possa contattare
Ciao, dipende molto cosa intendi fare e cosa vuoi gestire!
Ciao, complimenti davvero per il lavoro fatto, ho due domande da farti, la prima, che programma hai usato per il rendering? So che magari chiedo troppo, se puoi potresti inviarmi qualche pagina del web per capire che codice hai utilizzato e come, ne capisco poco una volta programmavo in php da autodidatta ma sono arrugginito se non sbaglio tu hai usato il nuovo html5 jquery e web socket o simile sto guardando su internet ma di esempi da poter modificare ed utilizzare per fare domotica non si trova nulla.
Ti ringrazio tante in anticipo
Cordiali saluti
Ciao Cristian, per il rendering ho usato Sweet Home 3D (http://www.sweethome3d.com/it/) mentre per l’interfaccia della domotica ho usato php, html5 e jquery. Mi dispiace ma non distribuisco il sorgente. A suo tempo (2-3 anni fa) avevo cercato anche io qualche interfaccia carina per poter gestire la domotica ma non avevo trovato niente di accattivante e soprattutto comoda. Per questo mi sono ispirato come ho scritto all’interfaccia di easydom ma facendola mia e migliorando quello che secondo me era scomodo da usare.
Se hai altri dubbi non farti problemi a chiedere!
Ti ringrazio ugualmente per la tua risposta. Mi dici solo una cosa in che modo lato server leggi le chiamate alle funzioni, ciò come leggi quando viene chiesta l’accensione della luce o viceversa viene piggiato un tasto fisico e lo visualizzi? Potresti fare un esempio di codice, anche per email. Altra domanda, scusa se ne approfitto, che funzione hai irizzato per vedere sul web e gestire le speed dome ? Ultima domanda, i consumi in che modo li monitorizzi cioè che hw usi? Grazie mille
Ciao
Le schede che gestiscono la domotica sono collegate in rete. Di conseguenza dal server interrogo le schede ogni tot secondi per sapere quali sono gli ingressi attivi e invio i comandi per accendere e spegnere le luci. Per gli esempi di codice ne trovi a migliaia cercando su Google, un buon punto di partenza è il funzionamento di arduino yun.
Per gestire le speed dome ho utilizzato e modificato il codice delle interfacce web interne di ogni telecamera.
Per i consumi invece uso un’altro arduino che monitorizza tensione e corrente consumata e prodotta dai pannelli fotovoltaici.
Puoi trovare ulteriori informazioni sul sito di openenergymonitor (http://openenergymonitor.org/emon/)
Ciao,scusa nuovamente un disturbo, ho un’altra domanda da farti sempre in merito alle speed dome, tu hai detto che hai modificato le pagine interne, mi spieghi come si fa ad estrarre le pagine per modificarle perchè ho provato con una mia ma non mi salva il codice sorgente e non entra tramite ftp.
Grazie in anticipo
Saluti
Non ho modificato le pagine interne delle speed dome, ho preso il sorgente delle pagine e l’ho integrato nella mia interfaccia, in modo che in base alla telecamera che selezioni chiama le sue funzioni specifiche in js, che sono quelle che ho preso da ogni pagina delle speed dome. 😉
Grazie ancora , si scusa mi sono spiegato male intendevo dire come hai fatto a recuperare il codice perchè di solito php o simile lo nasconde. Grazie e scusa il disturbo
Ciao
Come ti ho scritto prima le funzioni che usa sono in javascript, quindi puoi vederle senza problemi analizzando il sorgente delle pagine.
Grazie di tutto
Grazie. Scusa
Ciao, anche io sono entrato in possesso di questa scheda ma ho problemi con la modifica delle pagine del webserver. L’ingegnere che l’ha ideata mi ha fornito il tool Microchip per generare il binario da caricare sulla scheda, ma il procedimento – nonostante il caricamento vada a buon fine – non da l’esito sperato, in quanto le pagine così caricate sembrano mancare dei riferimenti alle variabili. Ho provato a contattare la Protech ma ancora non mi hanno fatto sapere nulla, volevo chiederti se per caso ti era capitato un problema simile e come l’hai aggirato… Grazie 1000.
Ciao, purtroppo no, io ho comprato direttamente i sorgenti dall’ingegnere che l’ha ideata, quindi l’ho modificati in base alle mie esigenze.
Dal mio punto di vista comunque non è la scheda giusta per gestire un’impianto domotico, nella mia versione ci sono alcuni problemi che mi hanno portato a riprogettare completamente tutto il sistema (basandomi su arduino).
Spero comunque che l’ingegnere abbia creato una nuova versione esente dai problemi che ho io e che tu possa arrivare al tuo scopo.
In bocca al lupo! 😉
Ti spiego… A me ha fornito la scheda, con il tool microchip per generare il .bin da caricare, contenente le pagine web. Non riesco a capire come mai il binario così generato (persino facendo un test con le pagine di default), fa si che le pagine manchino di tutti i riferimenti alle variabili. Ti è capitata una cosa simile per caso? Se avessi bisogno dei sorgenti, potresti vendermeli? Grazie…
No, mai successo.. io ho modificato i sorgenti e non uso le pagine web, faccio direttamente le chiamate alla scheda.
No, dovresti chiedere all’ingegnere.. io non posso vendere i suoi sorgenti, anche perche i miei sono un bel po diversi dai suoi.
Hai provato a chiamarlo? A suo tempo ci siamo sentiti parecchie volte telefonicamente ed era molto disponibile!
Ciao, sto avendo problemi a compilare i sorgenti, mi potresti dare qualche dritta? grazie.
Ciao Oscar, purtroppo no ho cambiato tecnologie un paio d’anni fa e non uso più queste schede. Puoi provare comunque a contattare Roberto Prestianni (trovi i suoi contatti con una googlata), penso che sarà sicuramente disponibile ad aiutarti 😉
Oscar hai i sorgenti della scheda? Potresti girarmeli ad antomaxxx[chiocciola]libero.it? Potremmo darci una mano a vicenda… Grazie.
ciao complimenti per il lavoro. venderesti i sorgenti della scheda in quanto nn riesco a contattare roberto.