#include <WiFi.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
WiFiServer server(80);
int ledPin = 2;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.begin(115200);
Serial.println();
Serial.print("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nWiFi connected.");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n') {
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<h1>ESP32 LED Control</h1>");
client.println("<a href=\"/LED=ON\"><button>Turn ON</button></a>");
client.println("<a href=\"/LED=OFF\"><button>Turn OFF</button></a>");
client.println("</html>");
break;
} else {
if (currentLine.indexOf("GET /LED=ON") >= 0) {
digitalWrite(ledPin, HIGH);
} else if (currentLine.indexOf("GET /LED=OFF") >= 0) {
digitalWrite(ledPin, LOW);
}
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
}
}
client.stop();
}
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
command.trim();
if (command == "ON") {
digitalWrite(ledPin, HIGH);
Serial.println("LED is ON");
} else if (command == "OFF") {
digitalWrite(ledPin, LOW);
Serial.println("LED is OFF");
} else {
Serial.println("Invalid command. Use ON or OFF.");
}
}
}