Translate

Monitoring Tegangan Arus Daya Freq 2 Buah PZEM-004t dan Kendali Relay via IOT Blynk

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