Pemadaman listrik mendadak di area residensial maupun fasilitas bisnis bukan sekadar masalah lampu padam. Bagi pengelola cold storage, peternakan modern, inkubator penetasan telur, server kantor, hingga tambak perikanan, matinya suplai daya listrik tanpa penanganan cepat berarti kerugian operasional yang masif.
Membangun alarm listrik otomatis yang terintegrasi langsung dengan platform pesan instan seperti Telegram atau WhatsApp memberikan visibilitas penuh terhadap status daya listrik di lokasi Anda dari mana saja secara real-time.
Artikel ini mengupas tuntas arsitektur sistem, komponen perangkat keras, skema proteksi isolasi tegangan, konfigurasi bot, hingga mitigasi saat router internet ikut mati ketika pemadaman terjadi.
Mengapa Memilih Telegram dan WhatsApp untuk Monitoring Listrik?
Sebelum era Internet of Things (IoT), alarm listrik mengandalkan sirine konvensional (buzzer) atau modul SMS dialer GSM. Sirine tidak berguna jika Anda berada di luar radius pendengaran, sedangkan SMS berbasis pulsa sering kali tertunda akibat antrean jaringan operator seluler dan memakan biaya berkala.
Platform instant messaging menawarkan sederet keunggulan arsitektural:
-
Latensi Sangat Rendah: Notifikasi masuk ke ponsel dalam hitungan 1–3 detik setelah tegangan drop.
-
Kaya Konteks Data: Tidak cuma pesan “Mati Lampu”, sistem dapat mengirimkan log waktu pasti kejadian, voltase terakhir sebelum padam, estimasi kapasitas baterai cadangan, hingga laporan saat daya menyala kembali (power restored).
-
Multi-Recipient & Group Alert: Notifikasi dapat disiarkan langsung ke grup teknisi atau keluarga tanpa biaya per pengiriman.
-
Interaksi Dua Arah (Two-Way Communication): Pengguna dapat mengetik perintah
/statusatau/cek_voltaseuntuk meminta mikrokontroler melaporkan kondisi jaringan listrik terkini.
Perbandingan: Bot Telegram vs WhatsApp Gateway
Sebelum merakit, tentukan jalur pengiriman pesan yang paling sesuai dengan kebutuhan infrastruktur Anda:
| Parameter | Bot Telegram (Official Bot API) | WhatsApp Gateway (Fonnte / Wablas / Twilio) |
| Biaya Layanan | 100% Gratis | Berbayar bulanan (Gateway) / Per-pesan (Cloud API) |
| Tingkat Keandalan | Sangat Tinggi (Server resmi Telegram) | Bergantung pada kestabilan server gateway perantara |
| Risiko Pemblokiran | Nol (Dirancang resmi untuk bot otomatisasi) | Rentan ban nomor jika menggunakan gateway tidak resmi |
| Kemudahan Integrasi | Cukup bermodal HTTP POST / Library C++ | Perlu webhook dan autentikasi token gateway |
| Aksesibilitas User | Pengguna harus menginstal aplikasi Telegram | Digunakan hampir semua orang di Indonesia |
Rekomendasi: Untuk sistem kritis mandiri, gunakan Telegram sebagai jalur utama karena stabilitasnya tak tertandingi. Gunakan WhatsApp sebagai jalur sekunder jika alarm ditujukan untuk orang awam atau staf lapangan yang jarang membuka Telegram.
Arsitektur Sistem dan Analisis Kebutuhan Komponen
Tantangan terbesar sistem alarm pemadaman listrik adalah: Bagaimana mikrokontroler bisa mengirim pesan jika sumber listrik utamanya padam?
Sistem ini membutuhkan modul baterai cadangan (Uninterruptible Power Supply / UPS Mini) untuk mikrokontroler, serta sensor isolasi tegangan agar arus bolak-balik (AC 220V) tidak merusak sirkuit digital bertegangan rendah (DC 3.3V – 5V).
[Sumber PLN 220V AC] ──┬──> [Optocoupler AC / Sensor ZMPT101B] ──> [GPIO ESP8266]
│ │
└──> [Charger 5V] ──> [BMS TP4056 + 18650] ──> [VCC ESP8266]
│
[Wi-Fi / Router]
│
[Telegram / WhatsApp Cloud Server]
│
[Smartphone User]
Daftar Komponen Hardware yang Diperlukan
-
Mikrokontroler:
-
NodeMCU ESP8266 atau ESP32 Dev Module (sudah dilengkapi konektivitas Wi-Fi terintegrasi).
-
-
Sensor Deteksi Tegangan PLN:
-
Modul Optocoupler AC Isolation (misal: PC817 base opto AC detector): Menghasilkan sinyal digital LOW/HIGH saat ada atau tidak ada arus 220V.
-
Alternatif: Adaptor 5V USB bekas yang dimodifikasi sebagai detektor logika pin.
-
-
Modul Pengelola Daya Cadangan (Power Backup System):
-
1x Baterai Li-Ion 18650 (kapasitas 2500 – 3000 mAh).
-
Modul TP4056 with Battery Protection (mengatur pengisian dan menjaga baterai dari over-discharge).
-
Modul Boost Converter Step-Up DC-DC (MT3608) untuk menaikkan tegangan 3.7V baterai ke 5V stabil bagi pin Vin ESP8266.
-
-
Komponen Pendukung:
-
Resistor 10k Ohm (Pull-up resistor jika sensor optocoupler bertipe open-collector).
-
Kapasitor elektrolit 100uF (peredam spike/lonjakan sesaat).
-
Enclosure box tahan panas (ABS box) untuk memastikan kerapian dan keamanan instalasi listrik tegangan tinggi.
-
Skema Perakitan dan Keamanan Instalasi Listrik
⚠️ Peringatan Keselamatan: Pemasangan modul yang berhubungan langsung dengan tegangan 220V PLN berisiko sengatan listrik fatal. Pastikan MCB dalam kondisi nonaktif saat Anda menghubungkan kabel fasa dan netral ke modul detektor.
Langkah Rangkaian:
-
Input Sisi AC 220V:
Sambungkan kabel Fasa (L) dan Netral (N) dari stopkontak ke terminal input modul optocoupler AC. Modul ini secara fisik memisahkan rangkaian tegangan tinggi menggunakan sinar infra-merah di dalam chip tertutup, memastikan tidak ada voltase 220V yang bocor ke mikrokontroler.
-
Output Sisi DC (Sinyal Deteksi):
-
Pin
VCCoptocoupler hubungkan ke pin3V3ESP8266. -
Pin
GNDoptocoupler hubungkan keGNDESP8266. -
Pin
OUToptocoupler hubungkan ke pin digitalD5(GPIO 14) pada ESP8266.
-
-
Rangkaian Cadangan Baterai (Uninterruptible Power Supply):
-
Masukkan input charger 5V (dari charger ponsel biasa) ke port Micro-USB TP4056.
-
Hubungkan kutub positif dan negatif baterai 18650 ke pad
B+danB-pada TP4056. -
Hubungkan output
OUT+danOUT-TP4056 ke input modul Step-Up MT3608. -
Kalibrasi trimpot pada MT3608 menggunakan multimeter hingga output mengeluarkan tegangan tepat 5.0 Volt.
-
Hubungkan output MT3608 ke pin
VindanGNDpada NodeMCU ESP8266.
-
Konfigurasi Bot Telegram (BotFather & Chat ID)
Sebelum memasukkan program ke mikrokontroler, siapkan parameter otentikasi Telegram:
-
Buka aplikasi Telegram, cari akun resmi @BotFather.
-
Kirim perintah
/newbot. -
Berikan nama bot Anda (contoh:
Alarm Listrik Rumah). -
Tentukan username unik yang diakhiri kata
bot(contoh:listrik_alert_monitoring_bot). -
BotFather akan memberikan HTTP API Bot Token (simpan token ini).
-
Untuk mengetahui ID akun Anda agar bot tahu ke mana pesan harus dikirim, cari bot bernama @userinfobot di Telegram, lalu ketik
/start. Catat deretan angka pada kolomId.
Source Code Arduino IDE (ESP8266 & Telegram)
Gunakan library UniversalTelegramBot oleh Brian Lough dan ArduinoJson (versi 6.x) yang dapat diunduh melalui Library Manager di Arduino IDE.
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
// Konfigurasi Kredensial WiFi
const char* ssid = "NAMA_WIFI_RUMAH";
const char* password = "PASSWORD_WIFI";
// Konfigurasi Bot Telegram
#define BOT_TOKEN "MASUKKAN_HTTP_API_TOKEN_ANDA"
#define CHAT_ID "MASUKKAN_CHAT_ID_TELEGRAM_ANDA"
// Pin Sensor
const int SENSOR_PIN = 14; // D5 pada NodeMCU
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
bool statusListrikTerakhir = true;
unsigned long waktuPengecekanTerakhir = 0;
const unsigned long jedaDebounce = 2000; // Debounce 2 detik untuk menghindari fluktuasi sesaat
void setup() {
Serial.begin(115200);
pinMode(SENSOR_PIN, INPUT_PULLUP);
// Sambungkan ke WiFi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Menghubungkan ke WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi Terhubung!");
// Sinkronisasi Sertifikat SSL Telegram
client.setInsecure();
// Kirim notifikasi awal saat perangkat menyala
bot.sendMessage(CHAT_ID, "🟢 SISTEM AKTIF: Alarm Listrik Berhasil Booting & Terhubung ke Server.", "");
// Baca status awal
statusListrikTerakhir = (digitalRead(SENSOR_PIN) == LOW);
}
void loop() {
// Pembacaan sensor (Asumsi: LOW = Ada Listrik, HIGH = Listrik Padam sesuai konfigurasi opto)
bool statusSaatIni = (digitalRead(SENSOR_PIN) == LOW);
if (statusSaatIni != statusListrikTerakhir) {
delay(jedaDebounce); // Filter noise tegangan transient
statusSaatIni = (digitalRead(SENSOR_PIN) == LOW);
if (statusSaatIni != statusListrikTerakhir) {
statusListrikTerakhir = statusSaatIni;
if (!statusSaatIni) {
String pesanPadam = "🚨 PERINGATAN: LISTRIK PLN PADAM!\n";
pesanPadam += "Lokasi: Panel Utama\n";
pesanPadam += "Status: Menggunakan Cadangan Baterai.\n";
pesanPadam += "Waktu Deteksi: Segera periksa peralatan penting!";
bot.sendMessage(CHAT_ID, pesanPadam, "Markdown");
Serial.println("Pesan Listrik Padam Terkirim.");
} else {
String pesanNormal = "✅ INFO: LISTRIK KEMBALI NORMAL!\n";
pesanNormal += "Daya PLN telah tersambung kembali.\n";
pesanNormal += "Pengisian ulang baterai cadangan dimulai.";
bot.sendMessage(CHAT_ID, pesanNormal, "Markdown");
Serial.println("Pesan Listrik Menyala Terkirim.");
}
}
}
}
Integrasi Notifikasi ke WhatsApp
Jika Anda ingin notifikasi masuk ke WhatsApp, alur logika program tetap sama, tetapi request HTTP dialihkan ke endpoint gateway WhatsApp (seperti Fonnte, Wablas, atau Twilio REST API).
Contoh pemanggilan endpoint gateway WhatsApp via ESP8266 menggunakan ESP8266HTTPClient:
#include <ESP8266HTTPClient.h>
void kirimWhatsApp(String nomorTujuan, String isiPesan) {
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
HTTPClient http;
// Contoh menggunakan REST API Gateway Fonnte
http.begin(client, "http://api.fonnte.com/send");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
http.addHeader("Authorization", "TOKEN_API_GATEWAY_ANDA");
String payload = "target=" + nomorTujuan + "&message=" + isiPesan;
int httpResponseCode = http.POST(payload);
if (httpResponseCode > 0) {
Serial.printf("WhatsApp Berhasil Dikirim, Response: %d\n", httpResponseCode);
} else {
Serial.printf("Gagal Kirim WhatsApp, Error: %s\n", http.errorToString(httpResponseCode).c_str());
}
http.end();
}
}
Solusi Masalah Kritis: Mengatasi Router WiFi yang Ikut Mati
Pertanyaan paling fundamental pada rancang bangun alarm listrik adalah: Bagaimana mikrokontroler mengirim pesan via internet jika router Wi-Fi di rumah ikut mati akibat pemadaman listrik?
Ada dua pendekatan teknis untuk mengatasi masalah ini:
Metode 1: Pasang Mini DC-UPS Khusus pada Router Wi-Fi
Router modem ISP (IndiHome, FirstMedia, Biznet, MyRepublic) rata-rata menggunakan input adaptor DC 12V.
-
Tambahkan unit Mini DC-UPS 12V (kapasitas 8.800 mAh – 10.000 mAh) di antara adaptor dan router.
-
Saat listrik PLN padam, Mini DC-UPS secara instan menyuplai daya tanpa jeda reboot (zero-transfer time). Router tetap menyala selama 4–6 jam, memungkinkan sinyal notifikasi dari ESP8266 terkirim sempurna.
Metode 2: Menggunakan Modul Seluler GSM (SIM800L / A9G)
Jika lokasi pemantauan tidak memiliki jaringan internet kabel atau berada di pelosok (misal tambak udang atau kandang peternakan):
-
Ganti modul Wi-Fi atau pasangkan modul seluler SIM800L ke ESP32.
-
Kirim data notifikasi menggunakan koneksi GPRS HTTP atau SMS langsung menggunakan SIM card prabayar. Metode ini independen dari jaringan router lokal.
Fitur Lanjutan: Penambahan Sensor Voltase & Arus (PZEM-004T)
Sistem alarm dasar hanya mendeteksi kondisi biner (Nyala/Mati). Anda dapat meningkatkan kapabilitas alat menjadi sistem monitoring kualitas daya dengan menyematkan modul PZEM-004T v3.0. Modul ini membaca parameter listrik secara presisi melalui trafo arus (Current Transformer):
-
Deteksi Undervoltage / Overvoltage: Kirim notifikasi jika voltase PLN drop di bawah 180V atau melonjak di atas 240V yang berpotensi merusak motor kompresor AC dan pendingin.
-
Deteksi Overload Arus: Kirim peringatan jika beban watt mendekati batas trip MCB meteran agar terhindar dari pemadaman akibat kelebihan beban.
-
Perhitungan Biaya: Akumulasi penggunaan daya (kWh) yang dapat diminta laporannya setiap akhir pekan melalui perintah bot.
Tips Perawatan dan Optimasi Sistem (Reliability Engineering)
Agar sistem alarm listrik dapat beroperasi stabil 24 jam sehari selama berbulan-bulan tanpa gangguan (hang):
-
Aktifkan Hardware Watchdog Timer (WDT): Pastikan fungsi WDT aktif pada sketch mikrokontroler agar sistem melakukan reboot otomatis apabila terjadi memory leak atau infinite loop saat mencoba menghubungkan ke WiFi yang drop.
-
Kapasitor decoupling: Tambahkan kapasitor elektrolit 470uF – 1000uF paralel pada jalur power 5V NodeMCU guna menyerap ripple tegangan saat terjadi transisi dari sumber adaptor ke baterai cadangan.
-
Cek Kapasitas Baterai 18650 secara Periodik: Baterai lithium yang terus-menerus diisi daya (float charge) dapat mengalami degradasi seiring berjalannya tahun. Lakukan uji coba pemutusan daya buatan secara berkala sebulan sekali untuk memastikan baterai cadangan masih sanggup menopang sistem.
Kesimpulan
Membangun alarm listrik otomatis berbasis Telegram dan WhatsApp adalah proyek bernilai tinggi dengan rasio efisiensi biaya yang luar biasa. Cukup dengan modal mikrokontroler ESP8266, modul optocoupler pengaman, dan sistem cadangan baterai terintegrasi, aset berharga Anda terlindungi dari risiko kerusakan akibat hilangnya suplai daya tanpa pengawasan.
Konsultasi & Implementasi Monitoring IoT
Apakah Anda membutuhkan implementasi sistem monitoring listrik skala industri, integrasi SCADA, multi-panel pabrik, atau otomatisasi genset (Automatic Transfer Switch – ATS) dengan dashboard terpusat?