#define BLYNK_PRINT Serial
/* Fill in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID "TMPL6edd9TpRP"
#define BLYNK_TEMPLATE_NAME "HTW COBA"
#define BLYNK_AUTH_TOKEN "xuL07hAvMvnfKZ-36jJreEua469T-pxf"
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <BlynkSimpleEsp32.h>
#include <UniversalTelegramBot.h>
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
const int photoSwitch = 4;
int milidetik, detik, menit, jam;
int adaOrang = 0;
bool mulaiHitung = false;
long int timerMulai = 0;
bool enableKirim = false;
// Telegram Bot Token
#define BOTtoken "6768524261:AAGR0I4XGhQs7wpWNB_xbjwrtBSBjGx4UuI"
// Chat ID or Username to send messages
String chatId = "1102957103";
// Inisialisasi objek Bot
WiFiClientSecure client; // Use WiFiClientSecure for secure connections
UniversalTelegramBot bot(BOTtoken, client);
void setup()
{
pinMode(photoSwitch, INPUT_PULLUP);
// Debug console
Serial.begin(9600);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
client.setCACert(TELEGRAM_CERTIFICATE_ROOT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
void loop()
{
if (digitalRead(photoSwitch) == LOW && mulaiHitung == false)
{
adaOrang += 1;
mulaiHitung = true;
timerMulai = millis();
}
else if (digitalRead(photoSwitch) == HIGH && mulaiHitung == true)
{
sendToTelegram(adaOrang, detik, menit, jam);
// adaOrang = 0;
mulaiHitung = false;
}
if (mulaiHitung == true)
{
milidetik = millis() - timerMulai;
if (milidetik > 1000)
{
milidetik = 0;
detik += 1;
if (detik > 60)
{
detik = 0;
menit += 1;
if (menit > 60)
{
jam += 1;
menit = 0;
}
}
}
}
else
{
milidetik = 0;
detik = 0;
menit = 0;
jam = 0;
}
String message = "Deteksi Orang: " + String(adaOrang) +
" Waktu: " + String(jam) + " jam " +
String(menit) + " menit " + String(detik) + " detik";
Serial.println(message);
Blynk.virtualWrite(V0, adaOrang);
Blynk.virtualWrite(V1, detik);
Blynk.virtualWrite(V2, menit);
Blynk.virtualWrite(V3, jam);
Blynk.run();
}
void sendToTelegram(int adaOrang, int detik, int menit, int jam)
{
Serial.println("Kirim ke Telegram: ");
String message = "Deteksi Orang: " + String(adaOrang) +
"\nWaktu: " + String(jam) + " jam " +
String(menit) + " menit " + String(detik) + " detik";
Serial.println(message);
bot.sendMessage(chatId, message, "");
// bot.sendMessage(chatId, "Test sKirim Pesan" , "");
// Kirim pesan ke Telegram
// bot.sendSimpleMessage(chatId, message, "Markdown"); // Assuming you want to use Markdown parse mode
// bot.sendSimpleMessage(chatId, message, "Markdown"); // Assuming you want to use Markdown parse mode
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
sw1:1
sw1:2
sw1:3