Grazie Pablos sia dei complimenti e in particolare dei suggerimenti che apprezzo molto. :)
Colgo l'occasione per aggiungere qualche dettaglio in più.
Devi sapere che il sito è in costruzione e fatto a tempo perso, molte cose sono da migliorare e da aggiungere, tra cui le foto ad alta qualita (non fortemente compresse) e video (prossimamente).
Per quanto concerne l'interfaccia utente, il software può mandare lo stato dei dati via seriale al computer. Un programma in visual basic può distribuire i dati su una piantina della casa animata. Ho usato può, perchè i prg visul basic li ho appena accennati. Da qui il passo è breve per far reagire il sistema ai comandi del computer. Al momento l'interfaccia utente di input è rappresentata dagli interruttori che premuti in combinazione attivano funzioni varie. L'interfaccia di output è il waveshield che diffonde tramite altoparlanti file wav preregistrati.
I timer sono gestiti immettendo i dati in diverse matrici e con una gestione del timer interno (millis()) particolare; incremento una variabile "tempo" parallelamente a millis e quanto non ci sono temporizzazioni in corso in nessuno dei vari pin, la resetto e quindi tale variabile riprende a incrementarsi. In questo modo risolvo problema della variabile millis che dopo 50gg va a zero. Questo algoritmo permette al sistema di operare senza necessità di un orologio rtc.
L'impianto elettrico lo gestisce i relè collegati all'arduino. E' l'arduino che comprende se sono io che accendo una luce perchè ho premuto un pulsante o perchè gli arriva l'ok dai sensori PIR esterni (se sono io e accende la luce spia sugli interruttori fissa, se è lui la accende lampeggiante).
Non c'e l'interfaccia internet. Al momento. Ma sto guardando android. Uno smartphone può diventare una buona interfaccia utente se comunica con arduino in qualche modo. Non è detto che la implementerò in un futuro...
Ancora non controllo ne temperature ne assorbimenti anche se non è difficile agiungerli. Sappi che questo progetto è nato da un nucleo a cui sono state aggiunti sempre più pezzi. L'hardware semplice e le potenzialità software permettono di aggiungerci tutto.
Per il Bus I2C, ci hai preso in pieno. Il bus non mi permette di dislocare le schede harware in giro per la casa. Questo può essere visto come limite. Per le mie esigenza andava bene perchè ho creato una nicchia ed ho inserito tutto l'hardware lì. Ovviamente ho contro i cavi e a favore il fatto di non avere scatole murate nei muri per contenere le schede. In ogni caso Arduino è talmente flessibile da poter cambiare la modalità di comunicazione con semplicità.
Le schede di output al momento non possono essere lette. Volendolo fare si tratta di modificare il software del chip ATMEGA256 della scheda stessa. Tuttavia per il sistema non è importante leggerle perchè il software impone loro di riflettere lo stato di un vettore di gestione noto.
Per quanto concerne il log questo può essere demandato ad un programma visual basic che raccoglie i dati. Potrebbe essere lo stesso che visualizza i dati sulla piantina. Occhio ai log però ho notato che è bene inviare sulla seriale solo il singolo evento e non lo stato di tutti sensori. Questo perchè la trasmissione è una attività lenta e riduce tantissimo il numero di letture delle schede di input al secondo.
Dentro ogni tappo cieco della Vimar Idea c'e una fila di pulsanti e una fila di led. Quando si preme un pulsante il relativo led è la spia della luce accesa. In ogni punto luce di tutta la casa è quindi possibile sapere subito quali luci sono accese è utile per sapere a colpo d'occhio se ho lasciato accese una delle 4 luci del esterne... ma forse non ho compreso cosa intendi con la storia del 1 e 5 led...
Bhe, ancora grazie per la tua attenzione che mi ha dato lo spunto per descrivere qualche dettaglio del progetto. :)
Ciao