Kebutuhan akan monitoring listrik 3 phase berkembang seiring dengan berkembang nya sensor-sensor yang mendukung nya, mulai dari sensor yang low cost, menengah bahkan yang industrial seperti power meter keluaran ABB, Schneider dan lain lain.
Kali ini kita akan akan mengungkap trik dan tips membaca listrik 3 phase dengan sensor PZEM-016. Sengaja memilih sensor ini di bandingkan dengan sensor pzem-004T, karena alasan wiring, modbus suppport dan kerapian dalam instalasi.
Mengikut tutorial sebelum nya, agar tidak bingung mengikuti tutorial berikut, alangkah baik nya teman-teman membaca artikel berikut ini, ya itu merubah alamat modbus pada sensor PZEM 016, cukup click tombol di bawah ini,
Wiring PZEM-016 dengan Modul Modbus Converter
Pastikan Jalur 220VAC TIDAK SHORT, check dengan MULTIMETER
Savety First
Setelah Wiring sudah benar dan baik, saya harap teman-teman sudah Merubah Address masing masing sensor PZEM-016, jika belum check tutorial sebelum nya, yaitu merubah address sensor PZEM-016
Coding Membaca 3 Phase
static uint8_t pzemSlaveAddr1 = 1;
static uint8_t pzemSlaveAddr2 = 2;
static uint8_t pzemSlaveAddr3 = 3;
Alamat masing masing sensor PZEM bisa dilihat pada cuplikan di atas, dengan penjelasan seperti di bawah ini,
- Sensor PZEM 016 yang ke satu kita beri address 0x01,
- Sensor PZEM 016 yang ke dua kita beri address 0x02,
- Sensor PZEM 016 yang ke tiga kita beri address 0x03,
Setelah itu kita panggil secara bergantian data dari sensor pzem ini, fungsi nya seperti pada cuplikan code berikut ini,
void loop() {
baca_pzem(pzemSlaveAddr1);
baca_pzem(pzemSlaveAddr2);
baca_pzem(pzemSlaveAddr3);
}
Untuk Program keseluruhan nya adalah seperti berikut ini,
#include <ModbusMaster.h>
ModbusMaster node;
static uint8_t pzemSlaveAddr1 = 1;
static uint8_t pzemSlaveAddr2 = 2;
static uint8_t pzemSlaveAddr3 = 3;
#include <SoftwareSerial.h>
SoftwareSerial pzemSerial(13, 14);
#define EN 12
#define MAX485_RE_NEG 12
float voltage, current, power, energy, freq, pf;
void preTransmission()
{
digitalWrite(EN, 1);
}
void postTransmission()
{
digitalWrite(EN, 0);
}
void setup() {
pinMode(EN, OUTPUT);
// Init in receive mode
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(EN, 0);
pzemSerial.begin(9600); // baudrate pzem
Serial.begin(115200);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
}
void loop() {
baca_pzem(pzemSlaveAddr1);
baca_pzem(pzemSlaveAddr2);
baca_pzem(pzemSlaveAddr3);
}
void baca_pzem(byte addr){
Serial.print("baca pzem addr: ");
Serial.println(addr);
node.begin(addr, pzemSerial);
uint8_t result;
result = node.readInputRegisters(0, 9); //read the 9 registers of the PZEM-014 / 016
if (result == node.ku8MBSuccess)
{
voltage = node.getResponseBuffer(0) / 10.0;
uint32_t tempdouble = 0x00000000;
tempdouble = node.getResponseBuffer(1); //LowByte
tempdouble |= node.getResponseBuffer(2) << 8; //highByte
current = tempdouble / 1000.0;
tempdouble |= node.getResponseBuffer(3); //LowByte
tempdouble |= node.getResponseBuffer(4) << 8; //highByte
power = tempdouble / 10.0;
tempdouble = node.getResponseBuffer(5); //LowByte
tempdouble |= node.getResponseBuffer(6) << 8; //highByte
energy = tempdouble;
tempdouble = node.getResponseBuffer(7);
freq = tempdouble / 10.0;
tempdouble = node.getResponseBuffer(8);
pf = tempdouble / 10.0;
print_data();
} else {
Serial.println("Failed to read modbus");
}
delay(1000);//wajib ada delay
}
void print_data() {
Serial.print(voltage);
Serial.print("V ");
Serial.print(current);
Serial.print("A ");
Serial.print(freq);
Serial.print("Hz ");
Serial.print(pf);
Serial.print("pf ");
Serial.print(" ");
Serial.print(power);
Serial.print("W ");
Serial.print(energy);
Serial.print("Wh ");
Serial.println();
}
Compile program di atas dan upload ke modul modbus converter kita, Jika kebetulan error, maka silahkan merujuk ke artikel sebelum nya, cukup clik tombol di bawah ini,
Setelah itu, buka serial monitor dan lihat, jika wiring berhasil akan nampak seperti pada video di bawah ini,
Monitoring 3 Phase
Monitoring 3 phase akan jadi lebih menarik, dan akan kita bahas di tutorial selanjut nya, sebelum melangkah ke monitoring 3 phase dengan platform iot yang sudah ada, saya harap teman membaca tutorial ini secara berurut, agar ilmu yang di dapatkan secara terstruktur dan teratur, list tutorial nya adalah sebagai berikut,
- Modul Modbus Converter
- Membaca Sensor PZEM -016 dengan Modul Modbus Converter
- Merubah address Sensor PZEM -016
- Mereset nilai KWH Sensor PZEM-016
Jika teman-teman tertarik dengan modul Modbus Converter, Cukup Click tombol whatsapp di bawah ini,
Sekian dulu tutorial ini, Semoga bermanfaat.