#define BLYNK_TEMPLATE_ID "TMPL6-B5XADpx"
#define BLYNK_TEMPLATE_NAME "tes dlu"
#define BLYNK_AUTH_TOKEN "8Syz_lkSdoicp33E98RGZYDrU-rfCvfR"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <ArduinoJson.h>
#include <BlynkSimpleEsp32.h>
#include <CTBot.h>
#define Echo 15
#define Trig 2
#define Merah 14
#define Kuning 12
#define Hijau 13
#define buzzer 26
String token = "8Syz_lkSdoicp33E98RGZYDrU-rfCvfR";
const int bot_id = 1787262086;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
CTBot mybot;
BlynkTimer timer;
float jarak = 0;
int nada;
void ukur_jarak()
{
digitalWrite(Trig, LOW);
delay(10);
digitalWrite(Trig, HIGH);
delay(10);
digitalWrite(Trig, LOW);
int duration = pulseIn(Echo, HIGH);
jarak = duration * 0.034 / 2 + 1;
Serial.print("jarak: ");
Serial.print(jarak);
Serial.print("");
}
void output_jarak()
{
if (jarak > 400)
{
Serial.println(" Aman");
digitalWrite(Hijau, HIGH);
}
else if (jarak > 200 && jarak < 400)
{
Serial.println(" Hama mendekat!");
digitalWrite(Kuning, HIGH);
}
else if (jarak < 200)
{
Serial.println(" Ada hama!");
digitalWrite(Merah, HIGH);
}
}
void pesan()
{
TBMessage msg;
if (jarak < 200)
{
tone(buzzer, nada);
mybot.sendMessage(bot_id, "Ada hama kurang dari 2 meter!");
if (mybot.getNewMessage(msg))
{
Serial.println("Pesan masuk: " + msg.text);
String pesan = msg.text;
if (pesan == "On")
{
mybot.sendMessage(bot_id, "Alarm dinyalakan");
}
if (pesan == "Off")
{
noTone(buzzer);
mybot.sendMessage(bot_id, "Alarm dimatikan");
}
}
}
else
{
noTone(buzzer);
}
}
BLYNK_WRITE(V4)
{
nada = param.asInt();
}
void kirim_blynk()
{
Blynk.virtualWrite(V0, jarak);
if (jarak > 400)
{
Blynk.virtualWrite(V1, 1);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 0);
}
else if (jarak >= 200 && jarak < 400)
{
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 1);
Blynk.virtualWrite(V3, 0);
}
else if (jarak < 200)
{
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 0);
Blynk.virtualWrite(V3, 1);
}
}
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(Trig, OUTPUT);
pinMode(Echo, OUTPUT);
pinMode(Merah, OUTPUT);
pinMode(Hijau, OUTPUT);
pinMode(buzzer, OUTPUT);
timer.setInterval(2000L, kirim_blynk);
Serial.println("Memulai Telegram Bot");
mybot.wifiConnect(ssid, pass);
mybot.setTelegramToken(token);
if(mybot.testConnection())
{
Serial.println("Koneksi Berhasil");
}
else
{
Serial.println("Koneksi Gagal");
}
}
void loop()
{
digitalWrite(Merah, LOW);
digitalWrite(Kuning, LOW);
digitalWrite(Hijau, LOW);
ukur_jarak();
output_jarak();
pesan();
Blynk.run();
timer.run();
delay(1000);
}