Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #15 on: February 16, 2012, 11:53:01 am » |
grazie a tutti, adesso mi sono messo a fare delle prove con jQuery ho scritto questo codice provaj.html <!DOCTYPE html> <html> <head> <script src="jquery-1.7.1.js"></script> <script> function invia() { // invio, richiedo dati $.get( 'http://192.168.1.177', { data: 'pinD3' }, function( answer ) { $( "#result" ).html( answer ); } ); }; </script> </head> <body> <input id="prova" onclick="invia()" type="button" value="Invia"/> <div id="result"></div> </body> </html> funziona tutto bene mi accende il led del pin digitale 3 ma non riesco a mandare il messaggio indietro da arduino nello sketch di arduino cosa dovrei mettere? un semplice client.println("messaggio") o qualcos'altro?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 15
Posts: 1878
Have you mooed today?
|
 |
« Reply #16 on: February 16, 2012, 12:00:51 pm » |
ciao, posta anche il codice Arduino.
Cmq sì, dovresti gestire una risposta da parte di Arduino (a seguito della conferma di ricezione - il 200 OK), con content-type text/plain
|
|
|
|
« Last Edit: February 16, 2012, 12:03:52 pm by pitusso »
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #17 on: February 16, 2012, 12:22:40 pm » |
il codice di arduino è molto semplice ma non mi mostra il messaggio #include <SPI.h> #include <Ethernet.h>
byte mac[] = { 0x90, 0xa2, 0xda, 0x0d, 0x05, 0x18 }; IPAddress ip(192,168,1,177);
EthernetServer server(80);
void setup(){ Serial.begin(9600); Ethernet.begin(mac, ip); server.begin(); Serial.println("ready"); }
void loop(){ EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("messaggio"); if( client.find("pinD3") ) { // search for 'GET' Serial.print("Digital pin "); pinMode(3, OUTPUT); digitalWrite(3, HIGH); } // give the web browser time to receive the data delay(1); client.stop(); } } }}
|
|
|
|
« Last Edit: February 16, 2012, 01:00:45 pm by LeonidRusnac »
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2442
|
 |
« Reply #18 on: February 16, 2012, 03:21:59 pm » |
Si devi mettere un client.print ciao
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
0
Offline
Edison Member
Karma: 15
Posts: 1878
Have you mooed today?
|
 |
« Reply #19 on: February 16, 2012, 03:30:42 pm » |
Si devi mettere un client.print ciao ..mi sa meglio un client.println()  dopo il println del tuo messaggio.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #20 on: February 16, 2012, 03:58:33 pm » |
client.println()  dopo il println del tuo messaggio. non funziona comunque 
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2442
|
 |
« Reply #21 on: February 16, 2012, 04:02:50 pm » |
Si io messo un client.print per intendere che ci deve mettere un messaggio di risposta, comunque non è detto che ci debba per forza essere un a capo, può anche usare un # per indicare fine messaggio. Comunque un mese fa circa avevo pubblicato un html con jquery e sketch. Il punto è che non ho ancora capito cosa vuole fare.... Un php in un server, una pagina html dentro Arduino, un html su una macchina esterna, una pagina statica su sd, arduino client, arduino webserver Ciao
|
|
|
|
« Last Edit: February 16, 2012, 04:07:56 pm by pablos »
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #22 on: February 16, 2012, 04:09:45 pm » |
adesso sto facendo la prova di una pagina html esterna con jQuery. voglio mandare una richiesta ad arduino e leggere la risposta inviata da arduino mostrandola in un div client.println("messaggio"); questo è quello che voglio mandare da arduino al html
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2442
|
 |
« Reply #23 on: February 16, 2012, 04:12:40 pm » |
ok, la risposta in realtà viene mandata al tuo html, ma non c'e' nulla che la legge
function invia() { ........................ .............................. function( answer ) { $( "#result" ).html( answer ); } ); };
devi lavorare su questo pezzo è questa funzione che legge la risposta dell' http 1.1
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Bergamo
Offline
God Member
Karma: 1
Posts: 585
|
 |
« Reply #24 on: February 16, 2012, 04:14:39 pm » |
ciao guardando sia il codice Ajax che quello Arduino sembra tutto ok... eppure a quanto dici non viene correttamente visualizzato il "messaggio"? Vedo che il codice Ajax lo aggiungerebbe al div "result"... dovresti provare a modificare il codice Ajax magari aggiungendo nella callBack function qualcosa tipo alert('Ricevuta risposta'); così vediamo se almeno la funzione di callBack viene invocata...
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #25 on: February 16, 2012, 04:18:13 pm » |
ok, la risposta in realtà viene mandata al tuo html, ma non c'e' nulla che la legge
function invia() { ........................ .............................. function( answer ) { $( "#result" ).html( answer ); } ); };
devi lavorare su questo pezzo è questa funzione che legge la risposta dell' http 1.1
ma non dovrebbe mostrarmi tutta la richiesta allora?
|
|
|
|
|
Logged
|
|
|
|
|
Bergamo
Offline
God Member
Karma: 1
Posts: 585
|
 |
« Reply #26 on: February 16, 2012, 04:18:20 pm » |
ok, la risposta in realtà viene mandata al tuo html, ma non c'e' nulla che la legge
ciao in realtà la $.Get di JQuery accetta come terzo parametro una funzione di "callBack" sulla risposta alla GET... il codice postato semplicemente definisce tale funzione "in line" con il metodo $.Get... leggendola più estesa sarebbe: - fai la chiamata GET a http://192.168.1.177 con parametro data='pinD3' - se ottieni risposta, passa quello che ricevi alla funzione di callBack "answer" - la funzione "answer" ricerca un elemento con ID "result" e imposta il valore HTML di tale elemento con quanto ha ricevuto
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2442
|
 |
« Reply #27 on: February 16, 2012, 04:19:42 pm » |
io nel jquery uso questa funzione ajax
$.ajax({ type: "POST", data: dato, dataType: "text", cache: false, url: url, success: function(r) { ....................... Qui dentro c'e' la stringa di risposta di arduino ....................... }, error: function() { ............. qui gli faccio fare x cose in caso ho un errore ............. }
|
|
|
|
« Last Edit: February 16, 2012, 04:22:16 pm by pablos »
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 80
|
 |
« Reply #28 on: February 16, 2012, 04:21:00 pm » |
grazie, provo anch'io allora 
|
|
|
|
|
Logged
|
|
|
|
|
Bergamo
Offline
God Member
Karma: 1
Posts: 585
|
 |
« Reply #29 on: February 16, 2012, 04:22:02 pm » |
tu però stai facendo una POST, lui una GET e in realtà $.Get è uno "shorthand" per la più generale $.Ajax che usi tu
|
|
|
|
|
Logged
|
|
|
|
|
|