Ho provato a fare qualcosa, anche se sta flag mi ha un attimo confuso ![]()
parte di dichiarazione
#include <Ethernet.h> //libreria ethernet
#include <SPI.h> //collabora con la libreria ethernet
#include <String.h> //gestione stringhe
int rosso = 2;
int verde = 3;
int led;
int tempo;
boolean flag;
//dati Ethernet shield
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //indirisso fisico
EthernetServer server(80); //imposto porta protocollo HTTP
String ascoltatore1; //dichiarazione stringa
String ascoltatore2; //dichiarazione stringa
parte void setup
void setup() {
Serial.begin(9600);
pinMode(rosso, OUTPUT);
pinMode(verde, OUTPUT);
//Ethernet shield
Ethernet.begin(mac); //inizializzazione
server.begin(); //avvio server
Serial.print("server is at ");
Serial.println(Ethernet.localIP()); //stampa indirizzo del server
}
parte void loop
void loop() {
EthernetClient client = server.available(); //attendo l'arrivo di un client
if (client) { //se c'è il cliente deve..
while (client.connected()) {
if (client.available()) {
char c = client.read(); //..leggere i caratteri che invia
ascoltatore1.concat(c); //concatena i caratteri del client
if (c == '\n') { //se arrivo a fine riga
if (ascoltatore1.indexOf("rosso") > 0) { //controllo che nell'url ci sia rosso
flag == true;
led == 1;
}
else if (ascoltatore1.indexOf("verde") > 0) { //controllo che nell'url ci sia verde
flag == true;
led == 2;
}
client.println("HTTP/1.1 200 OK"); //dico al client che è tutt'ok - standard http
client.println("Content-Type: text/html"); //indico il formato - standard http
client.println(); //necessario per non buggare
client.println("<html>"); //inizio codice html
client.println("<head><title>GIGIO2.0</title> <link rel='shortcut icon' type='image/x-icon' href='http://i44.servimg.com/u/f44/16/84/89/65/23570310.png' /></head>");
client.println("<body><center><h1>GIGIO 2.0 </h1>");
client.println("<a href='/?rosso'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/avanti.gif\" width='200' height='150' ></a>");
client.println("<a href='/?verde'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/indietro.gif\" width='200' height='150' ></a>");
client.stop(); //stop richieste dal client
ascoltatore1 = "";
}
if (flag == true) {
char d = client.read();
ascoltatore2.concat(d); //concatena i caratteri del client
if (d == '\n') { //se arrivo a fine riga
if (ascoltatore2.indexOf("10_sec") > 0) { //controllo che nell'url ci sia 10_sec
tempo == 1;
}
else if (ascoltatore2.indexOf("5_sec") > 0) { //controllo che nell'url ci sia 5_sec
tempo == 2;
}
else if (ascoltatore2.indexOf("15_sec") > 0) { //controllo che nell'url ci sia 15_sec
tempo == 3;
}
else if (ascoltatore2.indexOf("7_sec") > 0) { //controllo che nell'url ci sia 7_sec
tempo == 4;
}
client.println("<a href='/?10_sec'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/ferma.jpg\" width='200' height='150' ></a>");
client.println("<a href='/?5_sec'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/destra.gif\" width='200' height='150' ></a>");
client.println("<a href='/?15_sec'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/sinistra.gif\" width='200' height='150' ></a>");
client.println("<a href='/?7_sec'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/automatica.gif\" width='200' height='150' ></a>");
client.stop(); //stop richieste dal client
ascoltatore2 = "";
}
}
//AZIONI DA ESEGUIRE
flag == false;
}
}
}
}
Potrebbe funzionare una cosa del genere? ![]()
Purtroppo non ho arduino dietro per provare