Domotica, dati e lista della spesa

Salve a tutti,
sono nuovo e mi sto documentando adesso, per la prima volta, su Arduino. Sono esperto (lo so dicono molti così) in programmazione facendo questo di lavoro e creando progetti su Android/Java, web(php, js) e altri linguaggi già da qualche anno, ma non so un'acca di elettronica e su come accoppiare i fili per far funzionare i vari sensori e relé e altro collegabile sull'Arduino.
Per questo motivo spero di ricevere da Voi aiuto su cosa è necessario acquistare per un progetto che ho in mente.

Il mio progetto nasce dalla necessità, piuttosto comune di questi tempi, di gestire alcuni apparati elettrici di una casa. Ho letto che molti lo fanno o hanno intenzione di farlo percui diciamo che non manca la documentazione e i tutorial per iniziare. Ma a me mancano le nozioni di base su cosa mi potrebbe servire dal ramo pratico percui ecco una breve lista di cosa ci devo fare.
Io da remoto, possibilmente da web poichè accessibile da qualsiasi recente smartphone e multipiattaforma, vorrei controllare temperatura delle diverse stanze della casa e sulla base di alcuni parametri da me impostati(es. min e max) attivare l'impianto di riscaldamento che già ora è gestito da un timer digitale con display che però tiene conto solo della temperatura della stanza in cui si trova, il salone, che essendo usata di frequente è anche generalmente la più calda.

Ecco quindi le funzionalità da gestire:

  • Temperatura e umidità (per il riscaldamento per il momento solo invernale poi magari con l'infrarosso anche estivo attivando il condizionatore);
  • Luci (giusto per sapere se ho dimenticato qualcosa acceso)
  • Presenza di gas(non vorrei saltasse casa)

Il tutto potrebbe essere gestito da un solo Arduino anche se i sensori sono in stanze diverse? basterà tarare i sensori calibrando eventuali dispersioni di segnale dei fili di rame giusto?
Per l'alimentazione pensavo a qualcosa di autonomo tipo pannello solare e batteria al litio. Ne vendono di economiche per caricare via usb i cellulari e mi pare abbiano proprio i Volt e gli Ampere richiesti. Per Arduino DUE mi bastano 3.3V e 800mA giusto?
Per la gestione remota pensavo alla classica shield ethernet per cominciare, anche se propenderei più per una shield GSM con una di quelle schede internet solo dati a meno di 10 euro/mese o in abbonamento in modo che Arduino sia in grado di gestire tutto autonomamente e sia il più possibile raggiungibile.

Comunque che ne pensate?
Credo che le criticità siano quelle di interfacciarmi con i vari dispositivi(es. per la gestione del riscaldamento freddo caldo) e la gestione remota. A questo proposito, ma Arduino gestisce qualche DB sequenziale? Es. SQLite o solo file? Perchè per effettuare alcune statistiche sarebbe comodo che Arduino mi garantisse almeno una storia di 5 giorni con acquisizioni di 30min.
Per il webserver ho visto un video interessante su un TinyWebServer. Che ne pensate? Arduino DUE è in grado di creare grafici con le librerie jQuery di Google? Infine, tutti leggono i dati via ethernet tramite JSON ma questo è buono se hai pochi dati. Io invece vorrei fare un parsing di file XML, è possibile? Arduino li genera, io li scarico sul dispositivo remoto, li leggo e li cancello da Arduino.

Che ne dite? Avete consigli e soprattutto di che componenti necessito?

GRAZIE 1000 anche solo per essere arrivati in fondo :slight_smile:

Ciao, io ho fatto un impianto di domotica a casa di un mio amico, gestibile da interfaccia web e telecomando.
Lascia stare la "maschera verde" perchè stavo debuggando:

Partendo dal presupposto che mettere in atto anche le più semplici cose richiede una mareeea di tempo (c'è sempre un problema) se non sai una cippa di elettronica è un progetto ambizioso! Sopratutto perchè se sbagli a dimensionare qualcosa rischi di trovarti un giorno con la casa spenta!!
Io uso un Arduino 2009 con Eth Shield, il problema di quest'utlima è che capita che si inceppi se riceve più di 4 connessoni (mi sembra). E quando dai tensione devi schiacciare il tasto reset altrimenti questa non parte (ma penso abbian risolto nell' ultimea versione).
Arduino non ha le risorse per interfacciarsi con un DB, devi tramite l'eth, collegarti ad un server (php? ) e far fare a lui il compito.
Per ora in quell' impianto gestisco luci e apertura porta tramite una sequenza di "squilli" al campanello.
L' interfaccia è scritta in php tramite la quale gestisco anche azioni programmate.
Il telecomando è un rolling code interfacciato con l'arduino.
Per accendere e spegnere la caldaia basta un comune relè.

Spero d'esserti stato un po' d'aiuto!!

@Guglio
Sembra interessante c'è un sito per vedere meglio ciò che hai fatto?

Guglio:
Arduino non ha le risorse per interfacciarsi con un DB, devi tramite l'eth, collegarti ad un server (php? ) e far fare a lui il compito.

UN db potrebbe essere anche un semplice file di testo (formato csv) da far scrivere sulla sd.

Ciao, non ci riteniamo ancora abbastanza soddisfatti per poterlo pubblicare!
Ma sicuramente non mancherà un post qui sul forum :wink:

Ma il grafico della casa l'hai fatto con sweet home 3d?

Cmq per quanto riguarda l'interfaccia grafica del webserver pensavo anche io di generare un'immagine statica della planimetria della casa e di mappare ogni stanza con il tag html di map. Poi cliccando su ogni zona della casa, caricare l'immagine della singola stanza e visualizzare al suo interno i sensori in essa contenuti. Tutti i bottoni inviano una richiesta di GET al webserver che legge i dati richiesti passando "history" o "now" se è richiesto uno storico oppure il valore reale e l'id della porta da leggere. Questo mi permetterebbe di evitare la lettura di tanti dati in contemporanea. Se invece volessi la gestione degli alarm dovrei pensarla diversamente poichè la lettura in modalità di allarme è una lettura costante dei sensori. Nel caso dei vari Arduino UNO e Mega mi pare di capire che il rallentamento sia dovuto sia alla trasmissione del segnale che all'elaborazione dello stesso e alla pubblicazione del dato sul web. Nel caso di Arduino DUE una maggiore potenza di calcolo potrebbe anche ridurre il peso dei calcoli richiesti. Cmq il problema si potrebbe ridurre leggendo i sensori a intervalli regolari e non tutti insieme. Ne esistono di urgenti e di meno urgenti in una casa e la Temp o l'umidità non sono sicuramente più urgenti del GAS. Se uscendo lascio il gas acceso scatta un MEGA allarme, se lascio una luce accesa posso anche preoccuparmi di attendere 1 secondo per vedere il dato sulla pagina web.

Per quanto concerne la poca conoscenza elettrica, questa deriva anche dal fatto che parto dalla preoccupazione che un corto elettrico genera non poche preoccupazioni. Su un impianto a 5V o a 3.3V magari non fa nulla, al max che succede mi si brucia l'Arduino? ma se questo Arduino ha uno sbalzo ed è collegato a un impianto da 220V allora il problema potrebbe essere + serio, no? Voi che con la corrente siete di casa (per restare in tema), vi sentite sicuramente più sicuri. Io potrei smontare un pc ad occhi chiusi ma se devo collegare un relé allo scaldabagno o alla caldaia mi prende una certa insicurezza... Per questo la parte dei collegamenti o me la studio oppure la faccio fare a qualcuno + esperto.

Siccome so che Arduino DUE funziona a 3.3V ditemi se i componenti di seguito riportati possono accoppiarsi:

  • Arduino DUE 47€
  • Relè Shield per Arduino 23€ (http://www.robotstore.it/product/448/Relè-Shield-per-Arduino.html)
  • DS18B20 - Sensore di Temperatura Digitale 1-Wire 5,50€
  • Sensore Rilevatore di Gas Metano - MQ-4 5,90€
  • Tastierino numerico - 12 tasti 4€
  • Arduino Ethernet Shield senza modulo PoE R3 35€ (andando sullo stesso componente di base è inutile avere il PoE
  • DHT11 - Sensore di Temperatura ed Umidità 13€ (Su questo componente non sono convinto perchè ha un'oscillazione di + o - 2 gradi che è tanto ma avere 2 sensori staccati mi sembra esagerato sono sempre spazi in meno sull'Arduino.
  • Cavo USB per Arduino DUE

Per la spesa ho messo in cantiere un 150 euro iniziali tra Arduino + pezzi e sensori. Poi in base all'uso concreto vedrò cos'altro serve. Che ne dite? Li accoppio bene insieme? Poi, ma già ho il componente, vorrei collegare sulla USB il mini pannello solare con batteria al litio incorporata. Il sistema funziona perchè prima di perdere il cavo usb ci caricavo il cellulare lentamente ma andava bene! In futuro magari potrei anche fare uno switch sulla linea elettrica in ingresso. Se la corrente è limitata, potrei azionare un secondo dispositivo ad es. dalla corrente a 220V con apposito trasformatore. Si può fare? Infine, non ho trovato uno shield GSM. Ma non si usano? Eppure per rendele il sistema indipendente da un router mi sembra la soluzione migliore. Altrimenti se salta la luce, trovo si la casa spenta.

Grazie!

Grazie!

Ciao Pecas,

anch'io sono più o meno nelle tue condizioni, con l'aggravante che di programmazione proprio proprio... :-/

sono indeciso se prendere la board Uno e tutto il materiale compatibile o se prendere la Due e aspettare la verifica delle compatibilità (anche come codice per la programmazione :-//

ma vedo che non ci sono molti interventi in proposito, nessuno si sbilancia, anche fuori da questo 3d...

Ciao, Salvatore

Guglio:
il problema di quest'utlima è che capita che si inceppi se riceve più di 4 connessoni (mi sembra). E quando dai tensione devi schiacciare il tasto reset altrimenti questa non parte (ma penso abbian risolto nell' ultimea versione).

Ciao, sai dirmi qualcosa di più in merito?
Chi ha risolto cosa e dopo quale versione?
Eventualmente se è troppo off topic puoi rispondermi in privato.
Ti ringrazio molto :wink:

Ciao a tutti. Sono nuovo del forum e sto cercando di capire se è fattibile (ho competenze elettroniche e informatiche) progettare un impianto domotico per la mia futura casa (comincerò a costruirla a febbraio in prefabbricato di legno). Mi piacerebbe sapere se esistono progetti più o meno definiti in rete, anche a pagamento, sui componenti da acquistare, programmi in parte già scritti e interfacce già pensate, giusto per non partire da zero. Ovviamente metto in conto che tutto questo sia anche a pagamento, ma mi costerebbe sicuramente meno di un impianto domotico tradizionale!

Pecas:
Credo che le criticità siano quelle di interfacciarmi con i vari dispositivi(es. per la gestione del riscaldamento freddo caldo) e la gestione remota. A questo proposito, ma Arduino gestisce qualche DB sequenziale? Es. SQLite o solo file? Perchè per effettuare alcune statistiche sarebbe comodo che Arduino mi garantisse almeno una storia di 5 giorni con acquisizioni di 30min.
Per il webserver ho visto un video interessante su un TinyWebServer. Che ne pensate? Arduino DUE è in grado di creare grafici con le librerie jQuery di Google? Infine, tutti leggono i dati via ethernet tramite JSON ma questo è buono se hai pochi dati. Io invece vorrei fare un parsing di file XML, è possibile? Arduino li genera, io li scarico sul dispositivo remoto, li leggo e li cancello da Arduino.

Ciao,

le risposte ai tuoi dubbi non sono univoche, perché molto dipende dall'architettura e dalla scalabilità di cui necessiti. In linea generale, le schede (una o più) sparse per la casa vanno considerati per quello che sono, dispositivi embeeded con capacità di elaborazione e calcolo limitati.

Il limite principale con cui si rischia di scontrarsi è quello della quantità di dati gestibili dai dispositivi. Prendiamo ad esempio il Wiznet W5100, che gestisce in hardware la comunicazione TCP/UP disponendo di circa 4 kByte di area dati per socket (condivisa per trasmissione e ricezione), dovendo i gestire la comunicazione per una pagina web e per una struttura dati XML, il rischio di dover frammentare le informazioni (va fatto lato software, in hardware non viene gestito) diventa elevato.
Una elevata frammentazione dei dati che vuoi trasmettere può risultare in tempi di risposta lunghi, rendendo il risultato meno entusiasmante, se pur funzionante.

Il discorso assume maggiore peso se si sceglie un architettura con più nodi, nel quale per economia ed ingombri si ricade sui classici microcontrollori ad 8 bit, dove nel caso del ATMega328 usato dalla maggior parte delle schede Arduino (e compatibili) si scende a 2kByte di RAM complessivi.

Un'altra domanda da porsi è fino a che punto le tecnologie utilizzate nell'informatica siano adatte alla domotica o altri casi in cui si vuole lavorare con dispositivi embedded.
Consideriamo il caso di un'interfaccia web gestita direttamente lato scheda, fatta bene, quindi usando AJAX per ottenere la parte dinamica (stato dei dispositivi da controllare nella casa), lo scenario che si presenta vedrà il web-browser interrogare la scheda periodicamente (consideriamo ogni 500 ms) per ottenere lo stato di una luce che nell'arco della giornata verrà accesa mediamente 4 o 5 volte.
Funzionerebbe, ma la scheda resterebbe impegnata a trasmettere inutilmente dati.

In linea generale, quello che hai proposto può essere realizzabile e funzionerebbe, magari con qualche limite. Ma se si vuole pensare ad usare le tecnologie giuste per il caso in esame, conviene utilizzare protocolli di comunicazione binari, basati su eventi.
In pratica, si trasmette solo quando serve (concetto simile al pushing di un server mail verso un'applicazione mobile) includendo dei polling periodi a bassa frequenza.
L'uso di protocolli binari riduce il carico di trasmissione e rende il sistema reattivo.

Per l'interfaccia grafica, al posto di metterla a bordo scheda, conviene spostarla in un'applicazione dedicata in grado di fare il parsing del protocollo di comunicazione.

In rete c'è tanto materiale da cui prendere spunto, se ti interessa ne parliamo.

In bocca al lupo.

Saluti,
Dario.

gregmaracas:
Ciao a tutti. Sono nuovo del forum e sto cercando di capire se è fattibile (ho competenze elettroniche e informatiche) progettare un impianto domotico per la mia futura casa (comincerò a costruirla a febbraio in prefabbricato di legno). Mi piacerebbe sapere se esistono progetti più o meno definiti in rete, anche a pagamento, sui componenti da acquistare, programmi in parte già scritti e interfacce già pensate, giusto per non partire da zero. Ovviamente metto in conto che tutto questo sia anche a pagamento, ma mi costerebbe sicuramente meno di un impianto domotico tradizionale!

Ciao,

in rete abbonda di progetti in stati più o meno avanzati, con caratteristiche più o meno diverse, dipende da cosa vuoi realizzare e come deve essere scalato.

Come riferimento posso citare alcuni progetti che conosco e reputo interessanti, parto dai sistemi di supervisione/server, posso o meno essere obbligatori in base all'architettura e le soluzioni scelte: openHAB, Freedomotic, openRemote e svariati altri basati sui protocolli più disparati.

Lato Arduino, alcuni dei progetti citati hanno degli sketch dedicati, oppure si possono usare dei progetti a se stanti che eventualmente possono essere integrati con progetti di supervisione. Nel forum ne trovi diversi, in stati di avanzamento diversi, uno che sicuramente è degno di nota è panStamp perché completo di hardware e software ma con la pecca di basarsi su un server per collettare i dati verso un'interfaccia utente. Io lavoro ad un progetto presentato in passato anche su questo forum, Souliss.

In rete c'è molto di più di quanto ho riportato in questo post, molto poi dipende da cosa e come si vuol realizzare.

Saluti,
Dario.

ciao, io sono riuscito a creare meta' del tuo progetto ( o almeno credo :smiley: )

nel mio progetto un server centrale dove gira php e un db mysql gestisce i vari arduini. ogni arduino e' indipendente e in grado di operare offline. l' utente, autenticato e memorizzato l' accesso, ha possiblita' di leggere e riprogrammare un nodo arduino ( se dispone dei privilegi per farlo ). fino a qua sono script in php, js e sql a fare tutto il lavoro. poi uno script in php, che opera come proxy, comanda l' arduino di turno. questo per questione di sicurezza e per superare limiti imposti da tecniche come ajax. io per ora ho programmato solo un arduino ad aggiornare un db ( fa la funzione di cronotermostato ) e segna data/ora, temp. ambiente e stato uscita rele'. poi come puoi immaginare non e' un problema creare un report o un grafico da un db in mysql... il codice in c e' ottimizzato per arduino uno. attualmente funziona tutto, pero' i siti web non hanno grafica :stuck_out_tongue: e funziona il cronotermostato ( per ogni giorno programmazione diversa per ogni ora ) e comando tapparelle elettriche. odio i pulsanti al posto di interruttori/deviatori e invertitori e quindi non faro' mai il comando dei punti luce...

Ho visto i progetti che mi avete citato nei post. Preferivo pensare ad un sistema "a filo" e non wireless: visto che mi sto costruendo la casa e posso avere la libertà di passarmi i corrugati dove e come voglio non vedo l'utilità di un impianto senza filo (di sicuro c'è quella economica, chiaro). Io avevo in mente un impianto con pulsanti che comandano luci e tapparelle; sensori di temperatura e umidità in ogni stanza (che poi di fatto devono comandarmi una pompa di calore on/off); luci a led dimmerabili a seconda della luminosità; controllo e gestione dei carichi utilizzati anche in base alla produzione fotovoltaica. Capisco, tanta roba. Quindi gestione sia via web con un tablet, ma anche gestione "normale" con pulsanti a muro. Se poi l'impianto è centralizzato o diviso per stanze per me è lo stesso a livello di installazione, c'è da capire cosa conviene e da dove partire.
Grazie.

gregmaracas:
Ho visto i progetti che mi avete citato nei post. Preferivo pensare ad un sistema "a filo" e non wireless: visto che mi sto costruendo la casa e posso avere la libertà di passarmi i corrugati dove e come voglio non vedo l'utilità di un impianto senza filo (di sicuro c'è quella economica, chiaro). Io avevo in mente un impianto con pulsanti che comandano luci e tapparelle; sensori di temperatura e umidità in ogni stanza (che poi di fatto devono comandarmi una pompa di calore on/off); luci a led dimmerabili a seconda della luminosità; controllo e gestione dei carichi utilizzati anche in base alla produzione fotovoltaica. Capisco, tanta roba. Quindi gestione sia via web con un tablet, ma anche gestione "normale" con pulsanti a muro. Se poi l'impianto è centralizzato o diviso per stanze per me è lo stesso a livello di installazione, c'è da capire cosa conviene e da dove partire.
Grazie.

Ciao,

se vuoi puntare ad una soluzione cablata ed in stile DIY, credo ci siano due soluzioni principali : RS485 ed Ethernet.

La prima ha come vantaggio una minore lunghezza dei cavi (puoi realizzare un multi-drop), ma d'altro canto è più sensibile a problemi sul cavo (se tranciato perdi un'intera porzione) e non nasce per la gestione delle collisioni, quindi si possono utilizzare solo protocolli master/slave.
La seconda ha un maggiore costo in termini di cavi, perché le connessioni sono punto-punto e sposta il punto di fallimento dallo switch al cavo (sostituire uno switch è più agevole di ripassare un cavo) e permette di utilizzare anche protocolli peer-to-peer per via della gestioni delle collisioni a livello MAC.

Se vuoi realizzare il tutto da solo, Olimex ha dei moduli interessanti. Utizzando il connettore UEXT si possono estendere le schede con I/O (relé ed ingressi) e controllare strisce LED (anche RGB), poi puoi gestire la comunicazione via Ethernet o RS485 in base ai moduli di estensione utilizzati.
L'unica nota è fare attenzione a come i moduli possono essere estesi attraverso UEXT, perché non tutte le combinazioni sono possibli.

Io ho inziato da poco a lavorare con questi moduli per includerli nel progetto Souliss, ed in linea generale credo rappresentino una buona soluzione per realizzare delle soluzioni hardware plug&play a costi interessanti.

Saluti,
Dario.

Pecas, facciamo un patto simbiotico: io sono "esperto" di Elettronica ad ampio spettro, però non ho molta dimestichezza con PHP, JScript et similia.

Io aiuto te in Elettronica, e tu aiuti me a legare il mondo Elettronico al mondo Software, spiegandomi bene i POST e i GET con variabili AIAX.

Ps. Ho la casa completamente gestita da oggetti elettronici domotici... :stuck_out_tongue: Cerca un vecchio post domotica con BaBBuino...