Membuat Modul IoT Membaca Banyak Device dengan RS485

Postingan ini sebenarnya sudah ada judulnya dari beberapa bulan lalu, tapi baru sempet menulis isinya sekarang. Saat itu, sistem PLTS saya baru ada inverter dan baterai, belum ada panel surya, sehingga saya fokus pada komponen IoT-nya dulu.

Saya sudah membuat desain jalur kabel dan flow arusnya. Mulai dari string panel surya yang sudah saya persiapkan menjadi dua string, sampai arah inverter dan baterai. Tiap titik bagian sudah saya rencanakan akan dipasang sensor untuk mengetahui parameter yang akan saya ukur. Salah satu parameter misalnya voltase dan energi dari baterai ke inverter. Ini sudah bisa saya implementasikan sebelum menunggu panel surya terpasang.

Pada tahap awal ini, saya akan memasang 4 sensor, dua untuk memantau arus DC dan dua lagi untuk memantau arus AC. Dua arus DC adalah dari SCC ke inverter serta baterai dan satu lagi dari baterai dan SCC ke inverter. Dua sensor ini untuk memantau berapa banyak energi yang dipanen dari SCC dan berapa besar energi yang terpakai. Sedangkan untuk arus AC, saya memasang sensor untuk arus dari PLN dan satu lagi untuk memantau arus keluaran dari Inverter. Ini untuk memantau berapa besar energi PLN dan PLTS yang terpakai.

Saya menggunakan PZEM016 dan PZEM017. Dua alat ini memiliki interface RS485 sehingga saya membutuhkan modul RS485. Untuk modul kontrolernya saya menggunakan ESP dari keluarga ESP8266 yaitu ESP Wemos D1 Mini. Saya berencana membuat satu modul ini untuk memantau banyak device RS485.

Sat, 29 Nov 2025

Ganti BMS ke Daly 100Balance Smart BMS

Saat ini Saya memiliki kesempatan untuk mencoba ganti BMS dari Daly 8s 60A merah ke Daly 100Balance BMS 60A active balance 1 A yang warna biru itu. Sebenarnya pakai yang lama “nampak” tidak ada masalah, saya juga sudah membeli active balancer 8s 5A. Belum sempat saya pasang aktive balancernya, tapi saya malah dapet upgrade ka Daly smart BMS. Walaupun nilai active balance nya lebih kecil yaitu 1 A, tapi kita bisa pantau tiap cell-nya.

Awalnya sempet gak nyala saat dicoba dinyalakan. Semua wiring telah dilakukan sebagaimana BMS pada umumnya. Coba samakan voltase antar cell. Coba pasang semua kabel bawaan yang tersedia dan semua masih nihil. Sampai saya lihat video dari official nya, dan ternyata untuk kabel cell ke 8 warna biru dan kabel merah, dijadikan satu.

Selanjutnya saya coba sambung kabel biru ke-8 ke positif digabung dengan kabel merah, tetep tidak bisa. Dan memang kabel biru cuma saya jepit saja. Coba saya solder bareng dengan kabel merah, ternyata bisa dan nyala sampai sekarang.

Untuk kabel key juga harus disambung dan dalam posisi on saklarnya. Kalau tidak, BMS mati dan tidak bisa disambung bluetooth.

Sat, 22 Nov 2025

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

Pengalaman Setup Printer Canon G2010 untuk Mac dalam Jaringan

1. Setup Awal: Wavlink + Windows = Lancar Jaya

Awalnya, printer Canon G2010 saya terhubung ke jaringan lokal menggunakan print server Wavlink. Di lingkungan Windows, semuanya berjalan mulus: printer terdeteksi otomatis, driver tersedia, dan proses cetak berlangsung cepat tanpa hambatan. Ini solusi ideal untuk rumah atau kantor kecil yang ingin berbagi printer tanpa harus colok langsung ke satu komputer.

2. Masuk Mac: Driver Ada, Tapi Lemot dan Gagal

Masalah muncul saat mencoba mencetak dari MacBook. Saya menambahkan printer lewat System Preferences → Printers & Scanners, memilih driver Canon G2000 series (karena G2010 tidak muncul). Awalnya, printer bisa menerima job dan mulai mencetak. Tapi…

  • Proses cetak sangat lambat
  • Sering berhenti di tengah jalan
  • Kadang hang total dan harus restart printer

Setelah frustrasi berkali-kali, saya cek langsung ke situs resmi Canon — dan ternyata: Canon G2010 memang tidak mendukung macOS secara resmi. Tidak ada driver native, dan solusi workaround tidak stabil.

3. Jalan Alternatif: CUPS + Raspberry Pi

Karena saya sudah punya Raspberry Pi yang standby di jaringan, saya coba eksperimen: jadikan Pi sebagai print server berbasis CUPS (Common Unix Printing System).

Langkah-langkahnya:

  • Install CUPS di Raspberry Pi:bashsudo apt update && sudo apt install cups printer-driver-gutenprint
  • Tambahkan user ke grup lpadmin dan aktifkan sharing
  • Akses web interface CUPS di http://raspberrypi.local:631
  • Tambahkan printer Canon G2010 menggunakan driver dari Gutenprint

Hasilnya?

  • Printer bisa ditambahkan ke Mac via IPP (Internet Printing Protocol)
  • Proses cetak berhasil sampai selesai
  • Masih agak lambat, tapi jauh lebih stabil dibanding metode sebelumnya