FLOW. CONNECT. INNOVATE.
← KEMBALI KE DAFTAR MATERI
BASIC SENSOR DAN PENGERTIAN IOT

Baca sensor pzem-004t dengan esp8266

Berikut adalah kode standar Arduino IDE untuk membaca data kelistrikan dari sensor PZEM-004T (Versi 3.0) menggunakan papan ESP8266 via komunikasi SoftwareSerial. [1]
Persiapan Library
Buka Arduino IDE, lalu masuk ke Tools > Manage Libraries... dan instal library berikut: [1]
Skema Pin Penghubung
Karena ESP8266 hanya memiliki satu komunikasi serial utama yang terpakai oleh Serial Monitor bawaan, kita menggunakan pin digital lain (SoftwareSerial) untuk membaca sensor: [1, 2]
Catatan Keselamatan: Sisi AC (High Voltage) pada PZEM-004T harus terhubung ke jala-jala listrik PLN agar sensor dapat mendeteksi parameter tegangan, arus, dan daya. Berhati-hatilah saat bekerja dengan tegangan AC. [1, 2]
ARDUFLOW CODE SNIPPET
#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
}

SIAP MENCOBA MATERI INI?

Buka Arduflow IDE sekarang dan implementasikan logika program di atas tanpa ribet!