Arduino preleva i dati dal Web

Ciao a tutti sto utilizzando un arduino uno e un ethernet shield.
Ho creato tramite raspberry pi un server virtuale dove risiede il mio sito.
L’unico problema è che non riesco a far comunicare i due.
Dal web genero dei valori che dovranno essere inviati ad arduino, Quindi genero tramite il metodo get un url es.192.168.1.140/action.php?uno=10&due=30&tre=40.
Come faccio a dire ad arduino di selezionarmi i valori di ogni variabile?
Ho cercato in internet e ho visto l’esempio del webclient ma non capisco come fare.

/*
  Web client

 This sketch connects to a website (http://www.google.com)
 using an Arduino Wiznet Ethernet shield.

 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13

 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe, based on work by Adrian McEwen

 */

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.google.com";    // name address for Google (using DNS)

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192, 168, 0, 177);

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /search?q=arduino HTTP/1.1");
    client.println("Host: www.google.com");
    client.println("Connection: close");
    client.println();
  } else {
    // if you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop() {
  // if there are incoming bytes available
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    while (true);
  }
}

Devi stampare i valori del php dentro la parte html. Dopo nello sketch arduino devi andare a cercare la stringa che vuoi e prendere il valore. In questo caso cerco la stringa “a=” e prendo il valore subito dopo

Esempio

////////////questa la pagina php////////////////////

// php
$variabile = "a=" ;
         $variabile .= "23" ;

//html 
<html><head></head>
<body><?php echo $variabile ; ?>
</body>
</html>

$variabile = 2;

///////////////////////ARDUINO//////////////////////////////////////

#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(192, 168, 1, 12); // indirizzo ip server locale
IPAddress ip(192, 168, 1, 13); // indirizzo ip arduino
EthernetClient client;


void setup()
{
  Serial.begin(9600);
 Ethernet.begin(mac,ip);

  delay(1000);
}

void loop()
{
  delay(5000); // esegui la richiesta ogni 60 secondi
  
if (client.connect(server, 80)) { // connessione al file sul server web 
  client.print("GET /");
  client.print("/arduino/arduino.php") ;
  client.println(" HTTP/1.0");
  client.println("HOST: arduino"); // Host: www.dominio.it  
  client.println();
  Serial.println("leggo file su server web");
}
else {
  Serial.println("connessione al file sul server web fallita");
}
 
if (client.connected()) { // se sono connesso
 
  if(client.find("a=")) { // se trovo la stringa ud5=
    int aa = client.parseInt();
    Serial.print("valore a: "); 
    Serial.print(a);
   
  }
  else {
    Serial.println("non trovo aa");
    
  }
  
  // NB e' possibile cercare tutte le parole o stringhe che desideriamo e comandare Arduino con le azioni necessarie
  Serial.println("");
}
else {
  Serial.println("Disconnsso");
}
client.stop(); // ferma il client
client.flush(); // svuota i dati del client

}