Problem z aktualizacją licznika PZEM004

Maniek913
Posts: 519
Joined: Thu Feb 22, 2018 9:46 pm

Post

krycha88 wrote: Sun Aug 27, 2023 8:43 pm
Maniek913 wrote: Sun Aug 27, 2023 5:22 pm Screny z konfiguracji są w pierwszym poście.
Dla starszych softów są identyczne i działają .
Ja również informowałem że aktualizacja nie rozwiązała problemu .
Jeszcze przyszło mi do głowy aby zaktualizować bibliotekę SoftwareSerial. Zobaczcie czy coś się zmieniło.
głąd generowania
You do not have the required permissions to view the files attached to this post.
Maniek913
Posts: 519
Joined: Thu Feb 22, 2018 9:46 pm

Post

Jeszcze taka ciekawostka: zostawiłem ten niedziałający licznik na noc włączony tzn. na 12h i dziś rano "zaliczył" sporo energii na trzeciej fazie :)
You do not have the required permissions to view the files attached to this post.
Maniek913
Posts: 519
Joined: Thu Feb 22, 2018 9:46 pm

Post

krycha88 wrote: Sun Aug 27, 2023 6:06 pm To ja tutaj już nie pomogę. Musicie sami skompilować przykład z biblioteki i sprawdzić czy działa poprawnie.
W przykładach nie ma licznika trzyfazowego na osobnych pinach, jest tylko przykład z jednym zestawem rx/tx i indywidualnymi adresami każdego z trzech PZEM. Jeżeli możesz to wstaw tutaj zmodyfikowany przykład w takiej opcji. Chętnie przetestuję.
krycha88
Posts: 5417
Joined: Fri Nov 16, 2018 7:25 am

Post

Maniek913 wrote: Mon Aug 28, 2023 6:36 am głąd generowania
Poprawiłem.
https://gui-generic-builder.supla.io/
pavel@
Posts: 58
Joined: Mon Oct 31, 2022 11:19 am

Post

Nie działa, konfiguracja ta sama dla nowego softu i dla starego, na starym działa poprawnie
krycha88
Posts: 5417
Joined: Fri Nov 16, 2018 7:25 am

Post

pavel@ wrote: Mon Aug 28, 2023 8:31 am Nie działa, konfiguracja ta sama dla nowego softu i dla starego, na starym działa poprawnie
To ja już nic tutaj nie zdziałam.
https://gui-generic-builder.supla.io/
pavel@
Posts: 58
Joined: Mon Oct 31, 2022 11:19 am

Post

krycha88 wrote: Mon Aug 28, 2023 8:38 am
pavel@ wrote: Mon Aug 28, 2023 8:31 am Nie działa, konfiguracja ta sama dla nowego softu i dla starego, na starym działa poprawnie
To ja już nic tutaj nie zdziałam.
A nie można przywrócić akurat tego bloku kodu z poprzednich wersji ?
krycha88
Posts: 5417
Joined: Fri Nov 16, 2018 7:25 am

Post

pavel@ wrote: Mon Aug 28, 2023 5:28 pm
krycha88 wrote: Mon Aug 28, 2023 8:38 am
pavel@ wrote: Mon Aug 28, 2023 8:31 am Nie działa, konfiguracja ta sama dla nowego softu i dla starego, na starym działa poprawnie
To ja już nic tutaj nie zdziałam.
A nie można przywrócić akurat tego bloku kodu z poprzednich wersji ?
Dobry plan tylko już dawno został zrealizowany :D nie mam sprzętu więc nie mam jak sprawdzić co się dzieje. Skompiluj własny kod który działa a ja na jego podstawie sprawdzę co jest źle w GG.
Maniek913
Posts: 519
Joined: Thu Feb 22, 2018 9:46 pm

Post

Maniek913 wrote: Mon Aug 28, 2023 6:53 am
krycha88 wrote: Sun Aug 27, 2023 6:06 pm To ja tutaj już nie pomogę. Musicie sami skompilować przykład z biblioteki i sprawdzić czy działa poprawnie.
W przykładach nie ma licznika trzyfazowego na osobnych pinach, jest tylko przykład z jednym zestawem rx/tx i indywidualnymi adresami każdego z trzech PZEM. Jeżeli możesz to wstaw tutaj zmodyfikowany przykład w takiej opcji. Chętnie przetestuję.
Ponownie proszę - mógłby ktoś poprowadzić ślepca za rączkę :? tzn. przeredagować/ napisać przykład dla licznika trójfazowego korzystającego z osobnych pinów tx/rx ? Domyślam się że trzeba użyć software serial,chyba tak:

Code: Select all

#include <SoftwareSerial.h>  // Biblioteka do komunikacji szeregowej
#include <SuplaDevice.h>

SoftwareSerial pzemSerial1(D2, D1);  // TX, RX dla modułu PZEM04 faza 1
SoftwareSerial pzemSerial2(D4, D3);  // TX, RX dla modułu PZEM04 faza 2
SoftwareSerial pzemSerial3(D6, D5);  // TX, RX dla modułu PZEM04 faza 3
ale co dalej?
Przykład z biblioteki wyglada tak :

Code: Select all

// dependence: Arduino library for the Updated PZEM-004T v3.0 Power and Energy
// meter  https://github.com/mandulaj/PZEM-004T-v30

#include <SuplaDevice.h>
#include <supla/sensor/three_phase_PzemV3_ADDR.h>

// Choose proper network interface for your card:
#ifdef ARDUINO_ARCH_AVR
// Arduino Mega with EthernetShield W5100:
#include <supla/network/ethernet_shield.h>
// Ethernet MAC address
uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
Supla::EthernetShield ethernet(mac);

// Arduino Mega with ENC28J60:
// #include <supla/network/ENC28J60.h>
// Supla::ENC28J60 ethernet(mac);
#elif defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
// ESP8266 and ESP32 based board:
#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");
#endif

#define Pzem_RX 32
#define Pzem_TX 33

void setup() {

  Serial.begin(115200);

  // Replace the falowing GUID with value that you can retrieve from
  // https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

  // Replace the following AUTHKEY with value that you can retrieve from:
  // https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

  /*
     Having your device already registered at cloud.supla.org,
     you want to change CHANNEL sequence or remove any of them,
     then you must also remove the device itself from cloud.supla.org.
     Otherwise you will get "Channel conflict!" error.
  */

  // ESP32  ThreePhasePZEMv3_ADDR(Serial prot, PZEM RX PIN, PZEM TX PIN, PZEM 1 Addr, PZEM 2 Addr, PZEM 3 Addr)
  new Supla::Sensor::ThreePhasePZEMv3_ADDR(&Serial2, Pzem_RX, Pzem_TX, 0xAA, 0xAB, 0xAC);

  // ESP32  ThreePhasePZEMv3_ADDR(Serial prot, PZEM RX PIN, PZEM TX PIN) "PZEM 1-3 Addr default to 0x01, 0x02, 0x03"
  // new Supla::Sensor::ThreePhasePZEMv3_ADDR(&Serial2, Pzem_RX, Pzem_TX);

  // ESP8266  ThreePhasePZEMv3_ADDR(PZEM RX PIN, PZEM TX PIN, PZEM 1 Addr, PZEM 2 Addr, PZEM 3 Addr)
  // new Supla::Sensor::ThreePhasePZEMv3_ADDR( Pzem_RX, Pzem_TX, 0xAA, 0xAB, 0xAC);

  // ESP8266  ThreePhasePZEMv3_ADDR(PZEM RX PIN, PZEM TX PIN) "PZEM 1-3 Addr default to 0x01, 0x02, 0x03"
  // new Supla::Sensor::ThreePhasePZEMv3_ADDR( Pzem_RX, Pzem_TX);

  /*
     SuplaDevice Initialization.
     Server address, is available at https://cloud.supla.org
     If you do not have an account, you can create it at
     https://cloud.supla.org/account/create SUPLA and SUPLA CLOUD are free of
     charge

  */

  SuplaDevice.begin(
    GUID,              // Global Unique Identifier
    "svr1.supla.org",  // SUPLA server address
    "email@address",   // Email address used to login to Supla Cloud
    AUTHKEY);          // Authorization key
}

void loop() {
  SuplaDevice.iterate();
}
krycha88
Posts: 5417
Joined: Fri Nov 16, 2018 7:25 am

Post

Pisane na kolanie bez sprawdzania czy działa i się kompiluje. Jest to przykład dla ESP8266.

Code: Select all

#include <SuplaDevice.h>
#include <supla/sensor/three_phase_PzemV3.h>
#include <supla/network/esp_wifi.h>
#include <supla/storage/littlefs_config.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/wifi_parameters.h>

Supla::ESPWifi wifi;
Supla::LittleFsConfig configSupla;
Supla::EspWebServer suplaServer;

#define PIN_RX_1     3
#define PIN_TX_1     1
#define PIN_TX_2     4
#define PIN_TX_3     5

void setup() {
  Serial.begin(115200);
  
  new Supla::Html::DeviceInfo(&SuplaDevice);
  new Supla::Html::WifiParameters;
  new Supla::Html::ProtocolParameters;

  new Supla::Sensor::ThreePhasePZEMv3(PIN_RX_1, PIN_TX_1, PIN_RX_1, PIN_TX_2, PIN_RX_1, PIN_TX_3);

  SuplaDevice.setName("ThreePhasePZEMv3");
  SuplaDevice.begin();
}

void loop() {
  SuplaDevice.iterate();
}
https://gui-generic-builder.supla.io/

Return to “GUI Generic”