#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include <ESP32Servo.h>
// Wi-Fi dan Telegram
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define BOTtoken "8154788969:AAFfCFZy9nyJPeyZueiEANCmIhZIOr-VLHY"
#define CHAT_ID "5805595616"
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
// Pin Konfigurasi
const int irProxPin = 4; // IR Proximity Sensor
const int buzzerPin = 5; // Buzzer
const int servoPin = 2; // Servo Motor
const int ledPin = 13; // LED indikator
int irState = LOW; // Menyimpan status sebelumnya
int irValue = 0;
Servo myServo;
void setup() {
Serial.begin(115200);
client.setInsecure(); // Abaikan sertifikat Telegram (untuk testing)
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, LOW); // ⬅️ BUZZER AKTIF
digitalWrite(ledPin, HIGH);
myServo.write(180);
if (irState == LOW) {
Serial.println("IR Tidak Mendeteksi!");
bot.sendMessage(CHAT_ID, "Aman...!", "");
irState = HIGH;
}
} else {
digitalWrite(buzzerPin, HIGH); // ⬅️ BUZZER MATI
digitalWrite(ledPin, LOW);
myServo.write(0);
if (irState == HIGH) {
Serial.println("IR Deteksi!.");
bot.sendMessage(CHAT_ID, "Hati-Hati-PINTU TERBUKA!", "");
irState = LOW;
}
}
delay(100);
}