#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include <ESP32Servo.h>
// Wi-Fi dan Telegram
const char* ssid = "Wokwi-GUEST";
const char* password = "";
#define BOTtoken "7148350230:AAH8pSCsd02LG0VoC079B5SYlSS-lmkrrm8"
#define CHAT_ID "518947846"
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
// Pin Konfigurasi
const int irProxPin = 4; // IR Proximity Sensor (digital)
const int buzzerPin = 5; // Buzzer
const int servoPin = 2; // Servo Motor
const int ledPin = 13; // LED indikator
int irState = LOW;
int irValue = 0;
Servo myServo;
void setup() {
Serial.begin(115200);
client.setInsecure(); // Gunakan jika tidak memakai sertifikat Telegram
pinMode(irProxPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
myServo.attach(servoPin);
myServo.write(0); // posisi awal servo
// Koneksi WiFi
Serial.print("Connecting to WiFi: ");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
bot.sendMessage(CHAT_ID, "Bot aktif dengan sensor IR Proximity", "");
}
void loop() {
irValue = digitalRead(irProxPin);
if (irValue == HIGH) {
digitalWrite(buzzerPin, HIGH);
digitalWrite(ledPin, HIGH);
myServo.write(180); // Servo buka penuh
if (irState == LOW) {
Serial.println("Objek terdeteksi oleh sensor IR Proximity!");
bot.sendMessage(CHAT_ID, "Objek terdeteksi oleh sensor IR Proximity!", "");
irState = HIGH;
}
} else {
digitalWrite(buzzerPin, LOW);
digitalWrite(ledPin, LOW);
myServo.write(0); // Servo kembali
if (irState == HIGH) {
Serial.println("Tidak ada objek.");
irState = LOW;
}
}
delay(100);
}