Sensor PZEM-004T adalah modul yang digunakan untuk mengukur parameter listrik seperti tegangan (V), arus (A), daya (W), energi (kWh), frekuensi (Hz), dan faktor daya (PF).
Spesifikasi Utama:
- Tegangan operasi: 80–260V AC
- Pengukuran arus: hingga 100A (dengan CT eksternal)
- Parameter yang terbaca: Voltage, Current, Power, Energy, Frequency, Power Factor
- Komunikasi: TTL Serial
- Akurasi: ±0.5%
Karena fiturnya yang lengkap, sensor ini sering dipakai untuk monitoring listrik rumah, panel surya, dan manajemen daya IoT.
Alat dan Bahan
No | Alat & Bahan | Jumlah |
---|---|---|
1 | Arduino Uno R3 | 1 unit |
2 | Sensor PZEM-004T | 1 unit |
3 | Kabel jumper | Beberapa |
4 | Breadboard (opsional) | 1 unit |
5 | Kabel USB Arduino | 1 unit |
Wiring Diagram PZEM-004T ke Arduino Uno

PZEM-004T Pin | Arduino Uno Pin |
---|---|
VCC | 5V |
GND | GND |
TX | Pin 11 |
RX | Pin 10 |
Program Arduino Membaca Data PZEM-004T
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <PZEM004Tv30.h>
// Definisi pin sesuai wiring di foto
#define PZEM_RX_PIN 10
#define PZEM_TX_PIN 11
SoftwareSerial pzemSWSerial(PZEM_RX_PIN, PZEM_TX_PIN);
PZEM004Tv30 pzem(pzemSWSerial);
float voltage = 0;
float current = 0;
float power = 0;
float energy = 0;
float frequency = 0;
float pf = 0;
void get_sensor_PZEM(){
voltage = pzem.voltage();
current = pzem.current();
power = pzem.power();
energy = pzem.energy();
frequency = pzem.frequency();
pf = pzem.pf();
if(isnan(voltage) || isnan(current) || isnan(power) || isnan(energy) || isnan(frequency) || isnan(pf)) {
Serial.println("Error: Gagal membaca data sensor");
} else {
Serial.print("Voltage: "); Serial.print(voltage); Serial.println(" V");
Serial.print("Current: "); Serial.print(current); Serial.println(" A");
Serial.print("Power: "); Serial.print(power); Serial.println(" W");
Serial.print("Energy: "); Serial.print(energy,3); Serial.println(" kWh");
Serial.print("Frequency: "); Serial.print(frequency); Serial.println(" Hz");
Serial.print("Power Factor: "); Serial.println(pf);
}
}
void setup(){
Serial.begin(9600);
pzemSWSerial.begin(9600);
}
void loop(){
get_sensor_PZEM();
delay(1000);
}
Penjelasan Kode Program
Agar lebih mudah dipahami, berikut penjelasan setiap bagian:
- Library
PZEM004Tv30.h
Digunakan untuk komunikasi dengan sensor PZEM-004T. - Deklarasi variabel sensor
Menyimpan nilai tegangan, arus, daya, energi, frekuensi, dan faktor daya. - Fungsi
get_sensor_PZEM()
Membaca semua parameter listrik dari sensor dan menampilkannya di Serial Monitor. - Fungsi
setup()
Memulai komunikasi serial dengan baud rate 9600. - Fungsi
loop()
Memanggil fungsi pembacaan setiap 500 ms.
Langkah Pengujian Sensor
- Hubungkan Arduino Uno ke komputer menggunakan kabel USB.
- Upload program di atas menggunakan Arduino IDE.
- Buka Serial Monitor pada baud rate 9600.
- Pastikan sensor PZEM-004T sudah terhubung ke beban listrik sesuai instruksi.
- Amati nilai tegangan, arus, daya, energi, frekuensi, dan faktor daya yang muncul di Serial Monitor.
Tips Pengujian:
- Gunakan beban listrik nyata (misalnya lampu) untuk melihat hasil pengukuran.
- Selalu hati-hati saat menghubungkan ke listrik AC karena berbahaya.
- Pastikan kabel tidak longgar agar pembacaan stabil.
Kesimpulan
Sensor PZEM-004T memudahkan pembacaan parameter listrik seperti tegangan, arus, dan daya dengan Arduino Uno. Dengan wiring yang tepat dan kode sederhana, Anda bisa membuat sistem monitoring listrik untuk rumah atau proyek IoT.
Dengan sensor ini, Anda tidak perlu modul terpisah untuk membaca tegangan dan arus, karena semua sudah tersedia dalam satu perangkat yang praktis dan akurat.
Diskusi lebih lanjut kontak di bawah :

Media sosial lainnya :
Baca juga :
Cara Menggunakan Sensor Jarak Laser TOF10120 dengan Arduino Uno