PZEM-017 bezpośrednio do ESP-WROOM-32 ESPHome - brak odczytów

JUż się poddałem, za dużo czasu na to poświęciłem, to może spytam kogoś mądrzejszego.

Zakupiłem PZEM-017, żeby zrobic sobie podgląd i rejestrator ładowania akumulatorów samochodowych.

Wyczytałem ,że PZEM jest zintegrowany z ESPHome, więc można go bezpośrednio łaczyć do GPIO, z pominięciem konwertera. Ten model WROOM-32 wspiera 5V, wic podłączam bez żadnych modyfikacji, ale nie czyta.
Podłączałem się z komunikacją z miernika do tych UARTów. Ale oba zachowują się tak samo. Nie ma ani błędów, ani odczytów.

Po uruchomieniu się płytki , nie pokazuje się nic więcej poza tym, no chyba że odłącze kabelek, to wyskakuje wtedy błąd CRC:


INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from esp-pzem017.local using esphome API
INFO Successfully connected to esp-pzem017.local
[12:08:25][I][app:102]: ESPHome version 2022.8.3 compiled on Sep 17 2022, 12:07:36
[12:08:25][C][wifi:491]: WiFi:
[12:08:25][C][wifi:353]:   Local MAC: C8:C9:A3:CF:86:2C
[12:08:25][C][wifi:354]:   SSID: [redacted]
[12:08:25][C][wifi:355]:   IP Address: 192.168.50.10
[12:08:25][C][wifi:357]:   BSSID: [redacted]
[12:08:25][C][wifi:358]:   Hostname: 'esp-pzem017'
[12:08:25][C][wifi:360]:   Signal strength: -67 dB ▂▄▆█
[12:08:25][C][wifi:364]:   Channel: 11
[12:08:25][C][wifi:365]:   Subnet: 255.255.255.0
[12:08:25][C][wifi:366]:   Gateway: 192.168.50.1
[12:08:25][C][wifi:367]:   DNS1: 192.168.50.1
[12:08:25][C][wifi:368]:   DNS2: 0.0.0.0
[12:08:25][C][logger:275]: Logger:
[12:08:25][C][logger:276]:   Level: DEBUG
[12:08:25][C][logger:277]:   Log Baud Rate: 0
[12:08:25][C][logger:278]:   Hardware UART: UART0
[12:08:25][C][uart.arduino_esp32:107]: UART Bus:
[12:08:25][C][uart.arduino_esp32:108]:   TX Pin: GPIO17
[12:08:25][C][uart.arduino_esp32:109]:   RX Pin: GPIO16
[12:08:25][C][uart.arduino_esp32:111]:   RX Buffer Size: 256
[12:08:25][C][uart.arduino_esp32:113]:   Baud Rate: 9600 baud
[12:08:25][C][uart.arduino_esp32:114]:   Data Bits: 8
[12:08:25][C][uart.arduino_esp32:115]:   Parity: NONE
[12:08:25][C][uart.arduino_esp32:116]:   Stop bits: 2
[12:08:25][C][modbus:155]: Modbus:
[12:08:25][C][modbus:157]:   Send Wait Time: 250 ms
[12:08:25][C][pzemdc:051]: PZEMDC:
[12:08:25][C][pzemdc:052]:   Address: 0x01
[12:08:25][C][pzemdc:053]: Voltage 'PZEM-017 Voltage'
[12:08:25][C][pzemdc:053]:   Device Class: 'voltage'
[12:08:25][C][pzemdc:053]:   State Class: 'measurement'
[12:08:25][C][pzemdc:053]:   Unit of Measurement: 'V'
[12:08:25][C][pzemdc:053]:   Accuracy Decimals: 1
[12:08:25][C][pzemdc:054]: Current 'PZEM-017 Current'
[12:08:25][C][pzemdc:054]:   Device Class: 'current'
[12:08:25][C][pzemdc:054]:   State Class: 'measurement'
[12:08:25][C][pzemdc:054]:   Unit of Measurement: 'A'
[12:08:25][C][pzemdc:054]:   Accuracy Decimals: 3
[12:08:25][C][pzemdc:055]: Power 'PZEM-017 Power'
[12:08:25][C][pzemdc:055]:   Device Class: 'power'
[12:08:25][C][captive_portal:088]: Captive Portal:
[12:08:25][C][mdns:094]: mDNS:
[12:08:25][C][mdns:095]:   Hostname: esp-pzem017
[12:08:25][C][ota:085]: Over-The-Air Updates:
[12:08:25][C][ota:086]:   Address: esp-pzem017.local:3232
[12:08:25][C][api:138]: API Server:
[12:08:25][C][api:139]:   Address: esp-pzem017.local:6053
[12:08:25][C][api:143]:   Using noise encryption: NO
[12:08:28][D][api:102]: Accepted ::FFFF:C0A8:3253
[12:08:28][D][api.connection:861]: Home Assistant 2022.9.4 (::FFFF:C0A8:3253): Connected successfully

Mój config wygląda tak:

esphome:
  name: "esp-pzem017"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging

logger:
  baud_rate: 0   

# Enable Home Assistant API
api:

ota:

uart:
  tx_pin: GPIO17 #TX do złącza B  TX0 - GPIO1  TX2 - GPIO17
  rx_pin: GPIO16 #RX do złącza A  RX0 - GPIO3  RX2 - GPIO16
  baud_rate: 9600
  stop_bits: 2


sensor:
  - platform: pzemdc
    current:
      name: "PZEM-017 Current"
    voltage:
      name: "PZEM-017 Voltage"
    power:
      name: "PZEM-017 Power"
    update_interval: 5s

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
  

captive_portal:
    

W integracji ESPHome normalnie widać encje, ale wiadomo, że bez wartości.

Macie jakiś pomysł? Może faktycznie z ESP32 to nie działa bez konwertera. DOdawałem jeszcze rezystor 120Ohm pomiędzy A i B miernika, ale nic to nie dało. Miernik działa, bo jak podłączam komunikacje pod konwerter do USB w laptopie, to program mi pokazuje podłączone napięcie od strony DC.

Masz na to jakieś potwierdzenie w dokumentacji?

Tak swoją drogą PZEM-017 ma interfejs RS485

Czyli co, nie zadziała bez konwetera pomiędzy miernikiem i płytką?

No ja tam nie widzę innego interfejsu niż RS485

a żadna tania płytka prototypowa na bazie ESP32 nie ma flaków portu RS485, więc po drodze musisz użyć konwertera UART <-> RS 485

Nic nie piszą na stornie intergracji, że to ma działać przez konwerter.
Twierdzą, że pod złącze UART i ma działać.

Poczytaj o RS485 to zrozumiesz czemu nie.

Bez sensu, na stornie dedykowanej ESPHome wprowadzają ludzi w błąd.

To popraw dokumentację, gdy już to uruchomisz.

Wyraźnie jest napisane na stronie integracji:
Note
This page is incomplete and could use some work. If you want to contribute, please read the contributing guide. This page is missing:
Images/screenshots/example configs of this device being used in action.

Miałem chwilę by przekopać internet, można przerobić PZEM-017 by się dał podłączyć bezpośrednio do ESP (wywalając z niego interfejs RS485)

Mimo wszystko sugeruję użyć konwerter.

Właśnie będę go przerabiał, ale wg innego manuala. Tam trzeba wylutowac układ, dać parę rezystorów, mostek i wtedy działa bez konwertera. Zrobię to na tasmocie i dołożę czujnik temperatury baterii.

https://open-boat-projects.org/en/wifi-batteriemonitor/

Właśnie uruchomiłem swojego pzem 017 bez konwertera rs485-ttl.
Śmiga pięknie.
Oczywiście jest problem.
Ampery wyświetla dwukrotnie większe niż są w rzeczywistości.
Bocznik mam 50A.
Wysyłałem komendy żeby ustawić taki bocznik ale nic to nie zmienia.
Oczywiście soft tasmota 13.


Dla mnie nie jest oczywiste, ale może jakoś pomogę? Jaką komendę wpisywałeś i na jakich poradnikach opierasz wiedzą w tym zakresie?
Z moich doświadczeń z PZEM-004 jest fabryczne oprogramowanie do konfiguracji tych mierników. W łatwy sposób można pewnie zmienić ustawienie zakresu dla przekładnika.

Wejdź w konsole w sofcie tasmoty i ustaw wartość z miernika CurrentCal 4300 i masz wtedy właściwą, skalibrowaną wartość.

1 polubienie