Domotichome con arduino e android

Ciao a tutti,grazie al materiale che ho trovato sul forum,sono riuscito a gestire le luci della pizzeria, dal mio telefono con android,usando l'app domotichome.
Componenti:
arduino uno
ethernet shield
5 relay con stadio pilota
sensore di temperatura mcp9700a
modem wifi
android
domotichome
Per il collegamento dei relay all'impianto elettrico,mi sono fidato del mio amico elettricista,che ha collegato i relay a dei deviatori,l'elettronica l'ho curata io

Uploaded with ImageShack.us

Uploaded with ImageShack.us
Sia arduino che i relay,sono fissati alla scatola per mezzo di strisce di policarbonato,tra le viti e le schede, un pezzo di tubicino di plastica( che si trova negli spruzzini che vaporizzano l'acqua)..
qui un piccolo video dimostrativo

Tutto funziona benissimo,ma quando clicco su temperatura sul telefonino,mi compare questo errore:
"interruzione imprevista dell'applicazione Domotichome(processonerydog.domoHome).Riprova"
Qualcuno sa' aiutarmi?
buon arduino a tutti...

purtroppo è difficile aiutarti senza conoscere il codice Android.
L'eccezione che riporti deriva da un errore java dell'app, potrebbe essere qualunque cosa. Il modo migliore per ottenere supporto è quello di scaricare i sorgenti del progetto e riuscire a compilarlo sul tuo telefono, in modo da avere a disposizione tutte le informazioni necessarie al debug. Ti serve Eclipse, l'SDK di android e un plugin per farli dialogare (ADT)

Anche io avevo provato domohome, poi mi sono accorto che è sostanzialmente limitato ad un solo nodo e offre flessibilità limitata (non si possono definire facilmente altri tipi di sensore/attuatore). Il meccanismo di auto-generazione del codice dello sketch è affascinante, ma da sviluppatore di app volevo di più.

Tieni presente che, anche qualora individuassi il problema, senza sorgenti dell'app potrai difficilmente risolverlo. Per curiosità: hai provato Souliss?

Ciao,grazie per la risposta,sto provando souliss proprio adesso,non riesco a cambiare l'indirizzo ip pero'....

Ciao Michele,

Souliss supporta diverse interfacce di comunicazione, astratte attraverso vNet. Per questo motivo c'è un indirizzamento unico, indipendente dal fatto che si usi ethernet o altro.

Se stai usando uno degli sketch di esempio (io faccio riferimento all'esempio 2), nella parte iniziale trovi delle istruzioni di configurazione:

Definitions
Configuration file Parameter
vNet_Config.h #define VNET_SUPERNODE 0
vNet_Config.h #define VNET_MEDIA1_ENABLE 1
vNet_Config.h #define VNET_MEDIA2_ENABLE 0
vNet_Config.h #define VNET_MEDIA3_ENABLE 0
vNet_Config.h #define VNET_MEDIA4_ENABLE 0
vNet_Config.h #define VNET_MEDIA5_ENABLE 0

MaCaco_Config.h #define Json_MAP_EN 1

ethUsrCfg.h #define ETH_CLASS 1
ethUsrCfg.h const uint8_t DEFAULT_BASEIPADDRESS[] = {...}
ethUsrCfg.h const uint8_t DEFAULT_SUBMASK[] = {...}
ethUsrCfg.h const uint8_t DEFAULT_GATEWAY[] = {...}
ethUsrCfg.h const uint8_t MAC_ADDRESS[] = {...}

It's important define the proper MAC address for each board, two nodes
that share the same MAC address will not communicate. You can found a
proper MAC address on the sticker behind the board.

All'interno del file ethUsrCfg.h trovi le definizioni dell'indirizzo IPBASE e le altre configurazione di rete, il file è nella cartella della libreria vNet.

L'indirizzo IP è configurato in due parti, la base è nel file ethUsrCfg.h e consiste nell'indirizzo di base della rete (si ottiene filtrandolo per la subnet mask), ad esempio:

Se la tua configurazione di rete è 192.168.1.17 e la subnet mask 255.255.255.0, l'indirizzo IPBASE da inserire in ethUsrCfg.h è 192.168.1.0 con relativa subnetmask e gateway. L'ultimo ottetto (17) dell'indirizzo IP va definito come indirizzo del nodo all'interno dello sketch, dove trovi:

#define network_address_1 0x0011

Questo è l'indirizzo del nodo, che espresso in decimale è 17, puoi usare indifferentemente

#define network_address_1 0x0011 (esadecimale)
o
#define network_address_1 17 (decimale)

A questo punto, il nodo nel tuo sketch sarà identificato solo con il suo indirizzo vNet (0x0011 o 17dec).

Nell'intestazione dell'esempio ci sono anche altri settaggi da configurare prima della compilazione, ad esempio devi indicare quale media usare (ethernet nel tuo caso VNET_MEDIA1_ENABLE 1) e l'abilitazione dell'interfaccia JSON (#define Json_MAP_EN 1).

Fatto questo il tuo nodo dovrebbe rispondere alle richieste HTTP fornendoti lo stato dei dispositivi controllati e permettendoti di inviare comandi, oltre che accettare comandi da pulsanti hardware.

Per controllare che il tutto funzioni ci sono due passaggi da fare: il primo effettuare un ping all'indirizzo IP; il secondo è aprire il browser internet e chiamare http://INDIRIZZOIPNODO/status al quale dovresti ricevere una risposta del tipo:

({"id" : [{"hlt" : "255", "slot" : [{ "typ" : "12", "val" : "1"},{ "typ" : "12", "val" : "1"},{ "typ"
: "11", "val" : "0"},{ "typ" : "0", "val" : "0"},{ "typ" : "0", "val" : "0"},{ "typ" : "0", "val" :
"0"},{ "typ" : "0", "val" : "0"},{ "typ" : "0", "val" : "0"}]}]})

Raggiunto questo punto potrai passare all'utilizzo dell'interfaccia web di esempio (inclusa nella directory dello sketch) oppure al client Android.

Considera che l'esempio che stai utilzzando è scritto per una rete con due nodi, dove entrambi possono inviare comandi sullo stesso carico elettrico.

Saluti,
Dario.

Grazie Dario,la vedo difficile,visto che sono alle prime armi,con che programma apro il file.h ?

Con un qualsiasi editor di testo, come ad esempio Notepad. Ti consiglio di scaricare Notepad++.

E' sicuramente più articolato, ma noti i passi necessari prima della compilazione, tutto diventa più semplice. Le configurazioni effettuate servono a definire quante interfacce utilizzi e quale codice deve essere compilato.

Nella documentazione del progetto http://sourceforge.net/projects/veseo-souliss/files/User%20Guide/ trovi le varie funzionalità offerte.

Saluti,
Dario.