//MANUAL MODE
EthernetClient client = server.available(); //Creamos un cliente Web
//Cuando detecte un cliente a través de una petición HTTP
if (client) {
Serial.println(F("new client"));
boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco
String cadena=""; //Creamos una cadena de caracteres vacía
while (client.connected()) {
if (client.available()) {
char c = client.read();//Leemos la petición HTTP carácter por carácter
Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial
cadena.concat(c);//Unimos el String 'cadena' con la petición HTTP (c). De esta manera convertimos la petición HTTP a un String
//Ya que hemos convertido la petición HTTP a una cadena de caracteres, ahora podremos buscar partes del texto.
int posicion=cadena.indexOf("VENTILADOR="); //Guardamos la posición de la instancia "LED=" a la variable 'posicion'
if(cadena.substring(posicion)=="VENTILADOR=ON")//Si a la posición 'posicion' hay "LED=ON"
{
digitalWrite(ReleVent,HIGH);
estado="ON";
}
if(cadena.substring(posicion)=="VENTILADOR=OFF")//Si a la posición 'posicion' hay "LED=OFF"
{
digitalWrite(ReleVent,LOW);
estado="OFF";
}
int posicion2=cadena.indexOf("LUZ="); //Guardamos la posición de la instancia "LED=" a la variable 'posicion'
if(cadena.substring(posicion2)=="LUZ=ON")//Si a la posición 'posicion' hay "LED=ON"
{
digitalWrite(ReleLuz,HIGH);
estado2="ON";
}
if(cadena.substring(posicion2)=="LUZ=OFF")//Si a la posición 'posicion' hay "LED=OFF"
{
digitalWrite(ReleLuz,LOW);
estado2="OFF";
}
int posicion3=cadena.indexOf("RIEGO="); //Guardamos la posición de la instancia "LED=" a la variable 'posicion'
if(cadena.substring(posicion3)=="RIEGO=ON")//Si a la posición 'posicion' hay "LED=ON"
{
digitalWrite(ReleAgua,HIGH);
estado3="ON";
}
if(cadena.substring(posicion3)=="RIEGO=OFF")//Si a la posición 'posicion' hay "LED=OFF"
{
digitalWrite(ReleAgua,LOW);
estado3="OFF";
}
//Cuando reciba una línea en blanco, quiere decir que la petición HTTP ha acabado y el servidor Web está listo para enviar una respuesta
if (c == '\n' && currentLineIsBlank) {
// Enviamos al cliente una respuesta HTTP
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
client.println();
//Página web en formato HTML
client.println(F("<html>"));
client.println(F("<head>"));
client.println(F("</head>"));
client.println(F("<body>"));
client.println(F("<h1 align='center'>ADRIAN SANZ</h1><h3 align='center'>AUTOMATIZACION</h3>"));
//Creamos los botones. Para enviar parametres a través de HTML se utiliza el metodo URL encode. Los parámetros se envian a través del símbolo '?'
client.println(F("<div style='text-align:center;'>"));
//boton Luz
client.println(F("<button onClick=location.href='./?LUZ=ON\' style='margin:auto;background-color: #eb772a;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"));
client.println(F("ON"));
client.println(F("</button>"));
client.println(F("<button onClick=location.href='./?LUZ=OFF\' style='margin:auto;background-color: #eb772a;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"));
client.println(F("OFF"));
client.println(F("</button>"));
client.println(F("
"));
client.println(F("<b>LUZ = "));
client.print(estado2);
//Boton Ventilador
client.println(F("<button onClick=location.href='./?VENTILADOR=ON\' style='margin:auto;background-color: #84B1FF;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"));
client.println(F("ON"));
client.println(F("</button>"));
client.println(F("<button onClick=location.href='./?VENTILADOR=OFF\' style='margin:auto;background-color: #84B1FF;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"));
client.println(F("OFF"));
client.println(F("</button>"));
client.println(F("
"));
client.println(F("<b>VENTILADOR = "));
client.print(estado);
//Boton Agua
client.println(F("<button onClick=location.href='./?RIEGO=ON\' style='margin:auto;background-color: #29db85;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"));
client.println(F("ON"));
client.println(F("</button>"));
client.println(F("<button onClick=location.href='./?RIEGO=OFF\' style='margin:auto;background-color: #29db85;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:65px;'>"));
client.println(F("OFF"));
client.println(F("</button>"));
client.println(F("
"));
client.println(F("<b>RIEGO = "));
client.print(estado3);
client.print(F("La humedad actual es "));
client.print(humedad);
client.print(F("La temperatura actual es "));
client.print(temperatura);
client.print(F("La luminosidad actual es "));
client.print(luminosidad);
client.println(F("</b>
"));
client.println(F("</b></body>"));
client.println(F("</html>"));
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
//Dar tiempo al navegador para recibir los datos
delay(1);
client.stop();// Cierra la conexión
}
//AUTOMATIC MODE
if (tlluvia1.getActivado()) {
digitalWrite(ReleAgua,HIGH);
}
else{
digitalWrite(ReleAgua,LOW);
}
if (tlluvia2.getActivado()) {
digitalWrite(ReleAgua,HIGH);
}
else{
digitalWrite(ReleAgua,LOW);
}
if (tlluvia3.getActivado()) {
digitalWrite(ReleLuz,HIGH);
}
else{
digitalWrite(ReleLuz,LOW);
}
//
if (temperatura > ValorCalor)
{
digitalWrite (ReleVent,HIGH); //Se activa el relé del ventilador (4) cuando temperatura > 26 grados
}
else
{
digitalWrite (ReleVent,LOW); //Se desactiva el relé del ventilador (4) cuando la temperatura < 26 grados
}
if (humedad < ValorHumedad)
{
digitalWrite (ReleAgua,HIGH); //Se activa el relé del agua (2) cuando humedad < 40
}
else
{
digitalWrite (ReleAgua,LOW); //Se desactiva el relé del agua
}
}