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.