#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <ESP32Servo.h>
Servo myservo;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
const int trig = 5;
const int echo = 18;
long data;
int cm ;
int pos = 13;
String x ="Open";
String y ="Close";
void setup() {
Serial.begin(115200);
Serial.println("Pannawat");
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE,BLACK);
display.setCursor(30,10);
// display.print(x);
myservo.attach(13);
}
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);
delay(1000);
display.clearDisplay();
display.setTextColor(WHITE,BLACK);
display.setCursor(0,0);
// display.print(cm);
display.display();
// delay(1000)
if (cm < 100) { // ถ้าระยะเซ็นเซอร์น้อยกว่าหรือเท่ากับ 10 ฝาถังปิด
myservo.write(0);
display.clearDisplay();
display.setTextColor(WHITE,BLACK);
display.setCursor(30,28);
display.print("Open");
display.display();
}
if (cm > 100) { // ถ้าระยะเซ็นเซอร์มากกว่าหรือเท่ากับ 5 ฝาถังเปิด
myservo.write(90);
display.setTextColor(WHITE,BLACK);
display.clearDisplay();
display.setTextColor(WHITE,BLACK);
display.print("close");
display.display();
}
}