#include #include #include Servo myservo; // create servo object to control a servo int servoPin = 18; int initialPos = 100; const char* ssid = "dlink"; const char* password = ""; WebServer server(80); void closeCircuitAndOpen(int closeTime=660) { int pos = 0; for(pos = initialPos; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } delay(closeTime); for (pos = 180; pos >= initialPos; pos -= 1) { // goes from 180 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } } void handleRoot() { // when accessing server's root String page = "Yeah! I'm not dead! I'm still working ;)"; server.send(200, "text/plain", page); } void handleNotFound() { // Page Not found server.send(404, "text/plain","404: Not found"); } void closeCircuitViaWifi() { closeCircuitAndOpen(); server.send(200, "text/plain","Done\n"); } void setup() { Serial.begin(115200); //======SERVO PART======// // Allow allocation of all timers ESP32PWM::allocateTimer(0); ESP32PWM::allocateTimer(1); ESP32PWM::allocateTimer(2); ESP32PWM::allocateTimer(3); myservo.setPeriodHertz(50); // standard 50 hz servo myservo.attach(servoPin, 1000, 2000); // attaches the servo on pin 18 to the servo object myservo.write(initialPos);delay(2500); // position to initial suitable position //======WIFI PART======// WiFi.mode(WIFI_STA); //Optional WiFi.begin(ssid, password); Serial.println("\nConnecting"); while(WiFi.status() != WL_CONNECTED){ Serial.print("."); delay(100); } Serial.println("\nConnected to the WiFi network"); Serial.print("Local ESP32 IP: "); Serial.println(WiFi.localIP()); //======WEB SERVER PART======// server.on("/", handleRoot); server.onNotFound(handleNotFound); server.on("/open", closeCircuitViaWifi); server.begin(); } void loop() { //closeCircuitAndOpen(); //delay(5000); server.handleClient(); }