Monitoring Tegangan Arus Daya Freq 2 Buah PZEM-004t dan Kendali Relay via IOT Blynk 2.0
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengukur arus dan tegangan menggunakan sensor PZEM-004t dan juga bisa kendali relay via IOT Blynk untuk lebih jelasnya berikut adalah koding dan skemanya.
1. Skema
2. Program Arduino IDE
#define BLYNK_TEMPLATE_ID "TMPL67fgTTbjjg"
#define BLYNK_TEMPLATE_NAME "monitor arus tegangan"
#define BLYNK_AUTH_TOKEN "a4sgOvXoyxVJ1LmTqXdl_oSL0TYhDwsA"
#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <HardwareSerial.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <PZEM004Tv30.h>
#include <LiquidCrystal_I2C.h>
#define RXD2 16
#define TXD2 17
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line display
PZEM004Tv30 pzem(&Serial); //(RX,TX) connect to TX,RX of PZEM
PZEM004Tv30 pzem2(&Serial2); //(RX,TX) connect to TX,RX of PZEM
float voltage1;
float current1;
float power1;
float energy1;
float biaya;
float voltage2;
float current2;
float power2;
float energy2;
int relay = 19;
int ssr = 27;
float selisih;
int btresetx;
int freq1;
int freq2;
int pinValue;
BlynkTimer timer;
char ssid[] = "hotspothpku";
char pass[] = "1234567890";
BLYNK_WRITE(V8)
{
pinValue = param.asInt();
if(pinValue == 1){
digitalWrite(relay, LOW);
}
if(pinValue == 0) {
digitalWrite(relay, HIGH);
}
}
void sendSensor()
{
Blynk.virtualWrite(V0, voltage1);
Blynk.virtualWrite(V1, current1);
Blynk.virtualWrite(V2, power1);
Blynk.virtualWrite(V3, freq1);
Blynk.virtualWrite(V4, voltage2);
Blynk.virtualWrite(V5, current2);
Blynk.virtualWrite(V6, power2);
Blynk.virtualWrite(V7, freq2);
delay(1000);
}
void setup() {
Serial.begin(9600);
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
lcd.begin();
lcd.clear();
lcd.noCursor();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(1000L, sendSensor);
pinMode(relay,OUTPUT);
}
void loop() {
voltage1 = pzem.voltage();
current1 = pzem.current();
power1 = pzem.power();
freq1 = pzem.frequency();
voltage2 = pzem2.voltage();
current2 = pzem2.current();
power2 = pzem2.power();
freq2 = pzem2.frequency();
lcd.setCursor(0,0);
lcd.print("V12:");
lcd.print(voltage1);
lcd.print("/");
lcd.print(voltage2);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("I12:");
lcd.print(current1);
lcd.print("/");
lcd.print(current2);
lcd.print(" ");
Blynk.run();
timer.run();
delay(100);
}
3. VIDEO HASILNYA


No comments:
Post a Comment