Czujnik Prądu PZEM-004T V3

Witam.

Mam pewien problem z odczytam. Potrzebuje podłączyć 2 fazy… (kuchania indukcyjna). Liczniki podłączone przez diody BYS 10-90.
Adresy zmienione na 1 i 2.
Podłączenie tego z adresem 1 działa bez problemu.
Podłaćzenie tego z adresem 2 działą bez problemu.
Podłączenie 2 PZEM brak komunikacji.
Podłączenie 1 PZEM i dopięcie drugiego “w locie” komunikacja umiera (diody TX i RX mrugają na obu). Obawiam się że problemem są diody i się nie nadają. Jednak brak doświadczenie zmusza do pytania na forum :wink:
Wolałbym się upewnić że problemem są diody a nie jakaś inna bzdura.

Pokaż jak masz podłączone te diody? Powinny być wg schematu zaporowo do TX w PTZM.

obraz

Do tego dochodzi również kwestia adresacji PZEM. Używasz Tasmota czy ESPHome?

Wygląd wtyczki od strony PTZM.


Płytke mam wytrawioną tak że ja zamienie wtyczki to mi się odwraca polaryzacja diody (ale dioda nadal jest na TX). Sprawdziłem obie wersje połączenia.
Adresacja zmieniona
00:00:39.991 CMD: ModuleAddress 1
00:00:39.996 CMD: Grp 0, Cmd ‘MODULEADDRESS’, Idx 1, Len 1, Pld 1, Data ‘1’
00:00:40.001 MQT: stat/tasmota_0009A1/RESULT = {“ModuleAddress”:“Done”}
Odpowiedz wygląda OK.
Drugi oczywiscie adres ustawiony na 2.

Używam Tasmota, bo ładnie się integruje w HA.

Przy Tasmota adresowanie wykonuje się pojedyńczo podłączając każdy PZEM.

Tak dokładnie tak zrobiłem :slight_smile:.
Mała aktualizacja sprzetowa.
Udało mi się załatwić diody BAT42. Połączenia sprawdzone klikukrotnie, aby uniknąć wątpliwości ModuleAddress 1 i ModuleAddress 2 (oczywiscie tylko przy podłączonym 1 urządzeniu). W potwierdzeniu “ModuleAddress”:“Done”.
Jedyny pomysł jaki mi przychodzi do głowy to albo problem z ustawieniem adresów, ewentualnie Tasmota ma problem przy podłączonych tylko 2 PZEM.

Eh… nie da się wstrzymać publikacji, chyba znalazłem problem, ale troche mi zajmie sprawdzenie. Odezwę się za jakiś czas :slight_smile:

Niestety nie pomogło. Na jedny z PZEM zapomniałem zrobić mod 1K Ohm, co ciekawe transmisja działała, ale miałem podejrzenie, że tutaj może być problem. Niestety nie pomogło.

Koncepcje mi się kończą… za jakieś nowe z góry dzięki :slight_smile:

Jeszcze jedną nieścisłość znalazłem

Które podłączenie rezystora 1K szeregowe jest poprawne bo wydląge że na zorruno jest błąd w lutowaniu rezystora THT :]

Z rezystorem masz rację, to jest błąd. Należało by zmienić wartość R8.

Pozostaje tylko pytanie czy adresację pojedynczego PZEM robisz przy włączonym zasilaniu po stronie AC?

Rezystor THT 1K dolutowany równolegle do R8 1K, wiec jest ok.
Adresacja modułów oczywiście przy załączonym AC (bez AC brak potwiedzeania {“ModuleAddress”:“Done”}.

Zastanawiają mnie tylko diody RX i TX na PZEM’ach. Zawsze mrugają mi na obu i RX (to ok) i TX (nie powinny mrugać tylko na jednym ten którego adres wysyła Tasmota w zapytaniu)?

Jeszcze jedna rzecz przyszła mi do głowy. Korzystasz ze sprzetowego seriala, czy softowego? Może mieć wpływ na transmisje?

Swojego czasu robiłem próby na klonie NodeMCU oraz WemosD1 mini i zawsze używałem pinów oznaczonych jako TX i RX na płytkach. Chyba nie próbowałem nawet z innymi. Zawsze sprawdzam pin out dla danej płytki czy obsługuje daną funkję pod konkretnym GPIO.

Nadal obstawiam adresację lub kierunek diód.

Może spróbuj z ESPHome, to wykluczysz problem ze sprzętem.

Ja używam ESP8266 - 12F

Chyba to wersja z 1M rom, wiec żeby wyeliminować sprzęt przerzuciłęm się na pająka D1mini. Bez pozytywnych rezultatów. Powalczyłem jeszcze z użyciem innych GPIO tak jak tutaj Licznik energii PZEM-0xx power monitor - #5 przez Cezary.K - Projekty - AI-Speaker, ale żeby było ciekawiej nawet 1 szt nie chodzi, jak by coś z software nie działało.

Kierunek diód wyeliminowany, bo jak podłącze ją odwrotnie to nawet przy 1 PZEM nie ma komunikacji.
Dręczy mnie to adresowanie, ale nie moge znaleźć nigdzie gdzie moża sprawadzić adres.

A możesz podać jaką kompilację Tasmoty masz? Możę coś skopali w 12.

ESPHome przeszło mi przez głowę… ale jak skopane adresowanie to dobrze myśle że też nie ruszy? A do tego niebardzo chce mi się ESPHome ogarniać zieloniutki jestem w tym…

…ale troche doświadczenia w ESP Easy mam więc…

W pewnym sesie KROK do przodu…
…i finał :slight_smile:

Może się przyda dla potomności… już miałem się poddać… ale szkoda mi było 1 ESP na 1 PZEM… tym bardziej, że potrzebuje w sumie 6 PZEM zaprząc do pracy.

[ZAŁOŻENIE]
Problem z adresowaniem. Podejrzewam tam samo jak angler. Dzięki za upewnienie.

[ANALIZA]
Wgrałem ESP Easy (kompilacja ESP_Easy_mega_20211105_energy_ESP8266_4M1M, ma obsługe PZEM).
Dodałem urzadzenie, wybrałem PZEM, analiza:
Moduł z adresem ustawionym w tasmota na 01
ESP easy odczyt adresu:
0 - RX, TX mruga - ok
1 - RX, TX mruga - ok
2 - RX mruga - ok

Moduł z adresem ustawionym w tasmota na 02
ESP easy odczyt adresu:
0 - RX, TX mruga - ok
1 - RX, TX mruga - źle (powinno być tylko RX)
2 - RX mruga - źle (powinno być RX i TX)

[ROZWIĄZANIE]
ESP Easy
Devices → PZEM-004… → PZEM actions → Progam_address - ustawiamy sobie adres np. 1
Submit
Ważne po przeładowaniu musimy w PZEM actions zmienić opcję “Confirm address programming ?” z NO na YES i zapisać (w tym czasie podłączony tylko 1 PZEM, i zasilony z 220V)
Odpinamy PZEM, programujemy analogiznie następny…

Możemy z powrotem podłączyć do TASMOTA
i…

DZIAŁA :smiley:

Z ciekawostek ESP Easy umożliwia podłączenie więcej niz 3 PZEM…
odczytuje:
Voltage_V, Current_A, Power_W, Energy_WH (więc wszystko co potrzebne)
wady:

  • brak autowykrywania tak jak Tasmoty w HA (trzeba dodać ręcznie przez MQTT itp)
  • po zaniku zaslania trzeba poczekać około 3 odczytow zanim wartości napięcia wrócą do 0
1 polubienie

Od dłuższego czasu przyglądam się tematowy. Cały czas nie dawała mi spokoju obecność tych dodatkowych diod. Pod względem zasady działania takiej magistrali jest to nie logiczne a diody są zbędne. Układ działa tylko z diodami ponieważ maskują główny problem - niewłaściwego dobrania elementów dla pracy równoległej 3 transmiterów… do rzeczy.

pzem

W układzie pojedynczym napięcie “0” logicznego Tx określa spadek napięcia na transoptorze U1 (ok. 0.3V), podłączając diodę podnosimy ten potencjał powyżej dopuszczalnego progu. Są konieczność stosowania diod Schottky’ego ( mają spadek napięcia ok 0.3V).

W układzie wieloprzetwornikowym bez diod transoptor U1 musiałby “udźwignąć” prąd do wszystkich przetworników płynący przez rezystory R4 i LED2. Dlatego autor rozwiązania odcina diodą pozostałe ( nieaktywne przetwornik).
Moim zdaniem należ więc usunąć przyczynę czyli LED2 i rezystor R4. Aby nie stosować zewnętrznego
pullup i posiadać sygnalizację, można na JEDNYM z modułów te elementy pozostawić.

Podobnie ma się sprawa z transoptorem U3 przy logice 3.3V - prąd fotodiody jest zbyt mały i dlatego trzeba zmieniać R8, co można uzyskać zwierając LED3 (która przy 3.3V prawdopodobnie już nie świeci).

Skoro jest napisane, że ESP nie toleruje na gpio 5V to układ powinien być zasilany z 3.3V bez wględu na to, że przy 5V działa i nic się nie dzieje.

RobinI30
dzieki za zainteresowanie problemem. Aż tak dużego doświadczenia w magistralach szeregowych nie mam, z klikoma masterami i slavami. Szukając info o PZEM gdzieś przewinął mi się ten wątek. Cool-Emerald: Multidrop network for RS232
Nie wiem, czy da się bez tych diod, ale po wyjaśnieniu że problem był z adresowaniem, zrobiłem ponownie test z diodami BYS 10-90, które mi nie działały. Okazuje się że nie działają natomiast BAT42 działają…
Zgodnie z Twoim założeniem powinna działać dowolna dioda shotky, bo robi spadek napięcia.

Jeżeli chodzi o logikę to PZEM u mnie zasilany jest 3.3V (i tak w większości przypadków które widziałem). Nawet bez zmiany rezystora na 500Ohm, komunikacja przy 1 ESP działała. Zgodnie z zaleceniem zmieniłem rezystor na 500 (2x1K) żeby zwiększyć prąd diody transoptora. Nie wiem na ile pomaga, ale przypuszczam, że dioda “lepiej świeci” i nie ma zakłóceń na komunikacji.

Ale tak właśnie jest. ESP działa na 3.3V, PZEM też na 3.3V. Nie widziałem nigdzie żeby ktoś go zasilał z 3.3V

Nie dowolna tylko taka o niskim Uf, bat ma 0.3V, BYS 0.75V najlepiej gdy Uf =0.
Co pokazuje, że cały układ pracuje na granicy i jest protezą.

miało być 5V?
Mówiłem o 5V oznaczonych na złączu P2, które powinno być w przypadku podłączenia np. Atmega.

"Wyjście’’ PZEM to nie jest RS232 tylko TTL z Tx typu OC. W przypadku RS232 który jest źródłem napięcia diody są konieczne.

To była tylko taka dygresja… bo niektóre rozwiązania z neta urastają do roli dogmatu :slight_smile:

1 polubienie

OK. To fajnie że się wyjaśniło. Kłócił się nie będe wiedza nie pozwala :expressionless:

OK. Nadinterpretowałem :slight_smile:

Hm… po głębszym zastanowieniu muszę się zgodzić.

Jaky to powiedzieć… jedni zrobią działa, inni kopiują… i czasami działa :slight_smile:

Ciekawa dygresja… daje troche do myślenia.

witam jestem początkujący z HA obecnie udało mi sie uruchomić licznik na ESPHome SDM630 tyle z wstępu

Pytanie posiadam 11szt PZM-004T-100A(V3.0) jak to uruchomić w ESPHome na WeMOS D1 Mini NodeMCU ESP8266-12F ESP-12

1 Każdą płytkę muszę nadać adres jak tak to w jaki sposób ???
2 obecnie wszystkie płytki podłączyłem do 230v i zamontowałem przekładniki
3 jestem początkujący proszę o wyrozumiałość

Ad 1 - każdy PZEM musisz podpiąć pojedynczo, osobno i wtedy ustawić każdemu nowy, inny adres

Dopiero potem możesz podpiąć ich więcej.

Biorąc pod uwagę to co widać powyżej w tym wątku podłączenie ich większej ilości naraz jest problematyczne, ale jeśli masz pojęcie o elektronice, to może jakoś dasz radę…

w tym kodzie

modbus_controller:
  - id: pzem
    # The current device address.
    address: 0x1 tu zmieniać adres ???? np 0x01  a ostani adres 0x11  

i ten kod mam wgrać do NodeMCU ESP8266-12F ESP-12 co posiadam

Myk polega na tym, jeszcze raz daję linka prowadzącego do właściwej etykiety w tym kawałku dokumentacji
https://esphome.io/components/sensor/pzemac.html#changing-the-address-of-a-pzem-004t


    then:
      - lambda: |-
          auto new_address = 0x03;

i dla każdego PZEM zamiast 0x03 wstawiasz pożądany adres.

Dopiero po zaprogramowaniu różnych adresów w każdym PZEM możesz je dopiero podpiąć po kilka razem do jednej szyny (fabrycznie każdy ma 0x01).

Ten cały klocek kodu spod tej etykiety oczywiście jest potrzebny (a nie tylko fragmencik który pokazałem wyżej) oczywiście cała konfiguracja musi być kompletna (jeśli nigdy nie używałeś ESPHome to najpierw poćwicz na czymś prostszym).

Po zaprogramowaniu jednego zmieniasz adres, robisz rekompilację i podpinasz następny itd.


Mając już wszystkie z różnymi adresami (radzę opisać je czymś czego nie zetrzesz przypadkiem - marker permanentny, albo naklej nalepki z adresami) możesz i musisz wywalić ten klocek kodu do programowania adresów i zrobić standardową konfigurację dla integracji kilku (i rekompilacja).

PS Stawiam na to, że jeśli podłączysz naraz 11 sztuk to nie będzie działać (oczywiście użyj układ z diodami, albo zmodyfikuj elektronikę w PZEM, ewentualnie i jedno i drugie) dokładaj po jednym i sprawdzaj (podejrzewam, że powyżej kilku sztuk mogą być problemy, 3 sztuki raczej powinny zadziałać, bo ludzie robią w ten sposób pomiary na 3 fazach).

ok to działam

pzem004T mam już je zamontowane na stałe i opisane wiec z adresami nie będzie problemu

na ESPHome uruchomiłem już licznik sdm630 więc wiem ze kopiuj i wklej nie działa trzeba wszystko stopniowo dopisywać

mam kupione diody pytanie ze schematu z diodami "+Vdd " podpinam do 5V a co z 5V z płytki trzeba zasilić ??? na schemacie tego nie ma ??? tzn są opisane GND RX TX a co z 5V z płytki


edit:

szybkie pytanie pin RX do ??? TX do ??? gdzie podpiąć ???
do Programowania adresu

Strefa niskiego napięcia PZEM nie ma własnego zasilania.
Więc oczywiście zasilasz z zewnętrznego zasilacza, którym możesz zasilać też MCU.
Zwróć uwagę, że przy zasilaniu 5V w układzie mogą wystąpić napięcia przekraczające dopuszczalne dla GPIO w ESP.
Rozrysuj sobie schemat połączenia transoptorów to zrozumiesz co mam na myśli.
Jeśli zamierzasz podłączyć naraz więcej niż 3 sztuki, to właściwie należałoby rozważyć, czy obciążalność GPIO w MCU nie zostanie przekroczona (więc diody z pewnością nie są złym pomysłem) możesz przyjąć, że tranzystory pracują w układzie otwartego kolektora/otwartego drenu.

a co z RX i TX na czas programowania gzie go podpiąć ??

czy tylko GND i 5V na czas programowania ??? wystarczy ???

lub muszę połączyć oba kody ??? tzn kod # Example configuration entry i kod Zmiana adresu bo w tym pierwszym kodzie jest opisane RX i TX