Go Down

Topic: Il mio sistema domotico di casa con Arduino. (Read 3 times) previous topic - next topic

Rinpe

Veramente ottimo progetto, complimenti khriss75.
A - Vorrei capire bene come funziona tutta sta cosa. Da quel che ho capito tu hai un PC sempre attivo\acceso nel quale è installato HS3. Gli arduini fanno solo da interfaccia I\O. Ma come colloquia a livello SW arduino e HS3? C'è un altro programma d'interfaccia scritto magari da te? E a livello HW come colloquiano i due?
Mi piacerebbe se possibile che mi spiegassi a grandi linee come funziona il tutto. Lo trovo veramente interessante.
B - Un'altra cosa, ma l'interfaccia grafica sul tablet dal quale comandi tutta la casa è stata fatta in che modo? Fa parte di HS3?
C - Sulle tapparelle elettriche hai anche un pin di feedback che ti dice in che posizione si trova? Chiedo questo perchè se io volessi agire non da SW ma da interruttori fisici a parete dovrei sapere a che altezza è la tapparella.
Grazie mille intanto e ancora complimenti per il progetto.
Ciao

khriss75

Ciao Rinpe, grazie per i complimenti.
Ecco le risposte:

A) Esatto ho un pc sempre acceso, si tratta di un banale netbook con processore Atom N270 che consuma pochissimo (tra i 7 e 20 Wh, mediamente siamo sui 10Wh). Su questo pc gira homeseer2 (non ho ancora aggiornato alla 3, sto prima facendo dei test su un altro pc). La grossa potenzialità di questo software è quella di poter interfacciare qualsiasi cosa mediante plugin. Se tu sei un buon programmatore puoi ad esempio crearti un plugin che permette di far colloquiare il programma (HS) ad esempio con una porta seriale. Arduino si interfaccia con HS proprio grazie ad un plugin scritto da un ragazzo Inglese (gli sto facendo da beta tester). Nello sketch di Arduino si impostano i pin ingressi e le uscite che vengono poi viste da HS e gestite secondo quanto hai programmato. Quindi Arduino si comporta "semplicemente" come dispositivo di I/O. A dire il vero, per HS3 è stata prevista una funzione aggiuntiva che permette di far eseguire ad Arduino i propri calcoli, acquisizioni ecc. per poi inviare il risultato (o la serie di risultati) a HS.

B)Anche in questo caso è un plugin di HS. Serve semplicemente per evitare di scrivere a manina tutto quello che è una sorta di "sito intranet". Se sai programmare in VB o VB.Net puoi crearti tranquillamente il tutto. HS gira sul pc server che ha un suo indirizzo IP, sul tablet non fai altro che creare dei bottoni, slide ecc. che accedono al server. Esempio, sul server ho una device chiamata LUCE SALA, sul tablet disegno una lampadina e specifico che quando piene premuta il tablet deve inviare un comando di "on" alla device LUCE SALA posta in 192.168.xxx.xxx/sala/luce/ON. Ho semplificato un po ma il concetto è questo.

C)Nessun sensore che possa darmi un feedback sullo stato esatto della tapparella (tranne il sensore che ne indica la chiusura).  E' tutto gestito via software. Ad esempio il tempo di apertura o chiusura è di 10 secondi, se voglio aprire a metà aziono per 5 secondi il motore. Assegno poi ad una variabile il valore "5". Se alzo ulteriormente, aggiungo alla variabile i secondi di azionamento motore. Non ho un valore preciso ma più o meno so in che stato si trova la tapparella. Tanto la variabile viene reimpostata  in caso di apertura o chiusura completa della tapparella. Ripeto, non mi serve un feedback accurato della posizione, solo una volta ho sbattuto con la faccia sulla tapparella alzata a 3/4, e pensa non era ancora motorizzata! Ero io un poco... rinc rimbecillito...

resonance

Complimenti khriss75, io sto ristrutturando casa ed ho fatto mettere all'elettricità dei corrugati più grandi dei normali proprio per avere spazio per passare in futuro i cavi per i segnali. Volevo sapere se ci sono limitazioni sulla lunghezza dei cavi segnale e se in caso devo prevedere l'installazione di più Arduini.

Grazie!
Al principio fu creato l'Universo. Questo fatto ha sconcertato non poche persone ed è stato considerato dai più come una cattiva mossa.

andreino

Grazie ancora khriss75.

Non ho ancora chiaro se il codice VB riportato in prima pagina è una tua applicazione VB.NET che sfrutta oggetti HS.

Io sono dell'idea di costruirmi il "supervisore" in VB per una questione di flessibilità ed implementazione. Per esempio, userò WebBrowser per visualizzare link predefiniti.

Proprio ieri con un telecomandino IR da cornice digitale ho fatto 2 prove per
1. riattivare il monitor dallo screen saver e
2. posizionare l'applicazione su una tab definita dal tasto del telecomando (oppure usando il tasto "->|" faccio ciclare le tab, passando p.es. da tab delle temperature a tab "meteo", tab luci, ecc.).

Con il telecomando della TV (ingresso posizionato su una HDMI che viene dalla VGA splittata), mi direziono verso un ricevitore IR nella stanza (es. un copritasto opportunamente forato) e guardo, p.es. la tab della/le IP cam (è una mia esigenza molto specifica  :))  Mi manca la parte hardware (per ora sono a livello di ipotesi): il pc definitivo, lo splitter VGA, il convertitore VGA/HDMI e...alcuni metri di HDMI in tubo da 32  :smiley-roll:

Credi che una cosa simile sia possibile con HS?


khriss75

Si, quella riportata è una mia applicazione in VB che identifica il controllo di una porta. Se la porta viene aperta (il sensore va in ON), homeseer esegue quello script sfruttando ovviamente oggetti HS.

Non capisco esattamente cosa tu voglia fare, ma con HS non hai la necessità di cablare i monitor, tutto gira wireless (almeno nel mio caso).
HS ti permette di creare delle pagine web interne ad esso che puoi richiamare. I grafici che vedi nel video ad esempio sono generati da HS e storati in una sua cartella html. Io li richiamo semplicemente dal tablet. Scaricati la demo e giocaci un po, è più difficile da spiegare che da fare (quando avrai compreso la logica di tale software).
A quel punto ci colleghi arduino e gli fai fare quello che vuoi :-)

andreino

Bene!

Appena posso lo scarico, ma devo trovare il tempo per studiarlo in modo da non sprecare il trial.

Quello che volevo fare io (...una delle cose... :)) è quella di portare su un TV l'uscita video, sfruttare un ingresso HDMI, benchè senza interazione, per lo più per visualizzare alcuni contenuti. Per evitare di dover andare al pc per attivare la funzione, ho pensato di utilizzare un IR receiver, anche con lo stesso telecomando TV: Arduino riconosce il comando e manda al PC un Serial.print(), il PC riconosce il comando e disattiva lo screen saver e posiziona l'applicazione sul punto giusto.

Non so se con HS si riesca a fare quest'ultimo passaggio: Arduino -> PC -> agisce sull'interfaccia grafica


khriss75

Pero di aver capito bene...
Tu premi un pulsante del telecomando tv, arduino rileva la pressione (ed anche il tasto), comunica l'informazione ad HS. Ok, questo si può fare.
Ora HS ha ricevuto l'informazione (cioè il fatto che tu hai premuto il tasto x del telecomando), da questo momento puoi fare quasi tutto. Ad esempio puoi dire ad HS che una volta rilevata la pressione del tasto x del telecomando deve attivare l'uscita 3 di arduino dove ad esempio è collegato un relè ed accendi la TV. Oppure se invece si tratta di riattivare il monitor dallo screen saver è ancora più semplice... sicuramente c'è un comando per risvegliare lo screen saver ma io non lo conosco.
So che esiste però un programmino che simula la il movimento o la pressione di un tasto sul mouse, in questo caso ti basta creare uno script per HS che lancia tale programmino.
Se sai programmare e se esiste un comando del genere basta simulare la pressione di un tasto sulla tastiera.

andreino


Oppure se invece si tratta di riattivare il monitor dallo screen saver è ancora più semplice... sicuramente c'è un comando per risvegliare lo screen saver ma io non lo conosco.
So che esiste però un programmino che simula la il movimento o la pressione di un tasto sul mouse, in questo caso ti basta creare uno script per HS che lancia tale programmino.
Se sai programmare e se esiste un comando del genere basta simulare la pressione di un tasto sulla tastiera.



Esatto!

Con VB c'è SendKeys.send("+") che simula la pressione del tasto Shift, che viene vista come azione dell'utente et voilà il monitor si risveglia. Poi, come dicevo, ci sarebbe da far apparire una determinata schermata sul touch in modo che in TV si veda esattamente quella.

Con un'applicazione propria non c'è alcun problema, invece decidendo di passare a prodotti commerciali, per quanto super flessibili credo che sia normale trovare difficoltà o addirittura l'impossibilità di arrivare a tutte le soluzioni.

Appena posso lo provo!  ;) (30 giorni sono pochissimi per il mio tempo!)

Grazie

A.


Go Up