#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#define TELEGRAM_BOT_TOKEN "6715651936:AAEQbbn3CR9_7teKIJjqeDKy3y7a1CVVJYw"
#define CHAT_ID "6079673686"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
int ledPin = 12;
int buzzerPin = 13;
int pirPin = 15;
// PIR Setup
int pirState = 0;
int savedPirState = 0;
int onPirMessage = 1;
int offPirMessage = 0;
const char* onPrintMsg = "Terdeteksi Ada Makhluk Hidup!";
const char* offPrintMsg = "Tidak Terdeteksi Ada Makhluk Hidup!";
// Buzzer Setup
int freq = 2000;
int channel = 0;
int resolution = 8;
WiFiClientSecure client;
UniversalTelegramBot bot(TELEGRAM_BOT_TOKEN, client);
void bot.sendMessage(const char* message) {
bot.sendMessage(CHAT_ID, message, "");
}
void setup() {
Serial.begin(115200);
// Setup WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.print("Connected to ");
Serial.println(WIFI_SSID);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// pin LED
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// pin PIR Sensor
pinMode(pirPin, INPUT);
digitalWrite(pirPin, LOW);
// pin Buzzer
ledcSetup(channel, freq, resolution);
ledcAttachPin(buzzerPin, channel);
}
void loop() {
pirState = digitalRead(pirPin);
if (pirState == 1) {
digitalWrite(ledPin, HIGH);
ledcWriteTone(channel, 2000);
savedPirState = 0;
if (savedPirState == 0) {
delay(1000);
Serial.println(onPrintMsg);
// Send message to Telegram
bot.sendMessage(onPrintMsg);
savedPirState = 1;
}
} else {
delay(1000);
digitalWrite(ledPin, LOW);
ledcWriteTone(channel, 0);
Serial.println(offPrintMsg);
// Send message to Telegram
bot.sendMessage(offPrintMsg);
}
}