#include <Servo.h>
# include <ESP8266WiFi.h>
# include <ESP8266WebServer.h>
//route setting
IPAddress ip(192, 168, 40, 56);
IPAddress gateway(192, 168, 40, 1);
IPAddress subnet(255, 255, 255, 0);
//ESP8266 pin number
const int servo_pin = 2;
const int door_pin = 12;
//Servo setting
Servo servo;
int door_sensor = LOW;
int door_sensor_last = LOW;
ESP8266WebServer server(80);
void door_open() {
servo.write(170);
delay(1000);
servo.write(90);
}
void door_close() {
servo.write(10);
delay(1000);
servo.write(90);
}
void handle_open() {
door_open();
server.send(200, "text/html", "opened");
}
void handle_close() {
door_close();
server.send(200, "text/html", "closed");
}
void setup() {
Serial.begin(115200);
delay(200);
WiFi.config(ip, gateway, subnet);
WiFi.begin("JCOM_BLANK", "395385192851");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.on("/open", handle_open);
server.on("/close", handle_close);
server.begin();
servo.attach(servo_pin);
pinMode(door_pin, INPUT_PULLUP);
door_close();
}
void loop() {
server.handleClient();
door_sensor = digitalRead(door_pin);
if (door_sensor == LOW && door_sensor_last == HIGH) {
delay(1000);
door_close();
}
door_sensor_last = door_sensor;
}