81 lines
2.2 KiB
C++
81 lines
2.2 KiB
C++
#include <ESP32Servo.h>
|
|
#include <WiFi.h>
|
|
#include <WebServer.h>
|
|
|
|
Servo myservo; // create servo object to control a servo
|
|
int servoPin = 18;
|
|
|
|
const char* ssid = "dlink";
|
|
const char* password = "";
|
|
|
|
WebServer server(80);
|
|
|
|
void closeCircuitAndOpen(int closeTime=400)
|
|
{
|
|
int pos = 0;
|
|
for(pos = 0; 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 >= 0; 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(0);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();
|
|
}
|
|
|