Ciao, ho un piccolo (e credo/spero semplice) problema, al quale pero' non riesco a venirne a capo.
Mediante la scheda ethernet avevo intenzione di creare una pagina web, dalla quale poi effettuare delle scelte mediante pulsanti.
Il mio problema e' che vorrei far dipendere le azione di arduino dalla scelta di due opzioni.
Mi spiego meglio con un esempio.
Ci sono 3 led (rosso, blu, verde) e tre differenti valori di tempo (10 sec, 15 sec, 20 sec).
Io devo accendere il led rosso per 15 secondi, allora dalla pagina web premo il pulsante "rosso" e il pulsante "15 secondi".
Come faccio a dire ad arduino di aspettare la pressione di due pulsanti prima di eseguire qualche azione?.
Spero di essermi spiegato ![]()
Grazie
Lollo9906:
Come faccio a dire ad arduino di aspettare la pressione di due pulsanti prima di eseguire qualche azione?.
Quando ricevi il primo comando, alzi una flag e quando ricevi il secondo, verifichi che la flag sia alzata ...
... se SI, li hai ricevuti tutti e due e fai quello che devi fare, se NO, non hai ricevuto il primo.
Ovviamete, alla ricezione del secondo, comunque devi resettare la flag.
Guglielmo
Grazie della risposta, mi informo un po' sulla flag adesso. ![]()
Una flag altro non è che una variabile che assume un valore vero o falso (0 o 1 .. o quello che vuoi) e che ti serve solo per ricordare che una qualche cosa è avvenuta ... nulla di particolare.
Guglielmo
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
Mi sa che non ho ben capito la flag, qualcuno mi potrebbe fare un esempio? :![]()
Esempio schematico ...
byte miaFlag = 0
...
...
// ricevo il primo comando e metto a 1 la flag
miaFlag = 1;
// ricevo il secondo comando e verifico se ho ricevuto il primo
if (miaFlag) {
// ricevuti entrambi i comandi
// faccio quello che devo fare
}
else {
// NON ho ricevuto il primo comando
// faccio qualche altra cosa
}
// in ogni caso riazzero la flag
miaFlag = 0;
... ovviamente è molto a blocchi, devi adattarlo tu alle tue esigenze.
Guglielmo
@Lollo
senza offesa, il problema non è il flag, ma qui siamo alle basi della programmazione C/Arduino
Hai scritto:
flag == true;
led == 2;
Nei test, si usa == mentre nelle assegnazioni = solo una volta !!
Non solo, quello che dice si può fare direttamente in HTML mettendo nella pagina degli option button in due serie: una con 3 opzioni per scegliere il colore, ed una seconda con 3 opzioni per i tempi. Poi quando si preme il pulsante "Esegui" (che è il "submit") viene chiamato Arduino passandogli quei due valori.
Le soluzioni ci sono e sono anche abbastanza semplici, ma se uniamo la scarsa conoscenza dell'HTML a quella del C, l'impresa non è più così semplicissima..![]()
Sisi, dell'errore degli uguali me ne sono accorto pure io quando ho ricontrollato... il problema e' che il linguaggio arduino e' l'unico che conosco e quando non lo utilizzo per un po di tempo, ci metto un'attimo a "ringranare la marcia".
docdoc:
Non solo, quello che dice si può fare direttamente in HTML mettendo nella pagina degli option button in due serie: una con 3 opzioni per scegliere il colore, ed una seconda con 3 opzioni per i tempi. Poi quando si preme il pulsante "Esegui" (che è il "submit") viene chiamato Arduino passandogli quei due valori.Le soluzioni ci sono e sono anche abbastanza semplici, ma se uniamo la scarsa conoscenza dell'HTML a quella del C, l'impresa non è più così semplicissima..
Sisi, magari queste soluzioni saranno anche semplici, ma per me che non ho mai programmato in HTML ed in C, mi risultano complesse molte volte.
Lollo9906:
Sisi, magari queste soluzioni saranno anche semplici, ma per me che non ho mai programmato in HTML ed in C, mi risultano complesse molte volte.
Beh, stai parlando di usare Arduino, quindi col suo linguaggio C, che deve fare da web server, quindi con pagine HTML, e con elementi di una form. Per cui sicuramente devi approfondire entrambi questi aspetti per poter andare avanti, non ti pare? ![]()
Comunque per i radio/option button inizia da questa breve guida, ed inizia a creare una paginetta HTML (magari per test iniziale usi un web server locale, tipo un IIS Express su Windows, o Apache su Linux) che contiene in una form due gruppi di radiobutton:
Una volta che hai capito come si costruisce, Arduino riceverà una connessione con POST nella quale troverai i due campi e relativi valori, e ci fai quello che serve.
Anzi, ancora meglio vedi sul sito del w3school dove oltre al reference completo hai anche la possibilità di "provare" il codice con i pulsanti "Try it yourself" che ti dà un editor ed il relativo output.
Ad esempio per le form e relativi elementi:
Nel tuo caso diciamo che potresti fare una cosa del genere:
<!DOCTYPE html>
<html>
<body>
<h2>Radio Buttons</h2>
<form action="http://arduino/set">
<fieldset>
<legend>Colore</legend>
Rosso <input type="radio" name="colore" value="R"/>
Verde <input type="radio" name="colore" value="G"/>
Blu <input type="radio" name="colore" value="B"/>
</fieldset>
<fieldset>
<legend>Tempo</legend>
10 <input type="radio" name="tempo" value="10"/>
15 <input type="radio" name="tempo" value="15"/>
20 <input type="radio" name="tempo" value="20"/>
</fieldset>
<input type="submit" value="Invia">
</form>
</body>
</html>
Ovviamente l'indirizzo della form, qui indicata come "http://arduino/set", la devi impostare coerentemente con l'indirizzo del tuo Arduino, seguito diciamo dal "metodo" che vuoi chiamare (questo per permetterti in futuro di estendere le funzionalità anche con altri metodi) che qui ho chiamato "set".
Poi in Arduino ricevi quindi una connessione, leggi cosa ti manda il browser (sarà una cosa tipo "POST /set eccetera...", sperimenta tu...) e agisci.
Va bene, adesso mi informero' un po sui vari argomenti. Grazie mille per l'aiuto ![]()
Domanda: non sarebbe possibile costruire le pagine in modo tale che, ad esempio, la scelta del led facesse apparire la scelta del tempo di accensione, e solo dopo la scelta della seconda inviare ad Arduino entrambe le informazioni? (ad esempio con tre led e tre tempi per led potresti fare, se si potesse, quattro pagine:
1)scelgo il led
2)tempi del primo led
3)tempi del secondo led
3)tempi del terzo led
Così facendo nel momento in cui invio le informazioni ad Arduino le conosco entrambe.
Può essere soluzione complicata ma vorrei sapere se è percorribile
Secondo me oltre che Arduino che capisce solo C++ ed HTML che non so cosa capisce....se vuoi ancora piu confusione potresti anche il Pascal..ed i linguaggi EDGE(quelli dei satelliti prima del GSM)
![]()
Scherzo..impara prima ad accendere i tuoi led ,come vuoi tu,con quello che hai a disposizione.
Silente:
Domanda: non sarebbe possibile costruire le pagine in modo tale che, ad esempio, la scelta del led facesse apparire la scelta del tempo di accensione, e solo dopo la scelta della seconda inviare ad Arduino entrambe le informazioni? (ad esempio con tre led e tre tempi per led potresti fare, se si potesse, quattro pagine:
Se fossero 4 pagine queste dovrebbero risiedere nel web server ossia in Arduino, con 4 interrogazioni quindi complicherebbe un poco la cosa.
Comunque tutto è possibile, si può giocare anche con codice javascript sulla pagina stessa per far fare qualcosa localmente in modo "automatico" in base alle scelte ed azioni.
Ma se l'OP già non conosce bene l'HTML ed il C, vuoi inserirgli anche il javascript? ![]()
Ciao, ho sperimentato un po' qua e la e, per me che di HTML so ben poco, ho preferito provare per la strada che mi aveva consigliato Guglielmo, ovvero utilizzando una flag.
Ora come ora sono arrivato a questo punto
parte dichiarazione
#include <Ethernet.h> //libreria ethernet
#include <SPI.h> //collabora con la libreria ethernet
#include <String.h> //gestione stringhe
byte flag = 0;
int tempo = 0;
int led = 0;
//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
void setup
void setup() {
Serial.begin(9600);
//Ethernet shield
Ethernet.begin(mac); //inizializzazione
server.begin(); //avvio server
Serial.print("server is at ");
Serial.println(Ethernet.localIP()); //stampa indirizzo del server
}
void loop
void loop() {
EthernetClient client = server.available(); //attendo l'arrivo di un client
if (client) { //se c'è il cliente deve..
boolean currentLineIsBlank = true;
azioni();
while (client.connected()) {
if (client.available()) {
if (flag == 0) {
char c = client.read(); //..leggere i caratteri che invia
ascoltatore1.concat(c); //concatena i caratteri del client
if (c == '\n' && currentLineIsBlank) { //se arrivo a fine riga
if (ascoltatore1.indexOf("/?rosso") > 0) { //controllo che nell'url ci sia rosso
led = 1;
flag = 1;
Serial.println("flag");
Serial.println(flag);
Serial.println("led");
Serial.println(led);
}
else if (ascoltatore1.indexOf("/?verde") > 0) { //controllo che nell'url ci sia verde
led = 2;
flag = 1;
Serial.println("flag");
Serial.println(flag);
Serial.println("led");
Serial.println(led);
}
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("Connection: close");
client.print("<!DOCTYPE HTML>");
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.println("</body>");
client.println("</html>");
ascoltatore1 = "";
break;
}
if (c == '\n') {
//scrive una nuova riga
currentLineIsBlank = true;
}
else if (c != '\r') {
// riceve un carattere sulla linea
currentLineIsBlank = false;
}
}
else if (flag == 1) {
char d = client.read();
ascoltatore2.concat(d);
if (d == '\n' && currentLineIsBlank) { //se arrivo a fine riga
if (ascoltatore2.indexOf("/?10_sec") > 0) { //controllo che nell'url ci sia 10_sec
tempo = 1;
flag = 0;
Serial.print("flag");
Serial.print(flag);
Serial.print("led");
Serial.print(led);
}
else if (ascoltatore2.indexOf("/?5_sec") > 0) { //controllo che nell'url ci sia 5_sec
tempo = 2;
flag = 0;
Serial.print("flag");
Serial.print(flag);
Serial.print("led");
Serial.print(led);
}
else if (ascoltatore2.indexOf("/?15_sec") > 0) { //controllo che nell'url ci sia 15_sec
tempo = 3;
flag = 0;
Serial.print("flag");
Serial.print(flag);
Serial.print("led");
Serial.print(led);
}
else if (ascoltatore2.indexOf("/?7_sec") > 0) { //controllo che nell'url ci sia 7_sec
tempo = 4;
flag = 0;
Serial.print("flag");
Serial.print(flag);
Serial.print("led");
Serial.print(led);
}
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("Connection: close");
client.print("<!DOCTYPE HTML>");
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='/?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.println("</body>");
client.println("</html>");
ascoltatore2 = "";
break;
}
if (d == '\n') {
//scrive una nuova riga
currentLineIsBlank = true;
}
else if (d != '\r') {
// riceve un carattere sulla linea
currentLineIsBlank = false;
}
}
}
}
delay(10);
client.stop();
}
}
void azioni , che si trova subito sotto if (client) a inizio void loop
void azioni() {
if (led == 1 && tempo == 1) {
Serial.print("rosso per 10sec");
}
else if (led == 1 && tempo == 2) {
Serial.print("rosso per 5sec");
}
else if (led == 1 && tempo == 3) {
Serial.print("rosso per 15sec");
}
else if (led == 1 && tempo == 4) {
Serial.print("rosso per 7sec");
}
else if (led == 2 && tempo == 1) {
Serial.print("verde per 10sec");
}
else if (led == 2 && tempo == 2) {
Serial.print("verde per 5sec");
}
else if (led == 2 && tempo == 3) {
Serial.print("verde per 15sec");
}
else if (led == 2 && tempo == 4) {
Serial.print("verde per 7sec");
}
}
Ho creato il codice anche facendo un po di riferimento all'esempio WebServer della libreria Ethernet, ma ci sono degli errori lo stesso... dato che nemmeno mi apre la pagina quando inserisco l'indirizzo ip sul browser.
Non so dove sto sbagliando ![]()
Sono riuscito a fare il programma che mi serviva, l'unico intoppo e' che se dopo aver fatto la prima scelta, non riapro il web server su una nuova pagina web, ogni tanto mi da un problema di rallentamento.
Questo puo' essere dovuto al browser?
#include <Ethernet.h> //libreria ethernet
#include <SPI.h> //collabora con la libreria ethernet
#include <String.h> //gestione stringhe
int flag = 0;
int tempo = 0;
int led = 0;
//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
void setup() {
Serial.begin(9600);
//Ethernet shield
Ethernet.begin(mac); //inizializzazione
server.begin(); //avvio server
Serial.print("server is at ");
Serial.println(Ethernet.localIP()); //stampa indirizzo del server
}
void loop() {
if (flag == 0) {
EthernetClient client = server.available(); //attendo l'arrivo di un client
if (client) { //se c'è il cliente deve..
boolean currentLineIsBlank = true;
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' && currentLineIsBlank) { //se arrivo a fine riga
if (ascoltatore1.indexOf("/?rosso") > 0) { //controllo che nell'url ci sia rosso
led = 1;
flag = 1;
Serial.println("flag");
Serial.println(flag);
Serial.println("led");
Serial.println(led);
}
else if (ascoltatore1.indexOf("/?verde") > 0) { //controllo che nell'url ci sia verde
led = 2;
flag = 1;
Serial.println("flag");
Serial.println(flag);
Serial.println("led");
Serial.println(led);
}
client.print(
"HTTP/1.1 200 OK\r\n"
"Content-Type: text/html\r\n"
"Connection: close\r\n" // la connessione viene chiusa dopo la risposta
"\r\n");
client.print("<!DOCTYPE HTML>\r\n");
client.println(); //necessario per non buggare
client.print("<html>\r\n");
client.println("<head>\r\n");
client.println("<title>\r\n");
client.println("DAMBOBOTS");
client.println("</title>\r\n");
client.println("<link rel='shortcut icon' type='image/x-icon' href='http://i44.servimg.com/u/f44/16/84/89/65/23570310.png' />");
client.println("</head>\r\n");
client.println("<body>\r\n");
client.println("<center>\r\n");
client.println("<h1>\r\n");
client.println("DAMBOBOTS ");
client.println("</h1>\r\n");
client.println("<a href='/?rosso'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/avanti.gif\" width='200' height='150' ></a>\r\n");
client.println("<a href='/?verde'><img src = \"http://gigiowifi.altervista.org/wp-content/uploads/2017/10/indietro.gif\" width='200' height='150' ></a>\r\n");
client.println("</body>\r\n");
client.println("</html>\r\n");
ascoltatore1 = "";
break;
}
if (c == '\n') {
//scrive una nuova riga
currentLineIsBlank = true;
}
else if (c != '\r') {
// riceve un carattere sulla linea
currentLineIsBlank = false;
}
}
}
delay(10);
client.stop();
}
}
if (flag == 1) {
EthernetClient client = server.available(); //attendo l'arrivo di un client
if (client) { //se c'è il cliente deve..
boolean currentLineIsBlank1 = true;
while (client.connected()) {
if (client.available()) {
char d = client.read();
ascoltatore2.concat(d);
if (d == '\n' && currentLineIsBlank1) { //se arrivo a fine riga
if (ascoltatore2.indexOf("/?10_sec") > 0) { //controllo che nell'url ci sia 10_sec
tempo = 1;
flag = 2;
Serial.println("flag");
Serial.println(flag);
Serial.println("tempo");
Serial.println(tempo);
}
else if (ascoltatore2.indexOf("/?5_sec") > 0) { //controllo che nell'url ci sia 5_sec
tempo = 2;
flag = 2;
Serial.println("flag");
Serial.println(flag);
Serial.println("tempo");
Serial.println(tempo);
}
else if (ascoltatore2.indexOf("/?15_sec") > 0) { //controllo che nell'url ci sia 15_sec
tempo = 3;
flag = 2;
Serial.println("flag");
Serial.println(flag);
Serial.println("tempo");
Serial.println(tempo);
}
else if (ascoltatore2.indexOf("/?7_sec") > 0) { //controllo che nell'url ci sia 7_sec
tempo = 4;
flag = 2;
Serial.println("flag");
Serial.println(flag);
Serial.println("tempo");
Serial.println(tempo);
}
client.print(
"HTTP/1.1 200 OK\r\n"
"Content-Type: text/html\r\n"
"Connection: close\r\n" // la connessione viene chiusa dopo la risposta
"\r\n");
client.print("<!DOCTYPE HTML>");
client.println(); //necessario per non buggare
client.print("<html>\r\n");
client.println("<head>\r\n");
client.println("<title>\r\n");
client.println("DAMBOBOTS");
client.println("</title>\r\n");
client.println("<link rel='shortcut icon' type='image/x-icon' href='http://i44.servimg.com/u/f44/16/84/89/65/23570310.png' />");
client.println("</head>\r\n");
client.println("<body>\r\n");
client.println("<center>\r\n");
client.println("<h1>\r\n");
client.println("DAMBOBOTS ");
client.println("</h1>\r\n");
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.println("</body>");
client.println("</html>");
ascoltatore2 = "";
break;
}
if (d == '\n') {
//scrive una nuova riga
currentLineIsBlank1 = true;
}
else if (d != '\r') {
// riceve un carattere sulla linea
currentLineIsBlank1 = false;
}
}
}
delay(10);
client.stop();
}
}
if (flag == 2) {
azioni();
}
}
void azioni() {
if (led == 1 && tempo == 1) {
Serial.println("rosso per 10sec");
}
else if (led == 1 && tempo == 2) {
Serial.println("rosso per 5sec");
}
else if (led == 1 && tempo == 3) {
Serial.println("rosso per 15sec");
}
else if (led == 1 && tempo == 4) {
Serial.println("rosso per 7sec");
}
else if (led == 2 && tempo == 1) {
Serial.println("verde per 10sec");
}
else if (led == 2 && tempo == 2) {
Serial.println("verde per 5sec");
}
else if (led == 2 && tempo == 3) {
Serial.println("verde per 15sec");
}
else if (led == 2 && tempo == 4) {
Serial.println("verde per 7sec");
}
}
Questo e' il programma funzionante.