ESP32 with PZEM004 and BLYNK

Hi, everyone.
I have error "exit status 1" when compiling my ESP32 project.
I try to compile OTA and PZEM004T V30 project, It's ok. But my project is not.
Can who help me. Thanks,
This is my project: GitHub - Ankhang1107/ESP32_PZEM004_BLYNK_OTA: this project to read DHT11, PZEM004 sensor and connect to Blynk to follow sensor's values and OTA.

This does not sound like an IDE problem. I've moved your topic to a more suitable location on the forum.

Please post your complete error message (please don't forget to use code tags).

I can't open your RAR file (not sure why) and it is quite big.

Thank you for reply. Because have many libirary, so I use winraz. I will post source code below. Please check and help me.

#define BLYNK_TEMPLATE_ID           "********"
#define BLYNK_TEMPLATE_NAME         "ESP32 PMeter"
#define BLYNK_FIRMWARE_VERSION        "1.0.0"
#define BLYNK_PRINT Serial

#define APP_DEBUG

bool fetch_blynk_state = true;  //true or false
int wifiFlag = 0;
#define wifiLed   2   //D2


#include "BlynkEdgent.h"
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <HardwareSerial.h>
#include "PZEM004Tv30.h"

#if defined(ESP32)
PZEM004Tv30 pzem(Serial2, 16, 17);
#else
PZEM004Tv30 pzem(Serial2);
#endif

float voltage;
float current;
float power;
float energy;
float frequency;
float power_factor;



//For DHT11--------------------------
#define DHTPIN 23
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE); 

void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  
  Blynk.virtualWrite(V6, t);
  Blynk.virtualWrite(V7, h);
}

void checkBlynkStatus()
{ // called every 3 seconds by SimpleTimer
 
  bool isconnected = Blynk.connected();
  int i = 0;
  int last = millis();
  
  if (isconnected == false)
  {
    wifiFlag = 1;
    Serial.println("Blynk Not Connected");
    digitalWrite(wifiLed, LOW);
  }
  if (isconnected == true)
  {
    wifiFlag = 0;
    digitalWrite(wifiLed, HIGH);
    Serial.println("Blynk Connected");
    if (!fetch_blynk_state)
    {
    }
   
    bacaPZEM();
    sendtoblynk();
    sendSensor();
  }
}


BLYNK_CONNECTED()
{
  
  if (fetch_blynk_state)
  {
  }
}

BlynkTimer timer;

void setup()
{
  Serial.begin(115200);
   pinMode(wifiLed, OUTPUT);
   //For DHT11-----------------------
   dht.begin();
   timer.setInterval(1000L, sendSensor);
   //--------------------------------


   while (true) {
      Serial.println("Connecting to PZEM...");
      if(pzem.setAddress(1))
        break;
      delay(1000);  
   }
  delay(100);
  timer.setInterval(2000L, checkBlynkStatus); // check if Blynk server is connected every 2 seconds

  BlynkEdgent.begin();
  if (!fetch_blynk_state) {
    Blynk.virtualWrite(V0, voltage);
    Blynk.virtualWrite(V1, current);
    Blynk.virtualWrite(V2, power);
    Blynk.virtualWrite(V3, energy);
    Blynk.virtualWrite(V4, frequency);
    Blynk.virtualWrite(V5, power_factor);
    sendSensor();
  }
}


void bacaPZEM(){
   //PZEM
 voltage = pzem.voltage();
  if ( !isnan(voltage) ) {
    Serial.print("Voltage: "); Serial.print(voltage); Serial.println("V");
  }

  current = pzem.current();
  if ( !isnan(current) ) {
    Serial.print("Current: "); Serial.print(current); Serial.println("A");
  }
  power = pzem.power();
  if ( !isnan(power) ) {
    Serial.print("Power: "); Serial.print(power); Serial.println("W");
  }
  energy = pzem.energy();
  if ( !isnan(energy) ) {
    Serial.print("Energy: "); Serial.print(energy,3); Serial.println("kWh");
  } else {
    Serial.println("Error reading energy");
  }
  frequency = pzem.frequency();
  if ( !isnan(frequency) ) {
    Serial.print("Frequency: "); Serial.print(frequency, 1); Serial.println("Hz");
  }
  power_factor = pzem.pf();
  if ( !isnan(power_factor) ) {
    Serial.print("PF: "); Serial.println(power_factor);
  }

  Serial.println();
  // delay(3000);
}


void sendtoblynk(){
  Blynk.virtualWrite(V0, voltage);
  Blynk.virtualWrite(V1, current);
  Blynk.virtualWrite(V2, power);
  Blynk.virtualWrite(V3, energy);
  Blynk.virtualWrite(V4, frequency);
  Blynk.virtualWrite(V5, power_factor);
}

void loop() {
  BlynkEdgent.run();
  uint32_t notConnectedCounter = 0;
  while (WiFi.status() != WL_CONNECTED) {
      delay(100);
      Serial.println("Wifi connecting...");
      notConnectedCounter++;
      if(notConnectedCounter > 150) { // Reset board if not connected after 5s
          Serial.println("Resetting due to Wifi not connecting...");
          ESP.restart();
      }
}
}

And this is error:

You seem to have a problem in BlynkEdgent.h where you define the class VPinWriteOnChange again.

I don't use ESPs and I have no experience with Blynk so can help you further.

Next time, please no screenshots of errors. In IDE 1.x a button is available to copy error messages, in IDE 2.x you can right click in the output window and use "copy all".

I checked it and the seem it is no problem.
Here is error I copied

In file included from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:33:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32.h:27:7: error: template argument required for 'class BlynkWifi'
 class BlynkWifi
       ^~~~~~~~~
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32.h:96:21: error: conflicting declaration 'WiFiClient _blynkWifiClient'
   static WiFiClient _blynkWifiClient;
                     ^~~~~~~~~~~~~~~~
In file included from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\BlynkEdgent.h:8,
                 from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:30:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32_SSL.h:130:27: note: previous declaration as 'WiFiClientSecure _blynkWifiClient'
   static WiFiClientSecure _blynkWifiClient;
                           ^~~~~~~~~~~~~~~~
In file included from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:33:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32.h:97:59: error: conflicting declaration 'BlynkEsp32Client _blynkTransport'
   static BlynkEsp32Client _blynkTransport(_blynkWifiClient);
                                                           ^
In file included from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\BlynkEdgent.h:8,
                 from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:30:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32_SSL.h:131:53: note: previous declaration as 'BlynkArduinoClientSecure<WiFiClientSecure> _blynkTransport'
   static BlynkArduinoClientSecure<WiFiClientSecure> _blynkTransport(_blynkWifiClient);
                                                     ^~~~~~~~~~~~~~~
In file included from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:33:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32.h:98:3: error: invalid use of template-name 'BlynkWifi' without an argument list
   BlynkWifi Blynk(_blynkTransport);
   ^~~~~~~~~
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32.h:98:3: note: class template argument deduction is only available with -std=c++17 or -std=gnu++17
In file included from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\BlynkEdgent.h:8,
                 from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:30:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32_SSL.h:55:7: note: 'template<class Transport> class BlynkWifi' declared here
 class BlynkWifi
       ^~~~~~~~~
In file included from c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32.h:103,
                 from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:33:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkWidgets.h:20:7: error: redefinition of 'class VPinWriteOnChange<T>'
 class VPinWriteOnChange {
       ^~~~~~~~~~~~~~~~~
In file included from c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkSimpleEsp32_SSL.h:137,
                 from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\BlynkEdgent.h:8,
                 from C:\Users\Admin\Dropbox\KhangVA\An Khang\ESP32_tutorial\OTA_BLYNK\OTA\OTA.ino:30:
c:\Users\Admin\OneDrive - Hanoi University of Science and Technology\Documents\Arduino\libraries\libraries\Blynk\src/BlynkWidgets.h:20:7: note: previous definition of 'class VPinWriteOnChange<T>'
 class VPinWriteOnChange {
       ^~~~~~~~~~~~~~~~~

exit status 1

Compilation error: exit status 1

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.