Cara Mengendalikan Relay dari Jarak Jauh via Telegram Chat
Daftar Isi
Di era Internet of Things (IoT), mengontrol perangkat elektronik dari jarak jauh kini semakin mudah. Salah satu solusi praktis dan gratis adalah menggunakan aplikasi Telegram untuk mengendalikan relay—komponen elektronik yang dapat menyalakan atau mematikan perangkat listrik seperti lampu, kipas, atau pompa air. Dalam artikel ini, kita akan belajar cara mengontrol relay melalui Telegram menggunakan ESP8266 atau ESP32.
Apa Itu Relay dan Mengapa Telegram?
Relay adalah saklar elektronik yang dikendalikan secara digital. Kita bisa mengontrolnya menggunakan mikrokontroler. Dengan menghubungkannya ke Telegram, Anda bisa mengontrol relay dari mana saja menggunakan perintah chat.
Keunggulan Telegram
- Gratis dan aman.
- Mudah dibuat bot (Telegram Bot).
- Bisa dikontrol dari HP atau PC.
- Tidak perlu membuat aplikasi khusus.
Alat dan Bahan
- ESP32 Dev Board (Beli Disini)
- Modul Relay 2 Channel (Beli Disini)
- Kabel Jumper (Beli Disini)
- Software Arduino IDE (Download Disini)
- Koneksi WiFi
- Akun Telegram
Langkah-langkah
1. Buat Bot Telegram
- Buka Telegram dan cari @BotFather.
- Kirim perintah /newbot, lalu ikuti petunjuknya.
- Simpan token API yang diberikan. Token ini penting!
2. Instal Library CTBot
Buka Arduino IDE:
- Pergi ke Tools > Manage Libraries.
- Cari dan install CTBot (oleh Stefano Novello).
3. Wiring (Koneksi)
Gunakan GPIO 4 dan GPIO 15. Berikut contoh koneksi:
Relay 1:
IN -> GPIO4
VCC -> 5V
GND -> GND
Relay 2:
IN -> GPIO15
VCC -> 5V
GND -> GND
4. Masukkan Kode Arduino
Ganti bagian berikut sesuai WiFi dan token Anda:
String ssid = "NAMA_WIFI";
String pass = "PASSWORD_WIFI";
String token = "TOKEN_BOT_TELEGRAM";
Berikut kode lengkapnya:
#include <CTBot.h>
CTBot myBot;
String ssid = "NAMA_WIFI";
String pass = "PASSWORD_WIFI";
String token = "TOKEN_BOT_TELEGRAM";
const int relay1 = 4;
const int relay2 = 15;
void setup() {
Serial.begin(115200);
Serial.println("Memulai Telegram Bot untuk ESP32...");
myBot.wifiConnect(ssid, pass);
myBot.setTelegramToken(token);
if (myBot.testConnection()) {
Serial.println("Koneksi ke Telegram Sukses");
} else {
Serial.println("Koneksi ke Telegram Gagal");
}
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
digitalWrite(relay1, HIGH); // OFF default
digitalWrite(relay2, HIGH);
}
void loop() {
TBMessage msg;
if (myBot.getNewMessage(msg)) {
String pesan = msg.text;
int64_t idTujuan = (msg.group.id < 0) ? msg.group.id : msg.sender.id;
if (pesan == "/relay1_on") {
digitalWrite(relay1, LOW);
myBot.sendMessage(idTujuan, "✅ Relay 1 AKTIF");
}
else if (pesan == "/relay1_off") {
digitalWrite(relay1, HIGH);
myBot.sendMessage(idTujuan, "❌ Relay 1 NONAKTIF");
}
else if (pesan == "/relay2_on") {
digitalWrite(relay2, LOW);
myBot.sendMessage(idTujuan, "✅ Relay 2 AKTIF");
}
else if (pesan == "/relay2_off") {
digitalWrite(relay2, HIGH);
myBot.sendMessage(idTujuan, "❌ Relay 2 NONAKTIF");
}
else if (pesan == "/status") {
String stat1 = (digitalRead(relay1) == LOW) ? "AKTIF" : "NONAKTIF";
String stat2 = (digitalRead(relay2) == LOW) ? "AKTIF" : "NONAKTIF";
myBot.sendMessage(idTujuan, "Status Relay:\nRelay 1: " + stat1 + "\nRelay 2: " + stat2);
}
else {
myBot.sendMessage(idTujuan, "Perintah tidak dikenal.\nGunakan:\n/relay1_on\n/relay1_off\n/relay2_on\n/relay2_off\n/status");
}
Serial.println("Pesan diterima: " + pesan);
}
delay(500);
}
Pengujian
- Buka Telegram.
- Kirim perintah /relay1_on, /relay1_off, dll ke bot Anda.
- Amati status relay dan log serial.
Dengan kode sederhana ini, Anda bisa mengontrol dua relay menggunakan Telegram tanpa server tambahan. Cocok untuk pemula yang ingin memulai proyek smart home. Anda bisa mengembangkan proyek ini dengan menambah:
- Sensor suhu atau kelembaban
- Sistem notifikasi status otomatis
- Otomasi berdasarkan waktu
Posting Komentar