Pengertian Sistem Monitoring Energi
Sistem Monitoring Energi merupakan sebuah platform IoT yang bertujuan untuk melihat dan memanfaatkan data hasil sensing suatu sensor yang kemudian dianalisa dan dikembangkan untuk tujuan tertentu, dalam hal ini user bisa memanfaatkan sistem monitoring energi untuk penghematan dan memantau peralatan yang boros energi.
Sistem Monitoring Energi Menggunakan ESP32 dan PZEM
Pada pertemuan kali ini Tutorial IoT akan membahas secara tuntas mengenai cara-cara perakitan dan pembuatan kode program untuk membuat Sistem Monitoring Enegi Listrik Rumah via App Smartphone, bahan dan peralatan yang dibutuhkan adalah sebagai berikut :1. ESP32 Devkit 1
2. PZEM-004T
3. Kabel Jumper
4. Obeng kecil (+) atau (-)
5. Kabel AC biasa
6. Stekker
7. Terminal Listrik
Setelah semua peralatan dan bahan terkumpul, buatalah rangkaian seperti yang ada pada gambar di bawah ini.
Hehehe agak kurang rapi gambarnya, maaf, karena di fritzing nggak ada PZEM, stekker dan terminal.
OK Langsung saja ke proses tutorial pembuatan kode program.
Kode Program PZEM-004T
Berikut ini adalah kode program untuk mengirimkan data hasil sensor PZEM-004T untuk memonitoring penggunaan energi listrik :
//Untuk WiFi Blynk
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "Isi dengan Auth Token Blynk yang didapatkan saat membuat aplikasi";
char ssid[] = "Ganti dengan nama Wifi kalian";
char pass[] = "Ganti dengan Password WiFi kalian";
//Untuk PZEM
#include <HardwareSerial.h>
#include <PZEM004T.h>
#define HardwareSerial Serial2(2); // Gunakan hwserial UART2 at pins IO-16 (RX2) and IO-17 (TX2)
PZEM004T pzem(&Serial2);
IPAddress ip(192,168,1,1);
float v;
float i;
float p;
float e;
void setup() {
Serial.begin(115200);
while (true) {
Serial.println("Connecting to PZEM...");
if(pzem.setAddress(ip))
break;
delay(1000);
Blynk.begin(auth, ssid, pass);
}
}
void bacaPZEM(){
//PZEM
v = pzem.voltage(ip);
if (v < 0.0) v = 0.0;
Serial.print(v);Serial.print("V; ");
i = pzem.current(ip);
if(i >= 0.0){ Serial.print(i);Serial.print("A; "); }
p = pzem.power(ip);
if(p >= 0.0){ Serial.print(p);Serial.print("W; "); }
e = pzem.energy(ip);
if(e >= 0.0){ Serial.print(e);Serial.print("Wh; "); }
Serial.println();
delay(3000);
}
void sendtoblynk(){
Blynk.virtualWrite(V0, v);
Blynk.virtualWrite(V1, i);
Blynk.virtualWrite(V2, p);
Blynk.virtualWrite(V3, e);
}
void loop() {
bacaPZEM();
delay(1000);
sendtoblynk();
Blynk.run();
}
temen-temen bisa mendowload script code-nya disini.
pastikan sebelum temen-temen menulis kode program dan menguploadnya ke board ESP32, kalian sudah menyiapkan library khusus PZEM, jika belum punya bisa download disini. dan library Blynk apabila juga belum punya silahkan download disini atau Github
//Untuk WiFi Blynk
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "Isi dengan Auth Token Blynk yang didapatkan saat membuat aplikasi";
char ssid[] = "Ganti dengan nama Wifi kalian";
char pass[] = "Ganti dengan Password WiFi kalian";
//Untuk PZEM
#include <HardwareSerial.h>
#include <PZEM004T.h>
#define HardwareSerial Serial2(2); // Gunakan hwserial UART2 at pins IO-16 (RX2) and IO-17 (TX2)
PZEM004T pzem(&Serial2);
IPAddress ip(192,168,1,1);
float v;
float i;
float p;
float e;
void setup() {
Serial.begin(115200);
while (true) {
Serial.println("Connecting to PZEM...");
if(pzem.setAddress(ip))
break;
delay(1000);
Blynk.begin(auth, ssid, pass);
}
}
void bacaPZEM(){
//PZEM
v = pzem.voltage(ip);
if (v < 0.0) v = 0.0;
Serial.print(v);Serial.print("V; ");
i = pzem.current(ip);
if(i >= 0.0){ Serial.print(i);Serial.print("A; "); }
p = pzem.power(ip);
if(p >= 0.0){ Serial.print(p);Serial.print("W; "); }
e = pzem.energy(ip);
if(e >= 0.0){ Serial.print(e);Serial.print("Wh; "); }
Serial.println();
delay(3000);
}
void sendtoblynk(){
Blynk.virtualWrite(V0, v);
Blynk.virtualWrite(V1, i);
Blynk.virtualWrite(V2, p);
Blynk.virtualWrite(V3, e);
}
void loop() {
bacaPZEM();
delay(1000);
sendtoblynk();
Blynk.run();
}
temen-temen bisa mendowload script code-nya disini.
pastikan sebelum temen-temen menulis kode program dan menguploadnya ke board ESP32, kalian sudah menyiapkan library khusus PZEM, jika belum punya bisa download disini. dan library Blynk apabila juga belum punya silahkan download disini atau Github
Cara Setting Tampilan Data Sensor Menggunakan Blynk
1. Buka aplikasi Blynk di smartphone (pastikan sebelumnya sudah mendaftar dengan benar)
2. Pilih "New Project"
3. Beri nama aplikasi kalian dan pilih board yang digunakan
4. Tekan tombol "Create" maka secara otomatis kode Auth Token dikirim ke email pendafaran
5. Memasukkan widget dengan menekan tombol (+) yang berada di kanan atas aplikasi
Keterangan lebih lanjut untuk pemula bisa mengunjungi halaman "Tutorial Mengendalikan Relay Melalui Blynk App", sudah disertai penjelasan dengan gambar.
Berikut adalah hasil uji coba "Sistem Monitoring Energi Listrik", dalam percobaannya penulis menambahkan sensor suhu untuk mempercantik tampilan, perhatikan gambar di bawah ini.
Jika temen-temen ingin belajar mengirimkan data sensor suhu ke Blynk silahkan klik disini
24 Comments
Mau tanya bang..sketch nya cocok juga ya untuk nodemcu esp 8266
ReplyDeleteTinggal mengganti library wifinya mas
Deletebang mau tanyak, delay pengirimannya berapa detik ?
ReplyDeletesatu detik bang
Deletealamat ip PZEM 004t apakah bisa diubah selain 192.168.1.1?
ReplyDeletebisa kak, apa mau pasang lebih dari satu PZEM dalam 1 arduino? nanti IP nya seperti ini :
Deleteip[0] = IPAddress(0, 0, 0, 1);
ip[1] = IPAddress(0, 0, 0, 2);
ip[2] = IPAddress(0, 0, 0, 3);
saya mau nanya kalo pzem-004t dipasang di arduino uno yang make esp-01 sebagai wifi module, komunikasi serialnya pake soft serial atau pake hardserial soalnya si esp8266 komunikasi ama arduino udh pake serial juga pencerahannya gan ?
ReplyDeletePakai Serial bisa gan
Deletebang boleh minta library fritzing sensor pzem nya?
DeleteKalo pake module gsm gimana ya?
ReplyDeleteThis comment has been removed by the author.
DeleteKalo pake pzem004T versi 3 bisa menggunakan program dan library ini?
ReplyDeleteuntuk library fritzing pzem 004 bisa bagi gk bang
ReplyDeletebang boleh minta library fritzing PZEM 004 T ?
ReplyDeletebagi library fritzing pzem 004 t
ReplyDeletebang
terimakasih sebelumnya, pemaparan dri blog nya sangat bermanfaat banget. apakah boleh saya minta library fritzing pzem-004t. Terima kasih
ReplyDeleteterimakasih sebelumnya, pemaparan dri blog nya sangat bermanfaat banget. apakah boleh saya minta library fritzing pzem-004t. Terima kasih
ReplyDeletesebelumnya terima kasih, di saya masih belum muncul nilainya, yang ada muncul tulisan " connecting to PZEM"
ReplyDeletecek Wiring ya kak
DeleteCara reset energinya gimana gan? Dan set alarm dan bagaimana cara membaca alarmnya?
ReplyDeletemisi gan,
ReplyDelete- bisa tidak kalau supply vccnya dari 3v3
- ttlnya 3v atau 5v?,
- apa nggk masalah ttlnya 5v yg ke esp32?
terus modul pzem nya yang versi berapa?
DeleteVin itu kaya volt yang masuk ke espnya mas, jadi besar kecil vin tergantung daya yang diberikan ke esp
Deletegan apa ada tutorial yang menggunkan sensor ZMPT untuk tegangannya dan SCT 013untuk sensor arusnya ?
ReplyDelete