#include <WiFi.h>
#include <WebServer.h> // For ESP32
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Pins for the 3 LEDs
const int led1 = 2; // LED 1 connected to GPIO 2
const int led2 = 4; // LED 2 connected to GPIO 4
const int led3 = 5; // LED 3 connected to GPIO 5
WebServer server(80);
void setup() {
Serial.begin(115200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi ");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println(" connected!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// Define routes for the web server
server.on("/", handleRoot);
server.begin();
Serial.println("HTTP server started");
}
void loop() {
server.handleClient();
// Check if data is available on Serial
if (Serial.available()) {
char command = Serial.read(); // Read the command from Serial
// Control LEDs based on the command received
if (command == '1') {
digitalWrite(led1, HIGH);
Serial.println("LED 1 is ON");
} else if (command == '2') {
digitalWrite(led1, LOW);
Serial.println("LED 1 is OFF");
} else if (command == '3') {
digitalWrite(led2, HIGH);
Serial.println("LED 2 is ON");
} else if (command == '4') {
digitalWrite(led2, LOW);
Serial.println("LED 2 is OFF");
} else if (command == '5') {
digitalWrite(led3, HIGH);
Serial.println("LED 3 is ON");
} else if (command == '6') {
digitalWrite(led3, LOW);
Serial.println("LED 3 is OFF");
} else {
Serial.println("Unknown command");
}
}
}
// Web page content
void handleRoot() {
server.send(200, "text/html", "<h1>Control 3 LEDs</h1>"
"<p><a href=\"/led1/on\">Turn LED 1 ON</a></p>"
"<p><a href=\"/led1/off\">Turn LED 1 OFF</a></p>"
"<p><a href=\"/led2/on\">Turn LED 2 ON</a></p>"
"<p><a href=\"/led2/off\">Turn LED 2 OFF</a></p>"
"<p><a href=\"/led3/on\">Turn LED 3 ON</a></p>"
"<p><a href=\"/led3/off\">Turn LED 3 OFF</a></p>");
}