#include <Wire.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
// Wi-Fi and Telegram Credentials
const char* ssid = "Wokwi-GUEST"; //Jika men
const char* password = "";
#define BOTtoken "7148350230:AAH8pSCsd02LG0VoC079B5SYlSS-lmkrrm8"
#define CHAT_ID "518947846"
#ifdef ESP8266
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
#endif
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
int ledPin = 2;
int inputPin = 4;
int pirState = LOW;
int value = 0;
void setup() {
Serial.begin(115200);
#ifdef ESP8266
configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP
client.setTrustAnchors(&cert); // Add root certificate for api.telegram.org
#endif
#ifdef ESP32
client.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Add root certificate for api.telegram.org
#endif
pinMode(ledPin, OUTPUT);
pinMode(inputPin, INPUT);
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
int a = 0;
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
a++;
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
delay(500);
bot.sendMessage(CHAT_ID, "Bot started up", "");
//delay(1000);
}
void loop() {
value = digitalRead(inputPin);
if (value == HIGH) {
digitalWrite(ledPin, HIGH);
if (pirState == LOW) {
Serial.println("Motion detected!");
bot.sendMessage(CHAT_ID, "Gerakan Terdeteksi", "");
digitalWrite(ledPin, HIGH);
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW);
if (pirState == HIGH) {
Serial.println("Motion ended!");
bot.sendMessage(CHAT_ID, "Aman", "");
pirState = LOW;
}
}
}