#include <WiFi.h>
#include <WebServer.h>
// Define los pines del LED
#define LED_1 14
#define LED_2 12
// Crea un servidor web en el puerto 80
WebServer server(80);
void handleRoot() {
// Genera la página HTML con dos botones para controlar los LED
String html = "<html><body>";
html += "<h1>Control de LED</h1>";
html += "<p>LED 1: <a href=\"/led1/on\"><button>Encender</button></a> <a href=\"/led1/off\"><button>Apagar</button></a></p>";
html += "<p>LED 2: <a href=\"/led2/on\"><button>Encender</button></a> <a href=\"/led2/off\"><button>Apagar</button></a></p>";
html += "</body></html>";
// Envía la página HTML al cliente
server.send(200, "text/html", html);
}
void handleLedOn() {
// Obtiene el número de LED a encender de la URL
String led = server.uri().substring(1, 5);
// Enciende el LED correspondiente
if (led == "led1") {
digitalWrite(LED_1, HIGH);
} else if (led == "led2") {
digitalWrite(LED_2, HIGH);
}
// Redirige al usuario a la página principal
server.sendHeader("Location", "/");
server.send(302);
}
void handleLedOff() {
// Obtiene el número de LED a apagar de la URL
String led = server.uri().substring(1, 5);
// Apaga el LED correspondiente
if (led == "led1") {
digitalWrite(LED_1, LOW);
} else if (led == "led2") {
digitalWrite(LED_2, LOW);
}
// Redirige al usuario a la página principal
server.sendHeader("Location", "/");
server.send(302);
}
void setup() {
// Inicializa el puerto serie y los pines de los LED
Serial.begin(115200);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
// Conéctate a la red Wi-Fi
//WiFi.begin("AP-PTCs", "tc-ptcs2014");
WiFi.begin("WucolARG", "Unico2023");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando a la red Wi-Fi...");
}
Serial.println("Conexión Wi-Fi establecida");
// Imprime la dirección IP asignada al dispositivo
Serial.print("Dirección IP: ");
Serial.println(WiFi.localIP());
// Registra las funciones de control de LED para las rutas correspondientes
server.on("/", handleRoot);
server.on("/led1/on", handleLedOn);
server.on("/led1/off", handleLedOff);
server.on("/led2/on", handleLedOn);
server.on("/led2/off", handleLedOff);
// Inicia el servidor web
server.begin();
Serial.println("Servidor web iniciado");
}
void loop() {
// Maneja las solicitudes del cliente
server.handleClient();
}