Arduino Web Server(WiFi) + Processing

Buonasera forum,
Vorrei inviare i valori di temperatura raccolti da Arduino+modulo wifi a Processing per poi rielaborarli graficamente o altro.
Avevo pensato di configurare Arduino+Wifi come web server (e fin qui tutto ok).
Processing, dovrebbe tramite una GET, richiedere il valore al server, ma non saprei come.
Qualcuno mi saprebbe aiutare?
Grazie in anticipo
Matteino

Ciao,

Avevo pensato di configurare Arduino+Wifi come web server (e fin qui tutto ok).
Processing, dovrebbe tramite una GET, richiedere il valore al server, ma non saprei come.

parti da qui:

Ciao,
grazie per la risposta. Avevo già letto il reference della libreria, ma non riesco a capire come leggere il dato dal web server.
Magari c'è un modo più semplice...
A me basterebbe inviare dall'Arduino/Wifi per esempio: VALORE1 = 20°C
A questo punto leggerlo da processing e convertirlo in un int.

Ciao,
puoi seguire questo esempio:
http://processing.org/learning/library/httpclient.html
che di fatto fa una richiesta GET.

Dovrai poi all'interno della stringa data recuperare il valore che cerchi.

Per la conversione poi della stringa a int, considera che qui si utilizza java, quindi, di base:

String stringa_da_convertire;
int valore_integer;

stringa_da_convertire = "42"; 
valore_integer = Integer.parseInt(stringa_da_convertire);

Quale è il tuo obiettivo?
Avevi già considerato l'utilizzo di altri strumenti, per es. php + mysql, o soluzioni cloud tipo google docs... ?

Ciao pitusso,
ecco il codice che ho scritto con le tue indicazioni:

import processing.net.*;
Client c;
String data;
int tempval;
String temp;

void setup() {
size(200, 200);
background(50);
fill(200);
c = new Client(this, "192.168.2.177", 80); // Connect to server on port 80
c.write("GET / HTTP/1.0\r\n"); // Use the HTTP "GET" command to ask for a Web page
c.write("\r\n");
}

void draw() {
if (c.available() > 0) { // If there's incoming data from the client...
data = c.readString(); // ...then grab it and print it
temp = data.substring(49,53);
tempval = Integer.parseInt(temp);
}
}

in risposta però ottengo un errore:

Exception in thread "Animation Thread" java.lang.NumberFormatException: For input string: "27.7"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:458)
at java.lang.Integer.parseInt(Integer.java:499)
at HTTPClient.draw(HTTPClient.java:57)
at processing.core.PApplet.handleDraw(PApplet.java:1977)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:187)
at processing.core.PApplet.run(PApplet.java:1855)
at java.lang.Thread.run(Thread.java:662)

Per il momento vorrei riuscire a leggere un valore di temperatura e visualizzarlo con un grafico in processing. Interessante anche Google docs, hai già sperimentato qualcosa?

Sono un p.... ! trovato l'errore. Essendo il dato con una cifra decimale, devo usare float. Quindi diventa:
tempval = Float.parseFloat(temp);
Adesso funziona.
Ho scoperto poi che può essere fatto anche con:
tempval = float(temp);

Matteino:
Interessante anche Google docs, hai già sperimentato qualcosa?

Ciao,
se vuoi passare i dati a Google docs ti consiglio di leggere qui:

e un thread che avevo aperto:

Ciao

Sono un p.... ! trovato l'errore. Essendo il dato con una cifra decimale, devo usare float. Quindi diventa:
tempval = Float.parseFloat(temp);

infatti, inizialmente parlavi di int.

Adesso funziona.
Ho scoperto poi che può essere fatto anche con:
tempval = float(temp);

certo, di base è la stessa cosa; puoi trovare esempi di conversione (cast) anche tra gli esempi dell'IDE di Processing, in particolare: Example -> Data -> DatatypeConversion

Interessante anche Google docs, hai già sperimentato qualcosa?

i link che ha postato DevonMiles sono i migliori che si possano trovare.