EaSun MQTT měření pomocí PZEM017 DC a PZEM004 AC - easun.eu

EaSun MQTT měření pomocí PZEM017 DC a PZEM004 AC

Právě se nacházíte: Home / vyvoj / 

EaSun - MQTT měření zdrojový kod pro ESP32

 

// http://EASUN.eu --------------------------------------------- http://POWMR.eu
//------------------------------------------------------------------------------
// 2023 © 2025 - Autor: Pavel Kunor - fanet@email.cz , obchod@fanet.cz
//------------------------------------------------------------------------------
/*
ESP32 pin connected to PZEM017 DC PZEM004 AC
     OLED PIN
          SCL - 22
          SDA - 21
     PZEM017 1
          RX - 16
          TX - 17
     PZEM004 1 - 2
          RX - 04
          TX - 15
*/
#include
#include
//------- prace s SPIFFS pameti ESP32 --------
#include
//Systém SPIFFS je třeba naformátovat pouze při prvním spuštění
#define FORMAT_SPIFFS_IF_FAILED true
//------- WebServer --------------------------------------
#include
#include
AsyncWebServer server(80);
//------- Web klient pro predavani parametru ---------------
#include
//------- OLED -------------------------------------------
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
// 0X3C+SA0 - 0x3C or 0x3D
#define I2C_ADDRESS 0x3C
// Define proper RST_PIN if required.
#define RST_PIN -1
SSD1306AsciiWire oled;
//------- MQTT server ------------------------------------
#include
int brookerClinet = 0;
//PicoMQTT::Client mqtt("test.mosquitto.org");//klient posila data externe
PicoMQTT::Server mqtt;//Server mqtt(9000);nastaveni portu


//---- Nastaveni WiFi zakladni parametry
const char* parameter_string = "VstupniData";
const char* parameter_string2 = "VstupniData2";
//------- Nastaveni MQTT ---------------------------------
const char* parameter_string3 = "VstupniData3";//IP adres MQTT brokeru pro MQTT klient
const char* parameter_string8 = "VstupniData8";
const char* parameter_string9 = "VstupniData9";
const char* parameter_string10 = "VstupniData10";
const char* parameter_string11 = "VstupniData11";
const char* parameter_string12 = "VstupniData12";
const char* parameter_string13 = "VstupniData13";
const char* parameter_string14 = "VstupniData14";
const char* parameter_string15 = "VstupniData15";
const char* parameter_string16 = "VstupniData16";
const char* parameter_string17 = "VstupniData17";
const char* parameter_string18 = "VstupniData18";
//Cas na zasilani dat z MQTT
const char* parameter_string20 = "VstupniData20";
//Koeficient pro sondy na mereni elektriny
const char* parameter_string21 = "VstupniData21";
const char* parameter_string22 = "VstupniData22";
//--------------------------------------------------------
int CasMqtt;
//--------------------------------------------------------
const char* ssid = "";const char* password = "";
//--------------------------------------------------------
const char* broker = "null";//adresa brokeru (MQTT serveru)
int port = 1883;//port pro příjem MQTT komunikace
//--------------------------------------------------------
//Solarni vyroba REVOII ----------------------------------
String topic0  = "null";String topic0a  = "null";String topic0b  = "null";
//Spotreba REVOII ----------------------------------------
String topic1  = "null";
//CEZ odber REVOII ---------------------------------------
String topic1a  = "null";String topic1b  = "null";
//baterie REVOII -----------------------------------------
String topic2  = "null";String topic2a  = "null";String topic2b  = "null";
String topic2Amp  = "null";String topic2kWh  = "null";
//Prijem MQTT zprav externe ------------------------------
String NovaZprava = "easun/klacitko"; String HodnotaZpravy;
//---- Nastaveni MQTT ------------------------------------
int JakLAN; int JakWiFi; String WiFiIP; String WiFiMac;

//DEKLAROVÁNÍ DALŠÍCH PROMĚNNÝCH--------------------------
  int cezW;int cezV;int solarW;float solarA;int solarV;int loadW;//MQTT
  int batteryW; float batterykWh; float batteryV; float batteryA; int batterySOC;
  
  int counter=0;
  float koeficient = 1; //2.2437 jsem mel nastaveno
  float koeficientL = 1; //2.2437 jsem mel nastaveno
  int NeRestartuj;

//Cteni dat ze senzoru PZEM004 ---------------------------
  float voltage1 = 0;float current1 = 0;float power1 = 0;
  float energy1 = 0;float frequency1 = 0;float pf1 = 0;
//--------------------------------------------------------
  float voltage2 = 0;float current2 = 0;float power2 = 0;
  float energy2 = 0;float frequency2 = 0;float pf2 = 0;
//Cteni dat ze senzoru PZEM004 ---------------------------
  #include
  PZEM004Tv30 pzem1(&Serial2, 15, 4, 0x06);//PZEM-004T 100A civka
  PZEM004Tv30 pzem2(&Serial2, 15, 4, 0x07);
//------- PZEM07 + serial ---------------------------------
//#define RX1 16
//#define TX1 17

#define RX2 5
#define TX2 18
HardwareSerial hwSerial(1);
//HardwareSerial hwSerial1(3);

#include
  static uint8_t pzemSlaveAddr2 = 0x01;
  static uint16_t NewshuntAddr2 = 0x0000;
  ModbusMaster node2;
  float PZEMVoltage2 = 0;
  float PZEMCurrent2 = 0;
  float PZEMPower2 = 0;
  float PZEMEnergy2 = 0;

  int pzem01 = 1; int pzem02 = 1;

//---- Verze fimware -------------------------------------
String firmwareV = "6.00"; //Firmware version EaSun.eu ---


//---- html stranky --------------------------------------
String wifi_html; String wifi2_html; String mqtt_html;
String ok_html; String webrestart;
//--------------------------------------------------------
const char hlavicka[] PROGMEM = R"rawliteral(

...................................................

 


Pro zkoušení doporučuji např. MQTT Explorer


 

 

 

 

 

 

 


Vložte komentář

 
 .