#include <WiFi.h>
#include <WebServer.h>
// Configura los pines de los LEDs
const int ledPin1 = 26;
const int ledPin2 = 27;
// Crea una instancia del servidor web en el puerto 80
WiFiServer server(80);
void setup() {
// Inicia la comunicación serial
Serial.begin(115200);
// Configura los pines de los LEDs como salidas
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
// Apaga los LEDs inicialmente
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
// Conecta a Wi-Fi
Serial.println();
WiFi.begin("Wokwi-GUEST", "");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Conectado a Wi-Fi");
Serial.println("Dirección IP: ");
Serial.println(WiFi.localIP());
// Inicia el servidor web
server.begin();
}
void loop() {
// Escucha las conexiones entrantes de los clientes
WiFiClient client = server.available();
if (client) {
Serial.println("Nuevo cliente conectado");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n') {
if (currentLine.length() == 0) {
// Envía la respuesta HTTP
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
// Página HTML con botones para controlar los LEDs
client.println("<html>");
client.println("<head><title>Control de LEDs</title></head>");
client.println("<body>");
client.println("<h1>Control de LEDs</h1>");
client.println("<p>LED 1: <a href=\"/26/on\"><button>ENCENDER</button></a> <a href=\"/26/off\"><button>APAGAR</button></a></p>");
client.println("<p>LED 2: <a href=\"/27/on\"><button>ENCENDER</button></a> <a href=\"/27/off\"><button>APAGAR</button></a></p>");
client.println("</body>");
client.println("</html>");
break;
} else {
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
// Controla los LEDs según la solicitud
if (currentLine.endsWith("GET /26/on")) {
digitalWrite(ledPin1, HIGH);
}
if (currentLine.endsWith("GET /26/off")) {
digitalWrite(ledPin1, LOW);
}
if (currentLine.endsWith("GET /27/on")) {
digitalWrite(ledPin2, HIGH);
}
if (currentLine.endsWith("GET /27/off")) {
digitalWrite(ledPin2, LOW);
}
}
}
// Cierra la conexión
client.stop();
Serial.println("Cliente desconectado");
}
}