#include #include #include const char* ssid = "ESP32_Servo"; const char* password = "12345678"; WebServer server(80); Servo myservo; int servoPin = 10; int currentPos = 90; void moveServo(int target) { if (target > currentPos) { for (int pos = currentPos; pos <= target; pos++) { myservo.write(pos); delay(5); } } else { for (int pos = currentPos; pos >= target; pos--) { myservo.write(pos); delay(5); } } currentPos = target; } void handleRoot() { String page = R"rawliteral( ESP32 Servo Control

ESP32 Servo Controller

)rawliteral"; server.send(200, "text/html", page); } void handleLeft() { moveServo(0); server.sendHeader("Location", "/"); server.send(303); } void handleCenter() { moveServo(90); server.sendHeader("Location", "/"); server.send(303); } void handleRight() { moveServo(180); server.sendHeader("Location", "/"); server.send(303); } void setup() { Serial.begin(115200); // Servo setup ESP32PWM::allocateTimer(0); ESP32PWM::allocateTimer(1); ESP32PWM::allocateTimer(2); ESP32PWM::allocateTimer(3); myservo.setPeriodHertz(50); myservo.attach(servoPin, 1000, 2000); myservo.write(currentPos); // WiFi AP WiFi.mode(WIFI_AP); WiFi.softAP(ssid, password); IPAddress IP = WiFi.softAPIP(); Serial.println(); Serial.println("WiFi Started"); Serial.print("Open browser at: http://"); Serial.println(IP); // Web routes server.on("/", handleRoot); server.on("/left", handleLeft); server.on("/center", handleCenter); server.on("/right", handleRight); server.begin(); Serial.println("Web server started"); } void loop() { server.handleClient(); }