Ciao a tutti,
ho un piccolo problema con uno sketch per la ethernet shield; inserisco qui sotto il codice:
String stringa="";
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 0, 177);
EthernetServer server(80);
void setup() {
Ethernet.begin(mac, ip);
server.begin();
pinMode(5,OUTPUT);
pinMode(7,OUTPUT);
}
void loop() {
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n') {
if(stringa.substring(5,11) == "acceso")
digitalWrite(5,HIGH);
else if(stringa.substring(5,11) == "spento")
digitalWrite(5,LOW);
if(stringa.substring(5,12) == "acceso2")
digitalWrite(7,HIGH);
else if(stringa.substring(5,12) == "spento2")
digitalWrite(7,LOW);
// Pagina in HTML
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<a href='http://");
client.println(Ethernet.localIP());
client.println("/acceso'> Accendi rosso </a>");
client.println("
");
client.println("<a href='http://");
client.println(Ethernet.localIP());
client.println("/spento'> Spegni rosso </a>");
client.println("</html>");
client.println("
");
client.println("</html>");
client.println("<a href='http://");
client.println(Ethernet.localIP());
client.println("/acceso2'> Accendi verde </a>");
client.println("
");
client.println("<a href='http://");
client.println(Ethernet.localIP());
client.println("/spento2'> Spegni verde </a>");
client.println("</html>");
stringa="";
break;
}
stringa+=c;
}
}
delay(1);
client.stop();
}
}
Aprendo la pagina dal browser vedo correttamente i quattro comandi uno sotto l'altro, i primi due funzionano correttamente, gli altri due no; mi spiego meglio sperando di riuscirci:
Se clicco sul comando "accendi rosso", il led rosso (abbinato al Pin 5) si accende, se clicco sul comando "spegni rosso", il led rosso si spegne.
Quando vado a cliccare sulla voce "accendi verde", mi si accendono entrambi i led (sia rosso che verde), cliccando "spegni verde" mi si spengono entrambi; se invece clicco su "accendi verde" (si accendono entrambi) e poi clicco su "spegni rosso", rimane acceso solo il led verde.
Cosa mi sfugge nel codice secondo voi?
Grazie mille!!!
Miky
Funziona!!!
Grazie a tutti per l’aiuto, l’unico problema che è rimasto è che posso controllare solo in locale e non in remoto, non saprei come fare.
Chiedo scusa per gli errori commessi nel post, spero di aver usato l’anno funzione corretta ora.