#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <DHT.h>
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define BOT_TOKEN "8137856737:AAHouY8U_2w7sOK4pG7k-D6K8kRInhi_7wA"
#define CHAT_ID "6750924550"
#define DHTPIN 5
#define DHTTYPE DHT11
#define PIR_PIN 19
#define LED_PIN 18
#define BUZZER_PIN 23
DHT dht(DHTPIN, DHTTYPE);
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
dht.begin();
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
client.setInsecure();
bot.sendMessage(CHAT_ID, "Sistem siap!", "");
}
void loop() {
static bool motionDetected = false;
int motion = digitalRead(PIR_PIN);
if (motion == HIGH && !motionDetected) {
motionDetected = true;
digitalWrite(LED_PIN, HIGH);
digitalWrite(BUZZER_PIN, HIGH);
bot.sendMessage(CHAT_ID, "Gerakan terdeteksi!", "");
delay(1000);
digitalWrite(BUZZER_PIN, LOW);
} else if (motion == LOW && motionDetected) {
motionDetected = false;
digitalWrite(LED_PIN, LOW);
}
float h = dht.readHumidity();
float t = dht.readTemperature();
if (!isnan(h) && !isnan(t)) {
String message = "Suhu: " + String(t) + "°C\nKelembaban: " + String(h) + "%";
bot.sendMessage(CHAT_ID, message, "");
}
delay(5000);
}