.
there is :
#include<SoftwareSerial.h>
#include <SimpleTimer.h>
//Pustaka Blynk
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BLYNK_TEMPLATE_ID "TMPLeto2YCEq"
#define BLYNK_DEVICE_NAME "Control and Monitoring"
#define BLYNK_AUTH_TOKEN "uXhYk3WQijCNT3XWJ-jjYh9s9zS5LcEh" // Nilai token
char ssid[] = "Galaxy A22";
char pass[] = "enamenam";
SimpleTimer timer;
#define BLYNK_PRINT Serial
// Pustaka Pzem
#include <PZEM004Tv30.h>
PZEM004Tv30 pzem1(12, 14, 0x01); // Only called once over here
PZEM004Tv30 pzem2(12, 14, 0x02);
PZEM004Tv30 pzem3(12, 14, 0x03);
// Pustaka LCD
#include <LiquidCrystal_I2C.h> // library LCD
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,20,4);
// Pustaka DS18b20
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS D4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Pustka Relay
const int IN4 = 13;
// Pustaka kirim BLYNK
#define V_1 V1
#define V_2 V2
#define V_3 V3
#define C_1 V7
#define C_2 V8
#define C_3 V9
#define P_1 V13
#define P_2 V14
#define P_3 V15
void setup() {
Serial.begin(115200);
pinMode (IN4, OUTPUT);
lcd.begin(20,4);
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("Selamat Datang");
lcd.setCursor(2, 1);
lcd.print("Sistem Monitoring");
lcd.setCursor(4, 2);
lcd.print("Tugas Akhir");
lcd.setCursor(4, 3);
lcd.print("Ridho Syawali");
delay (5000);
lcd.clear ();
timer.setInterval(10000L, pzem);
}
void loop() {
pzem();
suhu();
Blynk.run();
timer.run();
}
void suhu(){
sensors.requestTemperatures();
float suhu = sensors.getTempCByIndex(0);
Blynk.virtualWrite (V16, suhu);
}
BLYNK_WRITE(V0){
bool value1 = param.asInt();
if (value1==1){
digitalWrite(IN4, HIGH);
}else{
digitalWrite(IN4,LOW);
}
}
void pzem(){
Serial.println("PZEM1=====================");
float voltage1 = pzem1.voltage();
if(!isnan(voltage1)){
Serial.print("Voltage: ");
Serial.print(voltage1); Serial.println("V");
lcd.setCursor (1,0);
lcd.print("V (R) : ");
lcd.print (voltage1);
} else {
Serial.println("Error reading voltage");
}
float current1 = pzem1.current();
if(!isnan(current1)){
Serial.print("Current: ");
Serial.print(current1);
Serial.println("A");
lcd.setCursor (2,0);
lcd.print("I (R): ");
lcd.print (current1);
} else {
Serial.println("Error reading current");
}
float power1 = pzem1.power();
if(!isnan(power1)){
Serial.print("Power: ");
Serial.print(power1);
Serial.println("W");
lcd.setCursor (3,0);
lcd.print("P (R) ");
lcd.print (power1);
} else {
Serial.println("Error reading power");
}
Serial.println();
Serial.println("PZEM2=====================");
float voltage2 = pzem2.voltage();
if(!isnan(voltage2)){
Serial.print("Voltage: ");
Serial.print(voltage2);
Serial.println("V");
lcd.setCursor (1,6);
lcd.print("V (S) : ");
lcd.print (voltage2);
} else {
Serial.println("Error reading voltage");
}
float current2 = pzem2.current();
if(!isnan(current2)){
Serial.print("Current: ");
Serial.print(current2); Serial.println("A");
lcd.setCursor (2,6);
lcd.print("I (S) : ");
lcd.print (current2);
} else {
Serial.println("Error reading current");
}
float power2 = pzem2.power();
if(!isnan(power2)){
Serial.print("Power: ");
Serial.print(power2); Serial.println("W");
lcd.setCursor (3,6);
lcd.print("P (S) : ");
lcd.print (power2);
} else {
Serial.println("Error reading power");
}
Serial.println();
Serial.println("PZEM3=====================");
float voltage3 = pzem3.voltage();
if(!isnan(voltage3)){
Serial.print("Voltage: ");
Serial.print(voltage3); Serial.println("V");
lcd.setCursor (1,13);
lcd.print("V (T) : ");
lcd.print (voltage3);
} else {
Serial.println("Error reading voltage");
}
float current3 = pzem3.current();
if(!isnan(current3)){
Serial.print("Current: ");
Serial.print(current3); Serial.println("A");
lcd.setCursor (2,13);
lcd.print("I (T) : ");
lcd.print (current3);
} else {
Serial.println("Error reading current");
}
float power3 = pzem3.power();
if(!isnan(power3)){
Serial.print("Power: ");
Serial.print(power3); Serial.println("W");
lcd.setCursor (3,13);
lcd.print("P (S) : ");
lcd.print (power3);
} else {
Serial.println("Error reading power");
}
Blynk.virtualWrite (V_1, voltage1);
Blynk.virtualWrite (V_2, voltage2);
Blynk.virtualWrite (V_3, voltage3);
Blynk.virtualWrite (C_1, current1);
Blynk.virtualWrite (C_2, current2);
Blynk.virtualWrite (C_3, current3);
Blynk.virtualWrite (P_1, power1);
Blynk.virtualWrite (P_2, power2);
Blynk.virtualWrite (P_3, power3);
Serial.println();
delay(2000);
}```