Ringrazio tutti per le risposte. Lo sketch sul quale sto lavorando apparentemente non è molto grande (passatemi i termini molto elementari), penso quindi ci sia qualcosa che dia fastidio. Provo a inserire lo sketch.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // mac address
byte ip[] = { 192, 168,0, 70 }; // ip arduino internet in
EthernetServer server(80); //server port
String readString;
void setup()
{
Ethernet.begin(mac, ip);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
readString.concat(c); //memorizzo ogni carattere della stringa
//if HTTP request has ended
if (c == '\n' && currentLineIsBlank) {
if(readString.indexOf("on_1") > 0)digitalWrite(2,HIGH);
if(readString.indexOf("off_1") > 0)digitalWrite(2,LOW);
if(readString.indexOf("on_2") > 0)digitalWrite(3,HIGH);
if(readString.indexOf("off_2") > 0)digitalWrite(3,LOW);
if(readString.indexOf("on_3") > 0)digitalWrite(4,HIGH);
if(readString.indexOf("off_3") > 0)digitalWrite(4,LOW);
if(readString.indexOf("on_4") > 0)digitalWrite(5,HIGH);
if(readString.indexOf("off_4") > 0)digitalWrite(5,LOW);
if(readString.indexOf("on_5") > 0)digitalWrite(6,HIGH);
if(readString.indexOf("off_5") > 0)digitalWrite(6,LOW);
if(readString.indexOf("on_6") > 0)digitalWrite(7,HIGH);
if(readString.indexOf("off_6") > 0)digitalWrite(7,LOW);
if(readString.indexOf("on_7") > 0)digitalWrite(8,HIGH);
if(readString.indexOf("off_7") > 0)digitalWrite(8,LOW);
if(readString.indexOf("on_8") > 0)digitalWrite(9,HIGH);
if(readString.indexOf("off_8") > 0)digitalWrite(9,LOW);
// COSTRUZIONE PAGINA HTML
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
// inizializzo pagina (da togliere se uso ajax)
client.print("ANDREINO Controllo WEB");
client.print("
");
//inizai il body
client.print("STATO PIN 2 ");
if(digitalRead(2)==true) client.print("<input disabled="disabled" maxLength="50" size="12" value="ACCESO" STYLE="background-color:#00FF00"/>");
else client.print("<input disabled="disabled" maxLength="50" size="12" value="SPENTO" STYLE="background-color:#C0C0C0"/>");
client.print("
");
client.print("<input type="button" style="width:50px; height:30px" value="On" onclick=" location.href='/?on_1'">");
client.print("<input type="button" style="width:50px; height:30px" value="Off" onclick=" location.href='/?off_1'">");
client.print("
");
client.print("STATO PIN 3 ");
if(digitalRead(3)==true) client.print("<input disabled="disabled" maxLength="50" size="12" value="ON" STYLE="background-color:#00FF00"/>");
else client.print("<input disabled="disabled" maxLength="50" size="12" value="OFF" STYLE="background-color:#C0C0C0"/>");
client.print("
");
client.print("<input type="button" style="width:50px; height:30px" value="On" onclick=" location.href='/?on_2'">");
client.print("<input type="button" style="width:50px; height:30px" value="Off" onclick=" location.href='/?off_2'">");
client.print("
");
client.print("STATO PIN 4 ");
if(digitalRead(4)==true) client.print("<input disabled="disabled" maxLength="50" size="12" value="ON" STYLE="background-color:#00FF00"/>");
else client.print("<input disabled="disabled" maxLength="50" size="12" value="OFF" STYLE="background-color:#C0C0C0"/>");
client.print("
");
client.print("<input type="button" style="width:50px; height:30px" value="On" onclick=" location.href='/?on_3'">");
client.print("<input type="button" style="width:50px; height:30px" value="Off" onclick=" location.href='/?off_3'">");
client.print("
");
readString="";
delay(1);
client.flush();
client.stop();
}
}
}
}
}
Per il problema della memoria posso utilizzare solo 3 degli 8 pin. Grazie mille per l'attenzione.
Saluti Andrea