#include <WiFi.h>

//------------------Servidor Web en puerto 80---------------------

WiFiServer server(80);

//---------------------Credenciales de WiFi-----------------------

const char* ssid     ="Vale Sanchez" ;
const char* password = "dianita28";

//---------------------VARIABLES GLOBALES-------------------------
int SensorHum = 32;
int LED = 14;
int LED_2 = 27 ;
int LUMINOSIDAD = 33;
int Bomba = 34;

int VALOR_FOTO;
int humedad;


String currentLine = "";  
String header; // Variable para guardar el HTTP request




//------------------------CODIGO HTML------------------------------
String generarPaginaHTML(){
String paginaInicio = "<!DOCTYPE html>"
"<html>"
"<head>"
"<meta charset='utf-8' />"
"<META HTTP-EQUIV='Refresh' CONTENT='1'>"
"<title>Servidor detector huemdad en el suelo </title>" //PONER TITULO A LA PAGINA WEB
"</head>"
"<body>"
"<center>"
"<h3 style='font-size:16rem; color:red;'>Servidor detector humedad en el suelo/h3>"
"<p style='font-size:10rem; color: green background-col or:#B7B7B7;'>Humedad:</p>>"
"<p style='font-size:10rem; color: blue background-col or:#B7B7B7;'>LUMINOSIDAD:</p>>"
"<p style='font-size:8rem; color: black'>";


String paginaFin = "</p></center>"
"</body>"
"</html>";

return paginaInicio;
}


//---------------------------SETUP--------------------------------
void setup() {
  
  //Declaramos los pines como entradas y salidas
  pinMode(LED,OUTPUT);
  pinMode(LED_2,OUTPUT);
  pinMode(SensorHum, INPUT);
  pinMode(LUMINOSIDAD, INPUT);
  pinMode(Bomba, OUTPUT);
  Serial.begin(115200);
  Serial.println("");

  
  
    //Empezamos conectándonos a una red WiFi network
   
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
        }

    Serial.println("");
    Serial.println("WiFi connected.");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
    
    server.begin(); 
}

//----------------------------LOOP----------------------------------

void loop(){
  humedad = analogRead(SensorHum);
  VALOR_FOTO =analogRead (LUMINOSIDAD);

  
  WiFiClient client = server.available();   // Escucha a los clientes entrantes
      
  if (client) {                             // Si se conecta un nuevo cliente
    Serial.println("New Client.");
             //               //
    while (client.connected()) {            // loop mientras el cliente está conectado
          
      if (client.available()) {             // si hay bytes para leer desde el cliente
        char c = client.read();             // lee un byte
        Serial.write(c);                    // imprime ese byte en el monitor serial
        header += c;

            
        
        if (c == '\n') {                    // si el byte es un caracter de salto de linea
          // si la nueva linea está en blanco significa que es el fin del 
          // HTTP request del cliente, entonces respondemos:
          if (currentLine.length() == 0) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();

    
            // enciende y apaga el LED


   if(currentLine.endsWith("GET /H")){
  
     digitalWrite(LED,HIGH);
     digitalWrite(Bomba, LOW);
   }
   if(currentLine.endsWith("GET /L")){
  
     digitalWrite(LED,LOW);
     digitalWrite(Bomba, HIGH);  
}

   
   if(VALOR_FOTO<280){
  
   analogWrite(LED_2,LOW);   
   
 }
   if(VALOR_FOTO>300){
   
 
   analogWrite(LED_2,HIGH);
 
}

 Serial.println(VALOR_FOTO);


                               
            // Muestra la página web
            String html = generarPaginaHTML(); 
            client.println(html);    
            
                       
            // la respuesta HTTP temina con una linea en blanco
            client.println();
            break;


          } else { // si tenemos una nueva linea limpiamos currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // si C es distinto al caracter de retorno de carro
          currentLine += c;      // lo agrega al final de currentLine
         
        }
      }
    }



    header = "";  // Limpiamos la variable header


    // Cerramos la conexión
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}