#include <WiFi.h> #include <WebServer.h> // Credenciales WiFi const char* ssid = "Tu_WiFi"; const char* password = "Tu_Contraseña"; // Definir PIN del LED (GPIO 2 suele ser el interno en ESP32) const int ledPin = 2; WebServer server(80); // HTML que se envía al navegador String getHTML() { String html = "<!DOCTYPE html><html><head>"; html += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"; html += "<style>body{font-family:sans-serif;text-align:center;padding:20px;}"; html += ".btn{padding:15px 30px;font-size:20px;margin:10px;border:none;border-radius:5px;cursor:pointer;}"; html += ".on{background:green;color:white;} .off{background:red;color:white;}</style>"; html += "</head><body><h1>Control LED ESP32</h1>"; html += "<a href=\"/on\"><button class=\"btn on\">ENCENDER</button></a>"; html += "<a href=\"/off\"><button class=\"btn off\">APAGAR</button></a>"; html += "</body></html>"; return html; } void handleRoot() { server.send(200, "text/html", getHTML()); } void handleLedOn() { digitalWrite(ledPin, HIGH); Serial.println("LED Encendido vía Web"); server.send(200, "text/html", getHTML()); } void handleLedOff() { digitalWrite(ledPin, LOW); Serial.println("LED Apagado vía Web"); server.send(200, "text/html", getHTML()); } void setup() { Serial.begin(115200); pinMode(ledPin, OUTPUT); // Conexión WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi conectado."); Serial.println("IP: "); Serial.println(WiFi.localIP()); // Rutas del Servidor server.on("/", handleRoot); server.on("/on", handleLedOn); server.on("/off", handleLedOff); server.begin(); } void loop() { server.handleClient(); }
Tamen a proposito, inquam, aberramus. Non igitur potestis voluptate omnia dirigentes aut tueri aut retinere virtutem.
