Go Down

Topic: DomoticHome [Arduino - Android - WebApp] (Read 5791 times) previous topic - next topic

bl4d3

Ciao ragazzi,
riprendo qui il seguente thread riguardante l'applicazione per Android per pilotare Arduino
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1281726774
abbiamo appena appena messo online questo portale
http://www.domotichome.net
dove è possibile generare automaticamente il codice per arduino ed ho incluso anche l'invio dei dati recuperati dai sensori al server in modo da stilare grafici etc...poi se vedrà che ne esce.
Per ora ho integrato solo un sensore di temperatura e il CT sensor (ho usato il codice dei ragazzi di openenergymonitor).
Ho creato un form per segnalare quali sensori integrare, altrimenti per mail o via forum mi perdo :)
http://www.domotichome.net/device_requests/new
Il dominio mi è stato offerto da unbit.it

Se qualcuno vuole fare qualche test è il benvenuto. Spero che il tutto sia gradito!

Mauro_Titan

Ciao e Complimenti per il tuo progetto .. fa invidia  :smiley-mr-green:

ma perche' hai optato per Android e non per un server PHP o simile ?
primo .. se non hai il tuo cell. con qualsiasi portatile wireless ti puoi collegare.
Secondo .. penso che come sicurezza offra maggiori garanzie un server PHP.

Cmq. complimenti ancora, ottimo lavoro.

bl4d3

Ciao, ti garantisco che controllare twitter e poter accendere una luce o aprire il cancello intanto che sei in bagno non ha prezzo :) idem per quando torni a casa, premi un pulsante e ti si aprono le porte.

Stò lavorando anche ad un app web based.

superlol


...
primo .. se non hai il tuo cell. con qualsiasi portatile wireless ti puoi collegare.
Secondo .. penso che come sicurezza offra maggiori garanzie un server PHP.
...


non sono d'accordo:
sulla prima hai ragione ma sulla seconda per niente.
PHP comunica tramite HTTP e quindi diventa una risorsa disponibile:
il PHP serve per fare siti web in parole povere, applicazioni che comunicano con il server e fin qui ti do ragione, ma mentre in una piattaforma software dedicata tu puoi anche creare un tuo socket e magari passare password che rimarranno cifrate in un server PHP si fanno richieste in HTTP, fin troppo poco sicure per un sistema che ti potrebbe far entrare in casa altrui senza troppi problemi e rubargli qualsiasi cosa abbia. in poche parole un server PHP a mio parere è troppo poco sicuro, mentre con un'applet appositamente scritta puoi fare chiamate su porte non convenzionali (e quindi filtrarle dal router) e passare parametri in una comunicazione che decidi tu.
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Mauro_Titan


Ciao, ti garantisco che controllare twitter e poter accendere una luce o aprire il cancello intanto che sei in bagno non ha prezzo :) idem per quando torni a casa, premi un pulsante e ti si aprono le porte.
Stò lavorando anche ad un app web based.

Infatti .. come applicativo e' interessante ..
mi capita spesso di dover saltare il cancello perche' il telcomando e' rimasto sull'altra macchina  =(
oppure chiudi .. esci con la macchina .. chiudi il cancello .. attacchi l'allarne e poi ti accorgi che la luce e' rimasta accesa  =(

Ma con un Server Web arduino come lo colleghi ?
con la seriale
o sempre con il cavo di rete ? ma si puo' collegare anche in wireless arduino ?
tipo che le chiavette USB ?
e in questo caso come mandi di comandi ? e leggi i risultati ?

Grazie.
Ciao.

bl4d3

L'idea che mi frulla per la testa ora è quella di poter impartire comandi ad arduino dal portale domotichome.net.
Mi loggo -> metto HIGH un out di arduino -> ogni X sec arduino interroga domotichome.net e chiede se ci sono dei comandi per lui -> se si li esegue

L'unico problema è la latenza, un comando gestito in questo modo impiegherà almeno 3/4 sec prima di essere eseguito.
Dal device android la latenza è pari a 0 circa.
Farsi un webserver in casa in php o come vuoi, comporta che un pc sempre acceso il chè non mi piace molto, è dispendioso, ma è sicuramente una strada che tanti hanno adottato.

L'intenzio è quella di fare girare tutto via http, senza seriali o bus vari.

KrashNet

#6
Jan 31, 2011, 10:07 pm Last Edit: Jan 31, 2011, 10:09 pm by KrashNet Reason: 1
Personalmente nel mio progetto per forza di cose sto integrando sia server LAMP (LinuxApacheMysqlPhp) che Android, ritengo che tutte e due le tecnologie siano ottime, testate e inevitabili al giorno d'oggi.

Teniamo presente che è molto più difficile che un malintenzionato che si introduca nella mia rete da un paese sperduto dell'est (gli attacchi sui server li rilevo sempre da la  ]:D )  sia anche interessato a fare indagini su IP, Provider, blabla trovare effettivamente dove abito poi farsi il viaggione fino a casa mia e poi derubarmi "senza che io nel frattempo mi sia accorto che qualcuno ha avuto accesso non autorizzato al mio sistema"!

Ma trovo molto piu semplice e sbrigativo "rubare un cellulare, smanettare nelle app e trovare la nostra bella applicazione di controllo totale della casa" e quindi, dato che sono un ladro che faccio?... bella rigaz... stasera ci facciamo la villa di quello del telefonino!

E non è detto che il telefonino sottratto sia proprio il nostro...  magari quello dei nostri genitori, ormai anziani che sono convinti di ritrovarlo in due o tre giorni di ricerche in casa, nel frattempo uno ha tutto il tempo necessario per organizzare il colpaccio... è allettante sapere che ci sono allarmi e dove trovarli... ce lo dice il menu... Perimetro, cancello frontale,cancello secondario, cantina, box auto, porta di ingresso, finestre blablabla...

Ok nel dubbio possiamo mettere mano all'impianto e ai codici in modo da disabilitare temporeneamente i controlli dai terminali Android...ma se noi siamo in vacanza? chi ci mette mano?
(qui torna utile un accesso remoto via web)

Questo solo per dire che entrambe le tecnologie sono valide e si può trovare, con i dovuti accorgimenti, il modo migliore per impiegarle.

Quindi per attivare il cancello di casa col cell... "facciamo in modo che debba essere inserita una password" (ok ci smeniamo in temini di rapidità di accesso ma almeno siamo un po + sicuri)

Magari non mettiamo una password all'index dell'applicazione se proprio ci pesano quei due secondi di interazione e lasciamo liberi il menu Luci, scenari e altre cose che non compromettano la sicurezza

E' già una cosa da fantascienza poter fare queste cose... perdere il tempo di inserire un codice mi sembra il minore dei mali.

P.S.
Teniamo presente che queste cose non le facciamo solo per un monolocale o un piccolo appartamento, un negozio o magazzino, quanto più è grande la proprietà da coprire, più dettagliati saranno anche i menu e le indicazioni di quali e dove siano i sistemi di allarme... mettete queste benedette password  ;)


@ bl4d3
Complimenti per il progetto, continuate cosi!
.

Mauro_Titan


L'idea che mi frulla per la testa ora è quella di poter impartire comandi ad arduino dal portale domotichome.net.

Non e' che mi convinca molto questa cosa ... ma forse sbaglio.
Diversamente fosse qualche automazione tipo processo produttivo.
Poterla controllare dall'altra parte del mondo non e' male.


Farsi un webserver in casa in php o come vuoi, comporta che un pc sempre acceso il chè non mi piace molto, è dispendioso, ma è sicuramente una strada che tanti hanno adottato.
L'intenzio è quella di fare girare tutto via http, senza seriali o bus vari.


Io al contrario .. preferisco il pc acceso che il cel con applicativo .
Anche perche' ormail il 90% delle persone tengono il pc acceso 24h su 24h
il 20 % perde un cell al giorno
il 30 % distrugge un cel al mese
(dati inventati :) )

Il mio dubbio nasce proprio dal sistema di comunicazione di Arduino.
Una cosa e' un locale in costruzione , ma su una casa gia' fatta e dove non e' possibile far passare cavi di rete come la gestisci ?
e' impensabile che 1 Arduino possa controllare interamente la casa e pertanto ci vorranno piu' arduino .
Come dialogano tra loro .. la cosa ideale sarebbe in wireless Wpa ma e' possibile ?
in seriale si possono intercettare e si perderebbe la sicurezza.

Ciao.

uwefed

Se si vuole mirare a un consumo ridotto si puó usare un PC industriale con un consumo di qualche watt e non un PC normale o un notebook.
Ciao Uwe

Mauro_Titan

ma tu l'hai collegato direttamente al router ,
ma come gestisci i comandi ?
come fai a far le richieste ?
ma hai anche le risposte da arduino ?

bl4d3

copio un pezzo del post precendete:
################################################## ###
AS = Arduino Station (raggruppa più sensori/attuatori) è composto da arduino 2009/Mega + ethernet shield

(collegata a router wifi)/wifi shield + RF TX
ASRF = Arduino Station (raggruppa più sensori/attuatori) è composto da arduino 2009/Mega + RF RX (va piazzato dove non arriva il cavo di rete e limita i costi)
M = Master (applicativo su piattaforma android)

Precondizioni: tutti i dispositivi (AS, M) sono sulla stessa subnet e comunicano tra di loro attraverso TCP/IP.

Ogni AS è programmata in modo da comunicare ad M i vari sensori ed attuatori (terminazioni) che sono stati

collegati ad esso ed anche le terminazioni collegati ai vari ARSF (questo va inserito programmato all'interno di AS).

Comunicazione Sync
-------------------

AS esegue un ipscan sulla subnet specificata quando trova un ip attivo invia la chiamata http:

http://ipttivo/?m=hello

M risponde indicando le sue terminazioni seguendo questo schema JSON:

{"ip" : "192.168.10.15", "devices" : [" +
"{ "type" : "gate", "name" : "cancellino ingresso", "out" : "5"}, " +
"{"type" : "door", "name" : "porta ingresso", "out" : "4"}, " +
"{"type" : "light", "name" : "luce soggiorno", "out" : "6"}, " +
"{"type" : "light", "name" : "luce cucina", "out" : "7"}," +
"{"type" : "temperature", "name" : "camera da letto", "out" : "0"}," +
"{"type" : "temperature", "name" : "camera bimbi", "out" : "9"}," +
"{"type" : "wattmeter", "name" : "consumo energetico casa", "out" : "10"}]}

dove:
- ip indica l'ip del master
- out è il pin al quale è collegato l'attuatore
- name nome dell'oggetto (presa cucina)
- type tipo dell'oggetto

Tipi disponibili

- plug (prese)
- light (luci)
- door (porte)
- gate (cancelli)
- temperature (sensore temperatura)
- humidity (sensore umidità)
- wattmeter (sensore corrente o tensione)

Quando M avrà rilevato tutte le terminazioni collegate a ciascun AS verrà mostrata l'interfaccia di figura.

Attivazione/Disattivazione terminazione
------------------------------------------

AS invierà la chiamata http

http://M/?out=1&status=1

- M indica l'ip del master recuperato in precedenza
- status può essere 1/0
- out indica la terminazione

AS risponderà con l'esito dell'operazione con una stringa JSON del tipo

{"out": "4", "status" , "1"}

################################################## ###

Mauro_Titan


AS = Arduino Station (raggruppa più sensori/attuatori) è composto da arduino 2009/Mega + ethernet shield


Sono un po' duro di comprendonia  =(
Questo e' il principale ..
collegato arduino al router con il :
http://www.robot-italy.com/product_info.php?cPath=1_119_154&products_id=932
e qui e' chiaro.


(collegata a router wifi)/wifi shield + RF TX
ASRF = Arduino Station (raggruppa più sensori/attuatori) è composto da arduino 2009/Mega + RF RX (va piazzato dove non arriva il cavo di rete e limita i costi)


Questo non e' chiaro .. che hai utilizzato per connetterti in Wifi ?


M = Master (applicativo su piattaforma android)
Precondizioni: tutti i dispositivi (AS, M) sono sulla stessa subnet e comunicano tra di loro attraverso TCP/IP.


qui devo provare a vedere come funziona .
io ho un IPAQ .. con cosa potrei farlo ?


AS esegue un ipscan sulla subnet specificata quando trova un ip attivo invia la chiamata http:
http://ipttivo/?m=hello


Conosco poco e con solo la teoria non riesco a capire bene
Mi interessa il fatto di attaccare il cancello al router , cosi lo apro anche senza telecomando con HP Ipaq.



KrashNet

#12
Feb 01, 2011, 01:25 pm Last Edit: Feb 01, 2011, 01:27 pm by KrashNet Reason: 1

Se si vuole mirare a un consumo ridotto si puó usare un PC industriale con un consumo di qualche watt e non un PC normale o un notebook.
Ciao Uwe


Io sto usando questi due Eee PC

ASUS EeeBox PC B202 consuma circa 40w a pieno regime
http://www.asus.it/product.aspx?P_ID=QUObl5lSRQQ3lSqJ

ACER Revo consuma circa 65w a pieno regime
http://www.acer.it/ac/it/IT/content/series/aspirerevo
(scalda un po più dell'Asus ma la ventola all'interno fa il suo lavoro)

Entrambi dotati di prese monitor, ethernet, mouse, tastiera, parecchie USB e Wi-Fi

li uso come serverini per compiti diversi, si può benissimo installare un server LAMP o addirittura Proxmox e smplificarci la vita. (consiglio l'Asus con installazione Proxmox)

Oppure se non si hanno grandi esigenze si può optare per un famigerato NSLU2 (il lumacone)
che se non sbaglio consuma tra i 10w e i 15w ma è un po un casino da impostare, cioè bisogna studiarsi qualche tutorial (ovviamente non ha le prestazioni e le dotazioni dei precedenti ne tantomeno prese hardware a parte 2 sole USB e presa ethernet) ma una volta settato e collegato al router è un bel giocattolino.
.

Mauro_Titan


Se si vuole mirare a un consumo ridotto si puó usare un PC industriale con un consumo di qualche watt e non un PC normale o un notebook.
Ciao Uwe


Da quello che ho capito se si collega Arduino al Router il Pc non serve , ma fa da arduino direttamente come server.
Puo' gestire la connessione e sicuramente si potra inserire dei comandi di password e dei semplici Daley per bloccare gli sconosciuti.
Come contro bisogna utilizzare un programma per l'invio dei comandi .
(non conosco nessun programma che gira sotto WinMobile)
Ulteriore problema e' come comunicare con i vari Arduni Wireless.
Che scheda si Usaaa???



Io sto usando questi due Eee PC


Io uso solo Asus P900 .. piccolo MA FANTASTICO .. poi con Linux la Lamp  gira benissimo

bl4d3

aggiungo questo
http://www.koala.it/it/nanopc.htm
6W di consumo

Go Up