Salve, parto direttamente con il problema. Nel "codice1" (trovato in giro per il web) che vi posterò sotto cerco di controllare un led da pagina web utilizzando arduino come web server, questo primo codice funziona tranquillamente, ma è limitato ad un led e ho cercato quindi di aggiungere un altro led modificando il codice1.Vi posto sempre sotto il codice modificato da me ovvero "codice2". Il problema che presenta questo codice2 è che il primo led si accende e si spegne al comando, invece il secondo led (ovvero quello che ho aggiunto) rimane sempre acceso e non risponde a nessun comando...Potete aiutarmi? Dove sbaglio? Poi un'altra cosa, vorrei acquisire un dato (per esempio un valore di temperatura) e buttarlo in una textfield o textarea, come faccio? Grazie per le future risposte...
codice1--->
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD,0xBE,0xEF, 0xFE,0xED };
byte ip[] = { 192,168,1,200 };
byte subnet[] = { 255,255,255,0 };
byte gateway[] = { 192,168,1,1 };
EthernetServer server(80);
int pinLed = 9;
String richiesta;
boolean acceso = false;
void setup() {
Ethernet.begin(mac,ip,gateway,subnet);
pinMode(pinLed,OUTPUT);
Serial.begin(9600);//stampare dati su schermo seriale//apre porta 80 e apre pagine web
richiesta = "";
}
void loop() {
EthernetClient client = server.available(); //metodo che serve per vedere se qualcuno(client) si è connesso sulla porta server 80
if(client)
{
Serial.println("Qualcosa ha provato a connettersi...");
while(client.connected())
{
if(client.available())
{
char c = client.read();
richiesta.concat(c); //concatena
if(c == '\n')
{
Serial.print(richiesta);
if(richiesta.indexOf("Led=1")>0)
{
Serial.println("Accendo il Led");
digitalWrite(pinLed,HIGH);
acceso = true;
} else {
Serial.println("Spengo il Led");
digitalWrite(pinLed,LOW);
acceso = false;
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<head><title>Controllo led</title><link rel='shortcut icon' type='image/x-icon' href='http://arduino.cc/en/favicon.png'/></head>");
client.print("<body>");
if(acceso)
{
client.println("<img src=http://img849.imageshack.us/img849/1513/accesao.jpg/>");
}
else
{
client.println("img src=http://img10.imageshack.us/img10/4719/spenta.jpg/>");
}
client.print("<p> </p><a href='/?Led=1'>Accendi </a> <a href='/?Led=0'>Spegni</a></body>");
client.stop();
richiesta = ""; //mettere stringa vuota per pulire il buffer
}
}
}
}
}
codice2--->
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD,0xBE,0xEF, 0xFE,0xED };
byte ip[] = { 192,168,1,200 };
byte subnet[] = { 255,255,255,0 };
byte gateway[] = { 192,168,1,1 };
EthernetServer server(80);
int pinLed = 9;
int pinLed2 = 13;
String richiesta;
boolean acceso = false;
void setup() {
Ethernet.begin(mac,ip,gateway,subnet);
pinMode(pinLed,OUTPUT);
pinMode(pinLed2,OUTPUT);
Serial.begin(9600);//stampare dati su schermo seriale//apre porta 80 e apre pagine web
richiesta = "";
}
void loop() {
EthernetClient client = server.available(); //metodo che serve per vedere se qualcuno(client) si è connesso sulla porta server 80
if(client)
{
Serial.println("Qualcosa ha provato a connettersi...");
while(client.connected())
{
if(client.available())
{
char c = client.read();
richiesta.concat(c); //concatena
if(c == '\n')
{
Serial.print(richiesta);
if(richiesta.indexOf("Led=1")>0)
{
Serial.println("Accendo il Led");
digitalWrite(pinLed,HIGH);
acceso = true;
} if(richiesta.indexOf("Led=0")>0) {
Serial.println("Spengo il Led");
digitalWrite(pinLed,LOW);
acceso = false;
}
if(richiesta.indexOf("Led=2")>0)
{
Serial.println("Accendo il Led");
digitalWrite(pinLed2,HIGH);
acceso = true;
}
if(richiesta.indexOf("Led=3")>0)
{
Serial.println("Spengo il Led");
digitalWrite(pinLed2,LOW);
acceso = false;
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<head><title>Controllo due led</title></head>");
client.print("<body>");
/*if(acceso)
{
client.println("<img src=http://img849.imageshack.us/img849/1513/accesao.jpg/>");
}
else
{
client.println("img src=http://img10.imageshack.us/img10/4719/spenta.jpg/>");
}*/
client.print("<p> </p><a href='/?Led=1'>Accendi </a> <a href='/?Led=2'>Spegni</a>");
client.print("<p> </p><a href='/?Led=3'>Accendi </a> <a href='/?Led=4'>Spegni</a>");
client.print("</body>");
client.stop();
richiesta = ""; //mettere stringa vuota per pulire il buffer
}
}
}
}
}