comunicazione LAN arduino

buongiorno a tutti.
io volevo creare una pagina web con dei bottoni che controllavano gli input digitali e analogici in ingresso ad uno shield I/O VELLEMAN VMA05 e leggere lo stato degli output con rele dello shield… poi successivamente volevo creare anche un bottone che azzerazze tutti gli output con rele in un solo bottone… avendo poche esperienze con arduino mi sono informato su vari forum e oensavo di partire da un codice che controllava lo stato di 7 led in remoto tramite pagina WEB.

questo è il codice che ho trovato su questo stesso forum:

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


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] =  { 192,168,200,177 };

const int MAX_PAGENAME_LEN = 8; // max characters in page name
char buffer[MAX_PAGENAME_LEN+1]; // additional character for terminating null

EthernetServer server(80);



void setup()
{
 
  Serial.begin(9600);
 
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
 

 
  Ethernet.begin(mac, ip);
  server.begin();
  digitalWrite(10,HIGH);
  delay(2000);
}

void loop()
{
  EthernetClient client = server.available();
  if (client)
  {
    int type = 0;
    while (client.connected())
     {
        if (client.available())
        {
        // GET, POST, or HEAD
         memset(buffer,0, sizeof(buffer)); // clear the buffer | scrive l'array con 0
         if(client.readBytesUntil('/',buffer,sizeof(buffer)))
         {
          if(strcmp(buffer,"POST ") == 0)  //cerca la scritta post http://ruturajv.wordpress.com/2005/12/25/http-post-request/
          {
            client.find("\n\r"); // skip to the body
            // find string starting with "pin", stop on first blank line
            // the POST parameters expected in the form pinDx=Y
            // where x is the pin number and Y is 0 for LOW and 1 for HIGH
            while(client.findUntil("pinD", "\n\r")){
              int pin = client.parseInt();       // the pin number
              int val = client.parseInt();       // 0 or 1
              pinMode(pin, OUTPUT);
              digitalWrite(pin, val);
             
            }
          }
          sendHeader(client,"Domotica");
          //create HTML button to control pin 8
          client.println("<h2>Controllo Pin Digitali</h2>");
          client.println("<table border='1' >");
          for(int i=2;i<=3;i++)
           {
            client.print("<tr><td>digital pin ");
            client.print(i);
            client.print(" </td><td>");
            client.print("<form action='/' method='POST'><p><input type='hidden' name='pinD");
            client.print(i);
            client.print("'");
            client.println(" value='0'><input type='submit' value='Off'/></form>");
            client.print(" </td><td>");
            client.print("<form action='/' method='POST'><p><input type='hidden' name='pinD");
            client.print(i);
            client.print("'");
            client.print(" value='1'><input type='submit' value='On'/></form>");
            client.print(" </td><td>stato: ");
            if(digitalRead(i)==1)
               client.print("ON");
             else
               client.print("OFF");
            client.println("</td></tr>");
            }
         
          for(int i=5;i<10;i++)
           {
            client.print("<tr><td>digital pin ");
            client.print(i);
            client.print(" </td><td>");
            client.print("<form action='/' method='POST'><p><input type='hidden' name='pinD");
            client.print(i);
            client.print("'");
            client.println(" value='0'><input type='submit' value='Off'/></form>");
            client.print(" </td><td>");
            client.print("<form action='/' method='POST'><p><input type='hidden' name='pinD");
            client.print(i);
            client.print("'");
            client.print(" value='1'><input type='submit' value='On'/></form>");
            client.print(" </td><td>stato: ");
            if(digitalRead(i)==1)
               client.print("ON");
             else
               client.print("OFF");
            client.println("</td></tr>");
            }
         
         
          client.println("</table>");
          client.println("</body></html>");
          client.stop();
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }
}

void sendHeader(EthernetClient client, char *title)
{
  // send a standard http response header
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println();
  client.print("<html><head><title>");
  client.print(title);
  client.println("</title><body>");
}

ho provato a cimentarmi ma non riesco a venirne fuori…
qualcuno saprebbe aiutarmi in qualisasi modo

grazie mille in anticipo

ho provato a modificare quel codice ma non riesco a fare quello che desidero avere come risultato finale... :(

Ma scusa, non hai detto qui

che hai una ethernet Shield2 ?

con queste 2 librerie ti funziona lo stesso?

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

Quel codice mi risulta funzionare, anche se per i miei gusti è troppo lento e non mi fornisce in tempo reale una variazione degli I/O

cos’è che non riesci a fare?

io ho copiato il codice uguale... ma a me non funziona con la libreria ethernet.h io devo usare la ethernet2.h.... la SPI.h a me va cmq io per il resto non riesco a venirne fuori.... sapreste aiutarmi? nel post che avevo fatto e ti mi hai messo il link stavo domandando per fare un altra cosa... poi ho scoperto che l'ethertet shield 2 è uguale al predecessore alla fina basta cambiare la libreria ethernet e tutto si risolve...

Prprio uguale non è, il 5500 gestisce 32k di ram e 8 socket, mentre il 5100 16k e 4 soket Ma lo cambi tutto il pacchetto delle librerie dentro l'IDE? client.h server.h ... ... non basta cambiare ethernet2.h

http://www.seeedstudio.com/wiki/W5500_Ethernet_Shield_v1.0

anche la cartella util, le librerie hanno bisogno di richiamare spesso la w5500.h

dai un occhio qui http://forum.arduino.cc/index.php?topic=324292.0

o qui https://forum.arduino.cc/index.php?topic=347658.0

P.S. Non so quanto sia corretto scrivere come funziona un componente del concorrente org su un forum cc, se ho violato qualche regolamento al massimo eliminano i post ... forse la org fa conto prorpio su questo forum (io fossi Banzi mi incaxxerei) ahahahhaha