Il s'agit de l'exemple de serveur web, j'ai juste rajouté le if (LEDON) pour mémoriser l'état de la LED sur la page.


#include <WString.h>
#include <Ethernet.h>
 
/*
test Ethernet
* LED sur pin 4
*/
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // adresse mac 
byte ip[] = { 192, 168, 1, 20 };                                  // adresse IP
Server server(80);                                                    // port du serveur
int ledPin = 4;                                                          // LED pin
String readString = String(30); //string for fetching data from address
boolean LEDON = false;                                            //LED status flag
 
void setup(){
  Ethernet.begin(mac, ip);
  pinMode(ledPin, OUTPUT);  // pin 4 en sortie
}
 
void loop(){
  // Create a client connection
  Client client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
      char c = client.read();
 
      if (readString.length() < 30) { //read char by char HTTP request
		readString.append(c);  //store characters to string
	  }
 
      //if HTTP request has ended
      if (c == '\n') { 			//lets check if LED should be lighted
 
        if(readString.contains("L=1")){ //led ON
          digitalWrite(ledPin, HIGH); 	    // allume la LED
          LEDON = true;
        }
        else{      			           //led OFF
          digitalWrite(ledPin, LOW); 	   // etteind la LED
          LEDON = false; 
        }
 
        // envoie du header  HTML
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");
        client.println();
        //send first heading
        client.println("<font color='red'><h1 align = center>Serveur web Arduino</font> </h1> <br/> <hr/>");
        client.println("<h1>LED control</h1>");
 
        if (LEDON)
         {
           client.println("<font color='green' size='5'>LED ON"); 
           client.println("<form method=get name=LED> \
                           <input type=radio name=L value=1 checked=checked>ON <br>\
                           <input type=radio name=L value=2>OFF <br>\
                           <input type=submit value=submit></form>");   
         }
         else
         {
           client.println("<font color='grey' size='5'>LED OFF");
           client.println("<form method=get name=LED> \
                           <input type=radio name=L value=1>ON <br>\
                           <input type=radio name=L value=2 checked=checked>OFF <br>\
                           <input type=submit value=submit></form>");
         }
 
        client.println("</body></html>");        
        readString="";    //clearing string for next read
        client.stop();    //stopping client
        }
      }
    }
  }
}


%

La page web est "en dur" dans le code source par l'intermédiaire de la fonction printl ce qui le rend moins lisible! Mais bon, sans filesystem, on peut difficilement faire autrement.


La grosse amélioration serait d'utiliser le lecteur SDcard pour stocker les pages, images, CSS...


Le résultat dans un navigateur (Firefox): page web Arduino