Panduan DIY Membuat Smart Home Energy Monitor Berbasis ESP32 dan Sensor Arus SCT-013

Pernahkah Anda merasa terkejut saat menerima lembar tagihan biaya listrik bulanan PLN yang tiba-tiba melonjak tinggi, padahal Anda merasa tidak menambah peralatan elektronik baru di rumah? Masalah klasik ini sering kali terjadi karena kita kehilangan kendali pengawasan terhadap konsumsi energi harian peralatan rumah tangga kita. Banyak perangkat elektronik (seperti dispenser air panas, pompa air otomatis, atau AC tua yang bocor freon) menarik daya listrik yang sangat besar di latar belakang tanpa kita sadari (phantom load).

Untuk mengambil kendali pengawasan energi ini, Anda dapat merakit sendiri sebuah sistem DIY Smart Home Energy Monitor (HEM) atau alat pengawas energi pintar mandiri menggunakan mikrokontroler murah ESP32 dan sensor arus non-invasif SCT-013. Proyek Internet of Things (IoT) ini tidak hanya mengukur penggunaan listrik rumah Anda secara instan (real-time), melainkan juga dapat dihubungkan ke dasbor Home Assistant untuk memberikan visualisasi grafik konsumsi energi harian serta mengirimkan notifikasi peringatan jika pemakaian daya listrik harian telah melampaui batas anggaran bulanan yang ditentukan.

Bagaimana Sensor Arus Non-Invasif SCT-013 Bekerja?

Salah satu keunggulan terbesar dari proyek ini adalah faktor keselamatan instalasinya. Kita menggunakan sensor arus SCT-013-000 bertipe klem jepit (Split-Core Current Transformer).

Sensor ini bekerja berdasarkan prinsip induksi elektromagnetik hukum Faraday. Anda tidak perlu memotong atau mengupas kabel listrik utama AC yang beraliran tegangan tinggi $220\text{V}$ yang sangat berbahaya. Anda cukup menjepitkan klem sensor SCT-013 ini pada satu utas kabel fase tunggal (Live/Phase wire) utama yang keluar dari MCB meteran listrik rumah Anda.

                  ┌──► Kabel Netral (N) ────────────── (Jangan Dijepit!)
[ Kabel Utama AC ] ┤
                  └──► Kabel Fase (L) ───► [ Jepit dengan Sensor SCT-013 ] ──► [ Rangkaian ESP32 ]

Setiap kali arus listrik mengalir melewati kabel fase tersebut, ia akan menghasilkan medan magnet di sekeliling kabel. Medan magnet ini menginduksi kumparan sekunder di dalam sensor SCT-013 untuk menghasilkan arus listrik AC kecil sekunder yang nilainya berbanding lurus (proproporsional) dengan arus utama yang sedang mengalir di kabel rumah Anda.

Rumus Fisika Perhitungan Arus RMS ($I_{\text{RMS}}$) dan Daya ($P$)

Untuk mengubah sinyal tegangan analog AC kecil yang ditangkap oleh pin ADC (Analog-to-Digital Converter) ESP32 menjadi nilai arus listrik riil dalam satuan Ampere, program menggunakan perhitungan kalkulasi Root Mean Square (RMS) matematis berikut:

$$I_{\text{RMS}} = \frac{N_{\text{turns}}}{R_{\text{burden}}} \times \sqrt{\frac{1}{N_{\text{samples}}} \sum_{i=1}^{N_{\text{samples}}} V_{\text{analog}_i}^2}$$

Di mana:

  • $N_{\text{turns}}$ = Rasio lilitan kumparan internal sensor SCT-013 (untuk tipe $100\text{A}/50\text{mA}$, rasionya adalah $2000$ lilitan).
  • $R_{\text{burden}}$ = Nilai hambatan resistor beban (burden resistor) yang dipasang paralel pada rangkaian input analog ESP32 (Ohm).
  • $N_{\text{samples}}$ = Jumlah total sampel pembacaan analog yang diambil oleh ADC ESP32 dalam satu siklus gelombang listrik AC.
  • $V_{\text{analog}_i}$ = Nilai tegangan analog ke-$i$ hasil pembacaan pin ADC ESP32 setelah dikonversi ke volt.

Setelah mendapatkan nilai $I_{\text{RMS}}$, kita dapat menghitung perkiraan daya aktif (Active Power / $P$ dalam satuan Watt) yang diserap oleh peralatan listrik rumah tangga Anda dengan rumus:

$$P = V_{\text{RMS}} \times I_{\text{RMS}} \times \cos(\theta)$$

Di mana $V_{\text{RMS}}$ adalah tegangan standar PLN di Indonesia (biasanya bernilai konstan antara $220\text{V}$ hingga $230\text{V}$), dan $\cos(\theta)$ adalah faktor daya listrik (Power Factor / rata-rata bernilai $0.85$ hingga $0.95$ untuk beban induktif rumah tangga).

Skema Elektronik Rangkaian Pembagi Tegangan (DC Bias)

Mikrokontroler ESP32 hanya mampu membaca tegangan analog DC positif antara rentang $0\text{V}$ hingga $3.3\text{V}$. Namun, sensor SCT-013 menghasilkan sinyal keluaran berupa tegangan AC bolak-balik yang memiliki gelombang positif dan negatif (misal dari $-1\text{V}$ hingga $+1\text{V}$). Memasukkan tegangan negatif secara langsung ke dalam pin ADC ESP32 dapat merusak sirkuit chip mikrokontroler Anda secara instan.

Untuk mengatasinya, kita harus membuat sirkuit DC Bias menggunakan pembagi tegangan (Voltage Divider) guna mengangkat titik tengah gelombang AC sensor SCT-013 ke titik aman tengah sebesar $1.65\text{V}$ DC (setengah dari $3.3\text{V}$).

Berikut adalah skema diagram hubungan sirkuit elektroniknya:

                  ┌─── [ Resistor 10 kΩ ] ───► [ Jalur +3.3V ] on ESP32
                  │
[ Pin Output SCT ] ┼─── [ Kapasitor 10 μF ] ───► [ Jalur GND ] on ESP32
                  │
                  ├─── [ Resistor 10 kΩ ] ───► [ Jalur GND ] on ESP32
                  │
                  └─── [ Resistor Burden 33 Ω ] ──► [ Pin GPIO 34 (ADC) ] on ESP32

Kode Program Arduino (C++) untuk ESP32 Energy Monitor

Gunakan pustaka EmonLib yang telah dioptimalkan untuk mempermudah perhitungan kalkulasi RMS arus listrik secara akurat pada Arduino IDE. Berikut adalah skrip kode pemrograman lengkap siap pakai untuk diunggah ke papan ESP32 Anda:

#include <WiFi.h>
#include <PubSubClient.h>
#include "EmonLib.h" // Impor pustaka Energy Monitor Library

// Konfigurasi Wi-Fi dan MQTT Broker
const char* ssid = "NamaWiFiRumahAnda";
const char* password = "KataSandiWiFiRumah";
const char* mqtt_server = "192.168.1.100"; // IP Home Assistant Server Anda

const int PIN_SENSOR_ARUS = 34; // Pin GPIO 34 (ADC1_CH6) ESP32
const double KONSTANTA_KALIBRASI = 60.6; // Nilai kalibrasi untuk SCT-013-000 dengan burden resistor 33 Ohm

EnergyMonitor emon1;
WiFiClient espClient;
PubSubClient client(espClient);

unsigned long waktu_sebelumnya = 0;

void setup_wifi() {
  delay(10);
  Serial.print("\nMenghubungkan ke ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWiFi Terhubung!");
}

void reconnect() {
  while (!client.connected()) {
    Serial.print("Mencoba koneksi MQTT...");
    if (client.connect("ESP32_Energy_Monitor")) {
      Serial.println("Koneksi MQTT Sukses!");
    } else {
      Serial.print("Gagal, status=");
      Serial.print(client.state());
      Serial.println(" Mencoba kembali dalam 5 detik...");
      delay(5000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);

  // Inisialisasi EmonLib pada pin sensor dengan konstanta kalibrasi
  emon1.current(PIN_SENSOR_ARUS, KONSTANTA_KALIBRASI);
  waktu_sebelumnya = millis();
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  unsigned long waktu_sekarang = millis();
  // Jalankan pembacaan dan kirim data setiap 5 detik sekali
  if (waktu_sekarang - waktu_sebelumnya >= 5000) {
    // Ambil 1480 sampel pembacaan gelombang listrik AC
    double irms = emon1.calcIrms(1480); 
    
    // Asumsikan tegangan standar PLN stabil di angka 220V
    double tegangan_pln = 220.0;
    // Hitung estimasi daya aktif (Watt) dengan faktor daya 0.9
    double estimasi_daya = irms * tegangan_pln * 0.9;

    // Proteksi batas kebisingan ADC (Noise filter) jika arus sangat kecil
    if (irms < 0.08) {
      irms = 0.0;
      estimasi_daya = 0.0;
    }

    Serial.print("Arus RMS: ");
    Serial.print(irms);
    Serial.print(" A | Estimasi Daya: ");
    Serial.print(estimasi_daya);
    Serial.println(" Watt");

    // Kirim data sensor ke broker MQTT Home Assistant
    client.publish("home/sensor/energy_monitor/irms", String(irms).c_str());
    client.publish("home/sensor/energy_monitor/watt", String(estimasi_daya).c_str());

    waktu_sebelumnya = waktu_sekarang;
  }
}

Perbandingan Akurasi Berbagai Jenis Sensor Arus DIY

Berikut adalah perbandingan antara jenis-jenis sensor arus listrik yang umum digunakan untuk proyek DIY pengawas energi pintar:

Parameter Evaluasi Sensor Klem SCT-013-000 Sensor Invasif ACS712 Sensor Terintegrasi PZEM-004T
Metode Instalasi Non-Invasif (Sangat Aman; cukup jepit kabel luar saja). Invasif (Wajib memotong kabel listrik utama AC). Invasif (Wajib memotong kabel listrik untuk pembacaan).
Keamanan Kelistrikan Sangat Tinggi (Terisolasi penuh tanpa kontak tembaga). Rendah (Arus $220\text{V}$ mengalir langsung lewat sirkuit PCB). Sedang (Menggunakan kumparan transformator arus eksternal).
Pengukuran Tegangan Tidak Bisa (Hanya membaca arus; tegangan diasumsikan). Tidak Bisa (Hanya membaca arus). Bisa (Membaca voltase, arus, frekuensi, & cos phi secara riil).
Biaya Komponen Murah (Sekitar Rp75.000 – Rp95.000). Sangat Murah (Sekitar Rp15.000). Sedang (Sekitar Rp120.000 – Rp150.000).
Tingkat Kesulitan Mudah (Sangat ramah untuk pemula). Sedang. Sedang (Membutuhkan modul komunikasi serial UART).

FAQ: Tanya Jawab Seputar Smart Energy Monitor

Mengapa sensor SCT-013 saya selalu membaca nilai daya kecil (3-5 Watt) padahal AC sedang mati total? Kondisi ini disebabkan oleh fenomena ADC Noise (kebisingan sirkuit analog) pada chip ESP32. Pin ADC ESP32 dikenal memiliki linearitas yang kurang sempurna pada tegangan sangat rendah dekat $0\text{V}$. Gangguan gelombang elektromagnetik udara di sekitar sirkuit kabel juga dapat terinduksi sebagai arus palsu. Untuk mengatasinya, kita menambahkan baris logika penyaring kebisingan (noise filter) pada kode C++ di atas: jika nilai arus yang terbaca berada di bawah batas minimal $0.08\text{ A}$ (setara $\sim 15\text{ Watt}$), maka program akan secara otomatis menganggapnya bernilai $0.0$ agar data tetap akurat.

Apakah saya bisa menjepit kabel setrika langsung dengan sensor SCT-013 untuk mengukur dayanya? Tidak bisa secara langsung. Jika Anda menjepit kabel setrika atau peralatan rumah tangga lainnya yang masih terbungkus utuh (di mana di dalam kabel tersebut terdapat kabel fase dan netral yang menyatu), maka medan magnet yang dihasilkan oleh kabel fase dan netral akan saling meniadakan (cancel out) secara total, sehingga sensor SCT-013 akan mendeteksi nilai arus $0.0\text{ A}$. Anda wajib memisahkan pembungkus luar kabel tersebut dan hanya menjepitkan sensor SCT-013 pada satu utas kabel fase saja secara eksklusif.

Apakah sensor SCT-013 ini aman jika dipasang di luar ruangan dekat meteran listrik PLN? Sensor SCT-013 terbuat dari bahan plastik tebal yang tahan terhadap panas, namun sirkuit kumparan tembaga di dalamnya sangat sensitif terhadap kelembaban air. Jika Anda ingin memasangnya di luar ruangan dekat dengan box MCB meteran PLN, pastikan Anda melindunginya di dalam kotak panel plastik luar ruangan (weatherproof junction box) berkategori minimal IP65 guna melindunginya dari paparan air hujan lebat dan debu tebal.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *