Riposto il codice corretto e funzionante, e ringrazio @fabpolli per i consigli, i problemi credo che siano inerenti proprio gli spazi e all' uso degli apici(anche se credo che il compilatore o il browser"visto che se il file esterno lo salvavo in html nessun problema di visualizzazione"li elimini gli spazi).
comunque perdendo un po di tempo nella mia pausa pranzo sono riuscito a rivedere-riscrivere ex novo la parte html adesso tutto ok.
//CREATED BY gmmg90
#include <SPI.h>
#include <Ethernet.h>
int led = 4;
int led2 = 3;
int led3 = 5;
int led4 = 6;
unsigned long tempo = 10000;
unsigned long ora;
unsigned long prima;
int pos = 0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 30 }; // ip in lan (that's what you need to use in your browser. ("192.168.1.178")
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
String readString;
void setup() {
// Apri Seriale
while (!Serial) {
;
}
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
// Inizializza Network
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// Crea Connessione Client
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100) {
readString += c;
}
if (c == '\n') {
Serial.println(readString);
//html file
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
client.println("<TITLE>© Gelarredi</TITLE>");
client.println("</HEAD>");
client.println("<BODY style='background-color:powderblu;>");
client.println("<CENTER>");
client.println("<img src=http://www.gelarredi.it/img/logo.png");
client.println("<hr />");
client.println("
");
client.println("<H2 STYLE='background-color:tomato;'>MY_HOME_v0.03</H2>");
client.println("
");
//BUTTON FOR FIRST LED
client.println("<p>ApriPorta</p>");
client.println("<a href=\"/?button3on\"\"><img src='http://www.gelarredi.it/imgard/btnb.png' width='64'height='64'></a>");
client.println("
");
client.println("
");
//BUTTON SECOND LED
client.println("<p>Luce Scala</p>");
client.println("<a href=\"/?button4on\"\"><img src='http://www.gelarredi.it/imgard/btnb.png' width='64'height='64'></a>");
client.println("
");
client.println("
");
//BUTTON THIRD LED
client.println("<p>Luce Soggiorno</p>");
client.println("<a href=\"/?button1on\"\"><img src='http://www.gelarredi.it/imgard/btng.png' width='64'height='64'></a>");
client.println("<a href=\"/?button1off\"\"><img src='http://www.gelarredi.it/imgard/btnr.png' width='64'height='64'></a>
");
client.println("
");
client.println("
");
//BUTTON FOURTH LED
client.println("<p>Luce Soggiorno</p>");
client.println("<a href=\"/?button2on\"\"><img src='http://www.gelarredi.it/imgard/btng.png' width='64'height='64'></a>");
client.println("<a href=\"/?button2off\"\"><img src='http://www.gelarredi.it/imgard/btnr.png' width='64'height='64'></a>
");
client.println("
");
client.println("
");
client.println("
");
client.println("</CENTER>");
client.println("</BODY>");
client.println("</HTML>");
delay(1);
//stopping client
client.stop();
//controls the Arduino if you press the buttons
if (readString.indexOf("?button1on") > 0) {
digitalWrite(led, HIGH);
}
if (readString.indexOf("?button1off") > 0) {
digitalWrite(led, LOW);
}
if (readString.indexOf("?button2on") > 0) {
digitalWrite(led2, HIGH);
}
if (readString.indexOf("?button2off") > 0) {
digitalWrite(led2, LOW);
}
if (readString.indexOf("?button3on") > 0) {
ora = millis();
if ((unsigned long)(ora - prima) >= tempo) {
digitalWrite(led3, HIGH);
}
} else {
digitalWrite(led3, LOW);
}
if (readString.indexOf("?button4on") > 0) {
ora = millis();
if ((unsigned long)(ora - prima) >= tempo) {
digitalWrite(led4, HIGH);
}
} else {
digitalWrite(led4, LOW);
}
//clearing string for next read
readString = "";
}
}
}
}
}
Quindi se a qualcuno possa servire qualcosa del genere che ben venga.
Adesso mi sorge un'altro problema ben diverso, con la funzione millis() da me mai usata,
come vedete nel codice per i relay 3 e 4 voleva settare un tempo di accensione spegnimento (blink) che mi servirebbero rispettivamente per aprire la porta e accendere la luce della scala dando un impulso di un secondo.
Cercando in giro dovrei usare millis() inserendo una constante da me chiamata Tempo
unsigned long tempo = 10000;
unsigned long ora;
unsigned long prima;
e se non erro dovrei fare questo:(cercho aiuto)
if (readString.indexOf("?button3on") >0){
ora = millis();
if((unsigned long)(ora - prima) >= tempo){
digitalWrite(led3, HIGH);
}
}else{
digitalWrite(led3, LOW);
}
Grazie Sempre!