SoftwareSerial. [1]SoftwareSerial) untuk membaca sensor: [1, 2]#include <PZEM004Tv30.h>
#include <SoftwareSerial.h>
// Definisikan pin SoftwareSerial untuk ESP8266
// D6 (GPIO 12) terhubung ke TX PZEM
// D5 (GPIO 14) terhubung ke RX PZEM
#define PZEM_RX_PIN 12
#define PZEM_TX_PIN 14
SoftwareSerial pzemSerial(PZEM_RX_PIN, PZEM_TX_PIN);
PZEM004Tv30 pzem(pzemSerial);
void setup() {
// Membuka komunikasi ke Serial Monitor komputer
Serial.begin(115200);
Serial.println("Pengujian Sensor PZEM-004T v3.0!");
// Jika ingin meriset total penghitung energi (kWh) menjadi 0,
// hapus tanda komentar pada baris di bawah ini:
// pzem.resetEnergy();
}
void loop() {
// Membaca parameter dari sensor
float voltage = pzem.voltage();
float current = pzem.current();
float power = pzem.power();
float energy = pzem.energy();
float frequency = pzem.frequency();
float pf = pzem.pf();
// Memeriksa apakah pembacaan sensor valid
if (isnan(voltage)) {
Serial.println("Gagal membaca tegangan (Periksa koneksi AC atau kabel serial)!");
} else {
// Menampilkan hasil pembacaan ke Serial Monitor
Serial.print("Tegangan: "); Serial.print(voltage); Serial.println(" V");
Serial.print("Arus: "); Serial.print(current); Serial.println(" A");
Serial.print("Daya: "); Serial.print(power); Serial.println(" W");
Serial.print("Energi: "); Serial.print(energy, 3); Serial.println(" kWh");
Serial.print("Frekuensi: "); Serial.print(frequency); Serial.println(" Hz");
Serial.print("Power Factor: "); Serial.println(pf);
}
Serial.println("----------------------------------------");
delay(2000); // Jeda pembacaan setiap 2 detik
}
Buka Arduflow IDE sekarang dan implementasikan logika program di atas tanpa ribet!