Que tal amigos, soy nuevo en este rubro, estoy tratando de implementar un pequeño servidor web para controlar unos led, el proyecto funciona, solo que para poder que responda tengo que darle click al botón mas de una vez, pueden ser 2 o hasta 3 o 4 veces, la verdad no entiendo que hago mal.
Espero y me puedan ayudar. saludos
#include <SPI.h>
#include <Ethernet.h>
#include <EEPROM.h>byte mac[]={0x90, 0xA2, 0XDA, 0X0D, 0XF4, 0X67};
int estado=0;
IPAddress manualIP(192, 168, 1, 177);
EthernetServer server(80);
boolean dhcpConnected=false;
String cad = String(1000);
void setup() {
pinMode(2,OUTPUT);
digitalWrite(2, LOW);
Serial.begin(9600);
// put your setup code here, to run once:
if (!Ethernet.begin(mac)) {
Ethernet.begin(mac,manualIP);
}
server.begin();
}void loop() {
// put your main code here, to run repeatedly:
EthernetClient client = server.available();
if(client){
boolean currentLineIsBlank=true;
while(client.connected())
{
if(client.available())
{
char c=client.read();
Serial.print(c);
cad = cad + c;
if(c=='\n' && currentLineIsBlank)
{
if ((cad.lastIndexOf("opcion") >-1) && (cad.lastIndexOf("encender") >-1)){
digitalWrite(2, HIGH);
}
if ((cad.lastIndexOf("opcion") >-1) && (cad.lastIndexOf("apagar") >-1)){
digitalWrite(2, LOW);
}
if (c == '\n' && currentLineIsBlank){
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("Interface arduino");
client.println("
");
client.println("");
client.println("");client.println("EncenderApagar
");
client.println("
");
client.println("
");client.println("");
client.print(" ");break;
}
if(c=='\n')
{
currentLineIsBlank=true;
}
else if(c != '\r')
{
currentLineIsBlank=false;
}
}
}
delay(1);
client.stop();
}}