#define BLYNK_TEMPLATE_ID "TMPL6oVwCJN4q"
#define BLYNK_TEMPLATE_NAME "YUSUF IOT HAMA"
#define BLYNK_AUTH_TOKEN "fu6mioROwG2TMiBr5Qf2CKZo2yEaDqdL"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Ultrasonic.h>
#include <HTTPClient.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
const char* TELEGRAM_BOT_TOKEN = "7065921505:AAFqwwQgmna4T4PG1jxaFiKLnFSRt6PC-5E";
const char* TELEGRAM_CHAT_ID = "6713094186";
Ultrasonic ultrasonic(25, 26);
int BUZZER_PIN = 19;
int LED_PIN = 16;
int switchState = 0;
BLYNK_WRITE(V1) {
switchState = param.asInt();
}
void sendTelegramNotification(const String& message) {
HTTPClient http;
String endpoint = "https://api.telegram.org/bot" + String(TELEGRAM_BOT_TOKEN) + "/sendMessage";
String payload = "chat_id=" + String(TELEGRAM_CHAT_ID) + "&text=" + message;
http.begin(endpoint);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.POST(payload);
if (httpCode > 0) {
Serial.println("Notifikasi dikirim.");
} else {
Serial.println("Gagal mengirim notifikasi: " + String(httpCode));
}
http.end();
}
void sendSensor() {
double distance = ultrasonic.read();
Blynk.virtualWrite(V0, distance);
if (distance <= 200) {
if (switchState == 1) {
tone(BUZZER_PIN, 1000);
digitalWrite(LED_PIN, HIGH);
Blynk.virtualWrite(V2, 1);
sendTelegramNotification("YUSUF ADA HAMA DARI JARAK 2 METER");
Serial.println("Ada Hama Sufff!");
} else {
noTone(BUZZER_PIN);
Blynk.virtualWrite(V2, 0);
digitalWrite(LED_PIN, LOW);
Serial.println("MATIKAN NOTIFIKASI");
}
} else {
noTone(BUZZER_PIN);
digitalWrite(LED_PIN, LOW);
Blynk.virtualWrite(V2, 0);
Serial.println("TIDAK ADA HAMA");
}
}
void setup() {
Serial.begin(115200);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
ledcSetup(0, 1000, 8);
ledcAttachPin(BUZZER_PIN, 0);
ledcWrite(0, 0);
digitalWrite(LED_PIN, LOW);
Blynk.begin(auth,ssid,pass);
}
void loop() {
sendSensor();
Blynk.run();
}