#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <ESP32Servo.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
Servo myservo;
const int trig=5;
const int echo=18;
long data;
int cm;
void setup() {
Serial.begin(115200);
myservo.attach(13);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
display.clearDisplay();
display.setTextColor(WHITE,BLACK);
display.setCursor(0, 8);
// display.print("Kittiphat Suwannasri");
display.display();
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
data = pulseIn(echo, HIGH);
cm = data*0.035/2;
Serial.println(cm);
display.setCursor(10, 16);
display.clearDisplay();
display.display();
if (cm < 100) {
myservo.write(0);
display.setTextColor(WHITE,BLACK);
display.setCursor(10, 16);
display.print("close");
display.display();
}
if(cm > 100) {
myservo.write(90);
display.setTextColor(WHITE,BLACK);
display.setCursor(10, 16);
display.print("open");
display.display();
}
}