martes, 9 de mayo de 2023

Encender y apagar el diodo interno de la ESP32 desde el navegador

 

Crea Un servidor web en la ESP32 que controla el funcionamiento del diodo interno de la tarjeta. La IP se muestra en una LCD cada 5 segundos.

#include "WiFi.h"
#include <WebServer.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

const char ssid[]="Nombrered";
const char pass[]="Contraseña";
//Creamos un objeto de WebServer llamado servidor//
WebServer servidor;

//Creamos un objeto de LiquidCrystal_I2C llamado LCD1//
LiquidCrystal_I2C LCD1(0x27,16,2);
unsigned long task_time_ms=0;

void servidor_on_(){
  servidor.send(200,String("text/html"),String("Conectado servidor web de la ESP32"));
}
void servidor_on_encender(){
  servidor.send(200,String("text/html"),String("El led de la ESP32 se ha encendido."));
  digitalWrite(2, HIGH);
}
void servidor_on_apagar(){
  servidor.send(200,String("text/html"),String("El led de la ESP32 se ha apagado"));
  digitalWrite(2, LOW);
}
void _servidor_on__NOTFOUND__(){
  servidor.send(200,String("text/html"),String("Código no válido"));
}

void setup()
{
  pinMode(2, OUTPUT);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid,pass);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  servidor.begin(80);

  LCD1.init();
  LCD1.backlight();
  LCD1.clear();
  LCD1.setCursor(0, 0);
  LCD1.print(WiFi.localIP().toString());

  servidor.on("/",HTTP_GET,servidor_on_);
  servidor.on("/encender",HTTP_GET,servidor_on_encender);
  servidor.on("/apagar",HTTP_GET,servidor_on_apagar);
  servidor.onNotFound(_servidor_on__NOTFOUND__);
}

 void loop()
{
  servidor.handleClient();  
  if((millis()-task_time_ms)>=5000){
    task_time_ms=millis();
    LCD1.clear();
    LCD1.setCursor(7, 0);
    LCD1.print(String("IP:"));
    LCD1.setCursor(0, 1);
    LCD1.print(WiFi.localIP().toString());
  }
}