Wjsonduino webserver + json + Ajax

ciao, posso chiederti come raggiungi l'arduino tramite web? ip statico? e puoi raggiungerlo dalla stessa lan?

L'arduino ha un ip privato, ed è raggiungibile all'interno della rerte con quell'indirizzo, poi ho configurato il firewall per nattare tutto il traffico che va verso la porta 8081 del suo ip statico pubblico sulla porta 80 dell'arduino.

Bel progetto, bella l'idea di ajax. L'ho rifatto aggiungendo la possibilita di modificare lo stato dei digitali e con un layout adatto anche a cellulari. Non vedo l'ora di avere una casa mia per collegarci le luci delle stanze!! :wink:

arduino_mobile.gif

Ho là!
Non è che magari posti il codice così possiamo provarlo anche noi?
Grazie.

Alberto

devo ancora implementare la restituzione della pagina web da SDcard, per ora l'ho provata residente in locale, per provarla con lo smartphone ho abilitato IIS. Nel frattempo vi allego il file html e lo sketch.

arduino_mobile.html (8.1 KB)

Web_Json_Html.ino (3.76 KB)

bigjohnson:
L'arduino ha un ip privato, ed è raggiungibile all'interno della rerte con quell'indirizzo, poi ho configurato il firewall per nattare tutto il traffico che va verso la porta 8081 del suo ip statico pubblico sulla porta 80 dell'arduino.

quindi hai a casa un indirizzo ip statico? o usi quei servizi che simulano un ip statico?

amacbr:
devo ancora implementare la restituzione della pagina web da SDcard, per ora l'ho provata residente in locale, per provarla con lo smartphone ho abilitato IIS. Nel frattempo vi allego il file html e lo sketch.

Sono riuscito a caricare il codice su un'Arduino Uno e IDE v1.0. Ho notato che il cambio dello stato dei pin digitali non funziona sempre oppure è molto lento. A che cosa possa essere dovuto?

ho fatto caso anche io che se si premono rapidamente piu pulsanti, o piu volte lo stesso, l'aggiornamento rallenta, quello che ho notato e' che non perde mai un aggiornamento, arriva in ritardo ma e' sempre arrivato. Penso che sia un problema di come ho strutturato la chiamata ajax, e forse si risolve togliendo la chiamata alla funzione loadXMLDoc(url_with_get_data) che non e' soggetta al setInterval, quando si preme il pulsante Switch e il SetInterval e' gia attivo questa chiamata viene lanciata ugualmente, e puo darsi che due chiamate con la stessa funzione creino il problema. Purtroppo non ho possibilita di provare adesso.

@andrea86
Il Wjsonduino non l'ho messo a casa ma nella mia webcave che è collegata ad internet con un indirizzo tcp statico fornito dal provider, se vuoi farlo da casa, o con un indirizzo non statico, puoi usare un servizio di dns dinamico tipo Freedns che aggiorna il dominio quando l'indirizzo cambia.

scusate per il necroing di un 3ad cosi' vecchio,ma anche a voi da problemi entrare nel sito di panu?
qualcuno sarebbe cosi gentile da postare\hostare i files per wjsonduino?sono riuscito stamattina ad accedere ad ardupower,ma quello di cui necessito sarebbe questo.
Alternativamente avevo caricato lo sketch di presente a meta della prima pagina di questo 3ad(quello di amaccbr)ma evidentemente ho qualche problema perche non mi fa lo switch della scheda relays da pagina html (da mobile non so neanche come aprirla,l'html non me lo fa aprire con un browser e in piu non so a cosa si riferisca quando dice "ho abilitato IIS da smartphone per vederlo.")
Ho letto cos'e' IIS,capito un po dove andare ad agire sullo smartphone (smanetto da tempo su android,e ho medie capacita)ovvero nel file dove risiedono tutte le info e settaggi per gli host (system\etc\hosts)ma quello che non capisco e' che modifica apportare.
Per modificare il file,piu che altro solo per comodita, uso questo https://play.google.com/store/apps/details?id=com.treb.hosts&feature=search_result&rdid=com.treb.hosts&rdot=1

Purtroppo al sito di Panu è senza corrente, questa sera volevo passare e riarmare il differenziale, ma purtroppo anche se ero vicino alla webcave non sono passato, per domani verso mezzogiorno penso di ripristinare il webserver.
Pazientate.

Alberto

no problem!
Ah hai tutto lontano da casa?ma pensa..be' vorra' dire che aspetto domani pomeriggio!io avevo una casetta simile dove saltava la luce,ho risolto con un salvavita auto-riarmante,ogni volta dovevo fare 10km solo per riattaccare il freezer e altro nei temporali forti o neve

vedo che hai sistemato!
Avrei un paio di domande dubbi.Quello che sto cercando e' un sistema simile al tuo,che mi permetta di comandare una ciabatta tramite rete (mi posso limitare a farlo solo sotto la MIA rete,no problem se fuori casa non va.)
Ora,ho dato uno sguardo ai tuoi 2 ottimi progetti,e credo che in entrambi ci sia qualcosa che mi limita..mi spiego meglio:
Ardupower----l'ho provato,va bene,pero quello che cerco non e' un collegamento solo da pc,ovvero senza minicom,putty ecc ardupower n on so come usarlo.
WJsonDuino----provato,ma non so come procedere a dire il vero(non ho trovato un vero e prorio readme)in ogni caso,vedendo gli screens,mi pare di capire che si controlla lo stato delle porte..ma non ce possibilita di portarle a high\low via pagina web.Giusto?ecco,dato che mi farebbe piacere collegarmi a una pagna anche da mobile,quello che cerco e' anche la possibilita di accendere\spegnere da li,non solo monitorarle.
Ho visto pure l'esempio a meta della 1 pagina..provato,ma non mi switcha nulla e mi dice impossibile ricevere dati sulla pagina web da chrome.(cambiato ip come da mio arduino)
Esiste una possibilita di fare quello che cerco,magari anche con altri metodi possibilmente gia semi-pronti?(studio c nel tempo libero da un mese...ho adattato vari sketch per sensori ecc tutti funzionanti...ma se si parla di pagine web,json,php,jquery,html ecc assolutamente non capisco nulla.(ecco perche lato web preferivo qualcosa di pronto..)
scusate il papiro,spero riuscirete a rispondere ai miei dubbi!ciao ragazzi,buon weekend!

Dunque,
il Wjsonuino per ora può solo visualizzare lo stato delle porte, voglio fare una seconda versione che sia in grado di modificare lo stato, ma prima di pubblicarla devo essere sicuro che funzioni, e che gestisca correttamente l'accesso simultaneo da diversi client, per cui per ora niente.
Ho provato ad usare l'Ardupower con il mio telefono Android e ConnectBot, funziona ma non è quello che vuoi, se ho capito bene ti serve un'interfaccia web con accendi e spegni la luce o alza e abbassa le tende, che puoi usare rapidamente tramite smartphone/tablet.
In questo forum http://www.arifidenza.it/forum/topic.asp?TOPIC_ID=179563 hanno fatto una cosa abbastanza simile è un selettore per antenne con interfaccia web.
Magari se googoli trovi qualcosa.
Al salvavita auto riarmante c'avevo già pensato, ma l'ultima volta che ho controllato costavano ancora un botto, e visto che a me non vanno a male i surgelati per ora uso il dito.

ciao,grazie della risposta!
be',per cominciare,potrei provare senza interfaccia grafica all'inizio,provero cme hai detto con quell'apk,e magari ritento ancora con arduino controller pro (ci ho perso una mezza giornata ma nada,mi andavano i controlli ma non come dovevano)in attesa di una versione tua 2 quando e se la farai!
per il salvavita hai ragione,io lo presi solo perche sono un elettricista e lo pagai moolto meno,se no stanno bene negli scaffali (sempre che non ciano motivazione importanti per prenderlo)
:slight_smile:

alla fine sono riuscito a fare tutto con arduino controller app.
Settato per l'intervento su 4 relays (per ora una relay board esterna,poi appena arriva uso la relay shield,cosi occupo meno spazio importante)che mi agiscono su:
luce stanza--relay 1
luce scrivania--relay 2
ciabatta --relay 3
aggiunto anche comando manuale su scatola derivazione per accensione manuale luce scrivania (in caso di bizze con arduino,capita saltuariamente e non so il motivo,credo blocco della ethernet shield.grazie di tutto in ogni caso!

E' un ottimo lavoro che mi sono guardato con piacere perchè speravo potesse essermi di aiuto ma continuo a non capire come fare con l'index.html su SD.

Io vorrei farmi una pagina su SD per verso (css, java) e farla interagire con arduino.

Arduino deve mandargli dei valori e io dalla pagina devo essere in grado di muovere dei servo tramite dei bottoni..

Perché non riesci a mettere la pagina su sd, (mi riferisco al Wjsonduino)?
Ho fatto due versioni una per pagina in flash e l'atra su sd.

Alberto

Sì ma infatti per me è cmq un ottimo aiuto perchè ho del materiale da studiarmi!
Ti ringrazio!

Cmq, la SD riesco a gestirla, idem la pagina su SD ma poi basta, nel senso, non riesco a per esempio mandare da Arduino alla pagina html su SD un valore

Prima usavo dei client.print ma di sicuro non è la soluzione adatta risultando poi tutta scombinata ..come dire.. è che sicuramente mi manca a me una parte e/o penso si realizzi in un certo modo quando nella pratica non è così e non mi ci trovo..

Io credevo si usassero dei come dire marcatori che in qualche modo interagissero con arduino.. tu hai la tua variabile che corrisponde a un ipotetico marcatore1 e nell'html richiami lo stesso marcatore che assume quel valore :sweat_smile: è una visione forse un po' tropo semplicista del problema

Ciao a tutti,
ho fatto anche la versione che accende e spegne le porte di Arduino:

il codice si scarica da qui:

poi c'è la versione che disegna gli input su un immagine svg:

codice qui: