Induction motor 3 phase monitoring and controlling with Blynk 2.0

.
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);
}```

@Doo Please edit your post, using the pencil icon at the bottom, and add triple backticks at the beginning and end of your code so that it displays correctly.
Triple backticks look like this:
```

Copy and paste these if you can’t find the correct symbol on your keyboard.

Pete.

1 Like

this my component :
3 PZEM-004t
1 DS18b20
1 module relay 4 channel
NodeMCU ESP8266
MCB 3 phase and 1 phase
1 magnet contactor

this :

There are numerous issues with your code, but what exactly is your question?

Pete.