Motion Detection (Telegram)

Membuat Notifikasi Pendeteksi Gerakan via Telegram
Untuk memulai siapkan beberap komponen sebagai berikut :
Komponen
| Component | Description |
|---|---|
| ESP32 | Microcontroller |
| LED | Output Cahaya |
| Breadboard | Peletakan Component |
| Jumper Cable | Mengubungkan Komponen |
| Pir Sensor | Pendeteksi Gerakan |
Wiring
Lalu Hubungkan semua komponen tersebut dengan kabel jumper seperti table berikut ini :
| LED | ESP32 |
|---|---|
| + | 2 |
| - | GND |
| PIR | ESP32 |
|---|---|
| + | VCC |
| - | GND |
| Data | 4 |
Rangkaian
Rangkaian akan seperti berikuti ini

Tutorial
Berikut ini adalah tutorial untuk menjalankannya
Langkah Pertama
-4638025c243390784e04a272c4104698.png)
Pastikan sudah meng install dan menambahkan librarry pada : wokwi dan Arduino Ide
- UniversalTelegramBot -> by Benoit Blanchon
- ArduinoJson -> by Brian Lough
Langkah Kedua
-d0e721f4353e74c56cd375381d8b8cdf.png)
Tambahkan bot telegram yaitu @BotFather lalau, lalukan :
- start -> untuk mulai chat baru
- create new bot -> untuk membuat bot baru
- masukan nama bot yang unik -> pastika nama bot uniq dan tidak sama
- catat Token dan URL Bot dan masukan pada baris id di codingan
Langkah Ketiga
-0341604417a01452874f3714e23bdf09.png)
Tambahkan bot telegram yaitu @myidbot lalau, lalukan :
- start -> memulai chat
- getid -> mendapatkan ID chat telegram
- catat id chat yang tampil dan masukan pada baris id di codingan
Langkah Keempat
-1276ef6f1aa425b60474e415a1e6da93.png)
Klik link Url Bot yang di buat sebelumnya dari @BotFather lalau, lalukan :
- start
- lalu amati pesan yang masuk pada bot ketika program di jalankan
Langkah Kelima
-2e9fe5419e7faa4b231fd9e7de996524.png)
Masukan Token & ID Telegram pada baris kode di atas
Langkah Keenam
-a23f61e168578a621350f9fafda502ef.png)
Sesuaikan Pesan yang akan di kirimkan ke Telegram dengan mengedit baris code tersebut
Running
Jika semua step sudah di lakukan, selanjutnya running dan amati hasilnya

Running Before Detected Object
- Pastikan ssid / nama wifi & Password sesuai dengan pada router

Running After Detected Object
- Pastikan koneksi wifi berhasil sesuai dengan ssid yang di masukan pada codingan
- Pastikan ESP32 berhasil mendapatkan IP dari router
-25a83653c38f52b5c2111db635914a72.png)
Tampilan Notifikasi di Aplikasi Telegram
- Akan ada notifikasi Bot Started up jika ESP32 berhasil terhubung ke bot telegram
- Notifikasi Gerakan Terdeteksi jika sensor mendeteksi objek "akan ada sedikit delay antara deteksi sensor dengan bot Telegram"
Praktik Tambahan
-ce4f0767cdafa1d4bbb827484ddaaa9f.png)
- Tambahkan minimal 2 komponen berikut ini pada rangkaian sensor PIR
-aa361d400ab076a3651434cb4009d930.png)
- Lakukan Prakitkum untuk mengirimkan pesan ke telegram menggunakan sensor inframerah aktif
- Referensi codingan di sini atau di tutorial sebelumnya
Code untuk menjalankan
#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 "isikan token dari telegram @botfather"
#define CHAT_ID "isikan id dari @myidbot"
#ifdef ESP8266
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
#endif
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
int ledPin = 2;
int inputPin = 4;
int pirState = LOW;
int vallue = 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() {
vallue = digitalRead(inputPin);
if (vallue == 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!");
pirState = LOW;
}
}
}
Amati pada Serial Monitor menunjukan output bahwa koneksi ke wifi berhasil dan deteksi objek berjalan dan settingan token dan id telegram sudah sesuai
Pastikan Semua Pin dan Codingan sudah sesuai dan perkabelan tidak ada yg longgar
Referemsi
Artikel
- https://labrobotika.com/2024/10/01/panduan-pemula-menghubungkan-sensor-infrared-dengan-esp32/
- https://medium.com/@mtamusharaf/object-detection-using-ir-sensors-and-esp32-microcontroller-7fd0182b7a8d
- https://esp32io.com/tutorials/esp32-infrared-obstacle-avoidance-sensor
- https://randomnerdtutorials.com/projects-esp32/
- https://www.vvn.my.id/docs/tutorial-esp32/motion-detection
Video
- https://www.youtube.com/watch?v=
- https://www.youtube.com/watch?v=aU04LvOBMg4
- https://www.youtube.com/watch?v=p7IH6KTenZs
- https://www.youtube.com/watch?v=WFa16FdLtHI
- https://www.youtube.com/watch?v=ddo39Vjcjh8
- https://www.youtube.com/watch?v=g9sC3_Ah8VM
- https://www.youtube.com/watch?v=b7TVKByAmMI
- https://www.youtube.com/watch?v=70IXTeO4Cgs