#ifdef ESP32
#include <WiFi.h>
#else
#include <ESP8266WiFi.h>
#endif
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include <ESP32Servo.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
#define BOTtoken "6988437484:AAHTTYUyKWUY9cgHk7uWEEwR6_OermeAzWA"
#define CHAT_ID "1603256487"
#ifdef ESP8266
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
#endif
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
#define echo 26
#define trig 27
#define pirPin 14
int val = 0;
int servoPin = 13;
float duration, distance;
Servo servo;
TaskHandle_t Task1;
void loop2(void * parameter) {
for(;;) {
int pos=0;
val = digitalRead(pirPin);
if (val == HIGH) {
servo.write(90);
}
else {
servo.write(0);
}
digitalWrite(servoPin, val);
}
}
void setup() {
Serial.begin(115200);
#ifdef ESP8266
configTime(0, 0, "pool.ntp.org")
client.setTrustAnchors(&cert);
#endif
#ifdef ESP32
client.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Add root certificate for api.telegram.org
#endif
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(pirPin, INPUT);
servo.attach(servoPin);
xTaskCreatePinnedToCore(
loop2,
"terdeteksi",
1000,
NULL,
1,
&Task1,
0
);
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
bot.sendMessage(CHAT_ID, "Bot started up", "");
}
void loop() {
for(;;) {
digitalWrite(trig, HIGH);
delayMicroseconds(100);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = 0.017*duration;
Serial.print("distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 5) {
bot.sendMessage(CHAT_ID, "Sampah Penuh!!", "");
Serial.println("Sampah penuh");
}
}
}