Dashboard Grafik Pemantauan PLTS

Project personal yang saya inisiasi sejak awal tahun 2025 ini akhirnya mulai terlihat wujudnya. Yang awalnya saya mau belajar mikrokontroller Arduino kemudian ESP dan lanjut ke IoT dan finalnya di penerapan PLTS. Satu per satu mulai dirangkai dan sampai sekarang berhasil membuat dashboard pemantauan PLTS.

Bisa dilihat di grafik diatas berupa summary dari sistem PLTS yang saya kembangkan. Tampilannya masih belum terkonsep dengan matang, masih sesuai dengan ide yang terpikir sesaat. Walaupun demikian, sudah mulai nampak flow kerjanya. Tinggal sedikit-demi sedikit disempurnakan.

Project PLTS ini merupakan tahap lanjut saya dari belajar Arduino dan ESP. Dari awalnya hanya LED, lanjut ke robotika untuk RC Car, hingga ke IoT. Semua hal fisik elektronik ini saya arahkan datanya ke lokal server yang dibangun diatas Raspberry Pi dengan docker yang menangani kontainerisasi layanan.

Ada beberapa layanan yang berjalan diatas docker ini. Diantaranya adalah mosquitto untuk layanan mqtt, influxdb yang menangani basis data, Node-RED sebagai jembatannya, dan Grafana sebagai frontend yang menampilkan datanya. Semuanya bekerja bersama dengan sistem PLTS atap.

Sepertinya sampai akhir tahun ini secara garis besar projectnya sampai tahap ini, tinggal merapikan dan merancang untuk project tahun depan. Diantaranya yang terpikirkan adalah membuat modul hot-swap agar kita bisa pasang dan copot baterai pack untuk menambah kapasitas baterai PLTS. Dulu saya pikir mau tambah kapasitas tinggal paralel baterai pack yang sudah ada BMS nya. Ternyata tidak sesederhana itu.

21 Oct 2025

Pembacaan Nilai Total Energi PZEM-017 Kembali Nol (Ter-reset)

Sehari yang lalu, nilai pembacaan pada dashboard plts sangat aneh. Sebuah nilai energi yang terbaca minus. Sampai siang coba saya tunggu tidak berubah, karena saya beranggapan karena proses agregasi nilai yang belum sinkron.

Usut punya usut, ternyata nilai pembacaan energi dari pzem nya ter-reset kembali ke nol lagi. Saya tidak tau sebabnya, seharunya nilai 60.000 masih dalam rentang pembacaan, karena nilai maksimalnya adalah 99.999 kalau tidak salah.

Bisa dilihat pada tangkapan layar diatas bagian energy yang dilingkari merah. Pembacaannya kembali nol, sehingga wajar kalau nilai total akumulatifnya jadi minus.

Belajar dari kasus ini, saya ubah penyimpanan datanya di database. Yang sebelumnya menyimpan nilai raw data begitu saja dari device. Saya olah dulu supaya data yang disimpan adalah data total ditambah selisih. Sehingga walaupun reset, data total yang tersimpan akan tetap bertambah.

Sistem saya pakai Node-RED, jadi proses ini bisa dilakukan di Node-Red. Berikut adalah fungsi perantara untuk koreksi datanya.

if (msg.topic = "pzem/battery"){
    let prev = context.get("prev") || 0;
    let total = context.get("total") || 0;

    let curr = msg.payload.energy;
    let delta = curr >= prev ? curr - prev : curr;

    total += delta;

    context.set("prev", curr);
    context.set("total", total);

    msg.payload.energy = total;
}
return msg;

block fungsi ini berada setelah mqtt in dan sebelum set message payload. Jadi kita modifikasi payload yang akan disimpan di database. Berikut kira kira alurnya

mqtt in --> modif function --> set msg.payload --> database

Sejauh ini tampak berhasil, tinggal kita tunggu jika kejadian serupa muncul. Sejak saat ini, semua flow sejenis, saya terapkan modif function ini sebagai middleware.

30 Oct 2025

Korban Ke-2 PZEM-004T

1 Agu 2025.

Kali ini saya tidak tau apa penyebabnya, tiba-tiba pzem-004T saya tidak memberikan respon. Dua indikator tx dan rx menyala terang, tidak berkedip, kedua-duanya.

Awalnya setelah kejadian terbakar yang lalu karena salah sambung, saya beli pzem-004T lagi, dengan tekad untuk berhati-hati. Proses sambung dan testing juga berjalan dengan lancar. Modul ESP juga bisa membaca nilainya.

Saat ditempatkan di dalam box dan dipasang di tempat pengukuran, pzem ini tiba-tiba tidak memberikan respon. Kedua led indikator tx dan rx menyala terang dan tidak berkedip. ESP 01 yang dipakai untuk membaca nilainya juga terasa sangat panas ketika disentuh.

Akhirnya saya copot lagi dari tempat pengukuran, saya coba lagi tetap tidak ada respon. Sampai saat ini saya belum menemukan jawabannya kenapa bisa rusak.

foto saat dimasukkan kedalam kotak dan siap untuk dipasang ditempat

Korban Satu PZEM-004T

Kediri, 21 Juli 2025

Kesalahan akibat human error kali ini menimbulkan korban satu Pzem-004T, alat monitoring beban arus AC, terbakar dan mati.

✨ Awal Eksperimen: Membaca Data dari PZEM-004T TTL

Sebagai pecinta sistem monitoring energi, saya mencoba membaca data dari PZEM-004T TTL—modul mungil yang bisa mengukur tegangan, arus, dan daya secara real-time. Dengan hanya ESP8266 dan kabel jumper, saya rasa tidak ada hal rumit yang perlu dikhawatirkan. Tanpa RS485 converter, proses jadi jauh lebih sederhana.

📑 Membaca Datasheet dan Manual Pabrik

Saya baca datasheet dan manual resmi dari Peacefair, mencoba memahami dengan cermat pinout dan cara kerja. Pin RX dan TX saya hubungkan ke GPIO ESP8266, CT ke salah satu jalur AC, dan input power langsung dari colokan rumah. Diagram wiring terlihat solid. Saya yakin dengan skema ini.

🔌 Menyambungkan dan Menyalakan Colokan AC

Dengan penuh semangat, saya nyalakan sistem… dan seketika — TSSHHH! terjadi ledakan kecil disertai percikan api dan asap dari modul. Bau terbakar langsung menusuk hidung. Saya terkejut, jantung rasanya ikut nyala bareng PZEM.

🔍 Membaca Ulang Manual (dengan Wajah Tertunduk)

Setelah modul jadi korban, saya buka manual lagi. Ternyata… kesalahan fatal ada pada jalur AC dan CT. Saya memasang jalur AC di jalur CT, padahal arus AC harus sesuai sambungannya. Modul tidak dirancang untuk menahan kesalahan wiring seperti ini.

🧠 Pasrah dan Jadi Pembelajaran

Saya pasrah. PZEM-004T saya gugur, tapi pelajaran yang saya dapat sangat mahal nilainya:

  • Modul TTL memang praktis, tapi posisi jalur AC dan posisi CT sangat krusial.
  • Manual harus dibaca lebih dari sekali, jangan hanya sekilas.
  • Selalu uji koneksi dengan simulasi daya minimal sebelum full-on colokan AC.

Membaca PZEM-004T

Membaca nilai dari PZEM-004T sangat sederhana dan jelas karena terdapat library yang langsung tinggal pakai. Koneksinya juga tidak rumit karena langsung menggunakan interface tx dan rx yang bisa langsung dihubungkan dengan ESP.

PZEM-004T adalah modul sensor untuk membaca parameter aliran listrik AC seperti Voltase, Power, Energy, Frequency, dan Power Factor.

Wiring-nya juga sangat sederhana hubungkan modul pzem dengan ESP, Tx-Rx dan Rx-Tx. Tambahkan library dan tuliskan kode seperti dibawah. Jika semua sudah benar, harusnya akan menampilkan hasil bacaan pada serial monitor.

#include <SoftwareSerial.h>
#include <PZEM004Tv30.h>

#define RX_PIN 4  // D2
#define TX_PIN 5  // D1

SoftwareSerial pzemSerial(RX_PIN, TX_PIN);
PZEM004Tv30 pzem(pzemSerial);

void setup() {
  Serial.begin(115200);
  pzemSerial.begin(9600);
  Serial.println("Monitoring PZEM-004T via ESP8266");
}

void loop() {
  float voltage = pzem.voltage();
  float current = pzem.current();
  float power   = pzem.power();
  float energy  = pzem.energy();
  float frequency = pzem.frequency();
  float pf = pzem.pf();

  if (isnan(voltage)) {
    Serial.println("Gagal membaca data dari sensor");
  } else {
    Serial.printf("Tegangan: %.2f V\n", voltage);
    Serial.printf("Arus: %.2f A\n", current);
    Serial.printf("Daya: %.2f W\n", power);
    Serial.printf("Energi: %.3f kWh\n", energy);
    Serial.printf("Frekuensi: %.1f Hz\n", frequency);
    Serial.printf("Power Factor: %.2f\n", pf);
    Serial.println("-----------------------------");
  }

  delay(1000);
}

HATI-HATI!!!

karena modul ini mengukur tegangan tinggi, jadi pastikan secara berulang kali kalau koneksi sudah benar dan aman.!

Juli 2025