Translate

Monitor Daya (Arus & Tegangan) Blynk 2.0 Fitur Kendali dan Notifikasi Blynk 2.0 PZEM-004t

Monitor Daya (Arus & Tegangan) Blynk 2.0 Fitur Kendali dan Notifikasi Blynk 2.0 PZEM-004t


         Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor arus, tegangan dan daya melalui aplikasi Blynk 2.0. alat ini memiliki fitur kendali dan notifikasi melalui Blynk 2.0, jadi alat ini bisa melakukan on off beban melalui aplikasi dan ada notif juga jika terjadi sesuatu sesuai kodingnya. untuk lebih jelasnya berikut adalah program dan skemanya.


a. Skema Alat




b. Program Arduino IDE

#define BLYNK_PRINT Serial

#define BLYNK_TEMPLATE_ID "TMPL6wOC--xIt"
#define BLYNK_TEMPLATE_NAME "monitor daya"
#define BLYNK_AUTH_TOKEN "q9HmPp9dHXPjalYVO9cymW30_imbh4Px"

#include <SPI.h>
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SoftwareSerial.h>
#include <PZEM004Tv30.h>
#include <LiquidCrystal_I2C.h> 

LiquidCrystal_I2C lcd(0x27,16,2); 
 
PZEM004Tv30 pzem(D7,D8); 

float voltage;
float current;
float power;
int pinValue;

BlynkTimer timer;

char ssid[] = "hotspothpku";
char pass[] = "123456789";


BLYNK_WRITE(V3)
{
  pinValue = param.asInt();   

  if(pinValue == 1){
    digitalWrite(D6, LOW);
  }
  
  if(pinValue == 0) {
    digitalWrite(D6, HIGH);
    Blynk.logEvent("listrik_padam");
    Serial.print("LISTRIK PADAM"); 
  }
  
//  Serial.print("button value is: "); 
//  Serial.println(pinValue);

}


void kirimdata()
{
  Blynk.virtualWrite(V0,voltage);
  Blynk.virtualWrite(V1,current);
  Blynk.virtualWrite(V2,power);
}


void setup() {
  Serial.begin(9600);
  lcd.begin();  
  lcd.clear();
  lcd.noCursor(); 
  pinMode(D6,OUTPUT);
  
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  timer.setInterval(1000L, kirimdata);

}


void loop() {
 
voltage = pzem.voltage();
current = pzem.current();
power = pzem.power();
   
lcd.setCursor(0,0);
lcd.print("V/I:");
lcd.print(voltage);
lcd.print("/");   
lcd.print(current);
lcd.print("  ");

lcd.setCursor(0,1);
lcd.print("P:");   
lcd.print(power);
lcd.print("  ");

Blynk.run();
timer.run(); // Initiates BlynkTimer

if(power  >= 20.0){ //jika daya lebih dari 20 watt
    digitalWrite(D6, HIGH); //off listrik
    Blynk.logEvent("listrik_padam");
    Serial.print("LISTRIK PADAM");   
}

delay(1000);
}



c. Interface Blynk 2.0







d. VIDEO HASILNYA




No comments:

Post a Comment