Cześć, mam PZEM-004T V3 i już podpiąłem go i działa z ESP32
mam trzy takie czujniki i pytanie jak podpiąć je wszystkie do jednego ESP32
Chcę monitorować pobór prądu na 3 fazach
Można z Tasmota, lecz z płytką ESP32 może być problem. Tasmota od niedawna wspiera ten moduł.
Proponuję pod ESP8266.
Poradnik:
https://zorruno.com/w/EnergyMonitoringPZEM004T
Jest również wsparcie dla PZEM-004T pod ESPHome ale z 3-fazowym nie śledziłem tematu.
Właśnie korzystam z esphome
spróbuję podłączyć tak jak na tym schemacie
tylko diody tu są chyba w złą stronę wpięte. Powinny być na odwrót
Nie zmieniaj, są prawidłowo. W esphome będziesz miał pewnie problem przy podłączaniu kolejnego miernika. W Tasmota jest to ogarnięte przez adresowanie kolejnego komendą ModuleAddress
Miłej lektury:
A tu wyjaśnienie dlaczego diody są prawidłowo:
Myślałem ze to zwykła dioda prostownicza
Myślisz że diody BAT42 będą dobre ?
Muszą być szybkie, czyli impulsowe. BAT42 będzie ok. Koniecznie zwróć uwagę na procedurę adresacji kolejnego PZEM’a.
Nie wiem czy w ogóle ESPHome obsługuje taką funkcjonalność dla PZEM-004T ale informacja o adresowaniu ciekawi. Miałem na myśli Tasmota, bo to jest sprawdzone i działa. Nie napotkałem nigdzie wzmianki o działającym pod ESPHome układzie dla trzech faz. Może będziesz pierwszy. Te mierniki używają specyficznego protokołu.
@angler
W przykładowej konfiguracji adresu nie ma, ale w opisie już jest - dla v3 (bo to przeoczyłem ) dokumentacja jest tam:
i parametr nazywa się address
@wasacz
czyli mniej więcej tak jak zamieściłeś na obrazku, tylko wcięcia w yaml’u masz nieprawidłowe, na “moje oko” to powinno wyglądać tak:
sensor:
- platform: pzemac
address: 1
current:
name: "faza 1"
update_interval: 5s
- platform: pzemac
address: 2
current:
name: "faza 2"
update_interval: 5s
- platform: pzemac
address: 3
current:
name: "faza 3"
update_interval: 5s
a tam jest opisane jak zmienić adresy modułów
(fabrycznie każdy ma adres 248)
Próbowałem zmienić adresy czujników,
zmieniłem dwa czujniki na 0x01 i 0x02
niestety nie są wykrywane
zmieniałem adres podłączając ich do 230V
Może na jakiś inny adres zmienić ?
A i jak w konfiguracji ustawie address: 3 to oznacza adres 0x03
Akurat liczby 1, 2 i 3 to hex 0x01, 0x02 i 0x03, ale dla wartości większych od 10 używam po prostu kalkulatora.
Dobra odpuszczam temat. Może się da ale już mnie szlak trafia z tym PZEM-004T V3
Zrobię to po prostu na trzech esp i będzie spokój.
Dodam że używam jeszcze WT32 ethernet które fajnie działa po kablu i kosztuje 28zł na ali.
Z Tasmota na ESP8266 działa, SPRAWDZONE.
Wszystko zrobiłem wg poradnika, który Ci podałem ale widzę, że nikt linku nie otwierał.
Ok. udało się i to na esphome
bo cewka będzie tak jakieś 1,5m od PZEMa
czyli będę musiał przedłużyć przewód.
Jakiego przewodu użyć do tego ?
Zwykły dwu żyłowy, skrętka ?
Genialnie by było, gdybyś opisał jak rozwiązałeś swój problem.
Na przekładniku prądowym powinna być nadrukowana wartość przekładni, zapewne jest to 1/1000 (czyli jeśli przewidujesz prąd obciążenia 100A to na wyjściu transformatorka, czyli tej cewki będzie płynęło 0,1A o ile zgadłem stosunek przekładni).
Kabel połączeniowy powinien być miedziany o przekroju nie mniejszym od fabrycznego (skrętka raczej odpada).
Również chciałbym poznać jak Ci @wasacz udało się uruchomć układ z Esphome i czy udało się z jednym modułem ESP?
Przewody w przekładnikach z Chin cienkie jak włos… Zastosuj jakiś 2x0,5mm2 i będzie dobrze.
ok to opowiadam
Po pierwsze zmiana adresu przez klona arduino mega. Można pewnie użyć uno ale trzeba soft serial.
daje tu bibliotekę
PZEM-004T-v30-master.zip (14,7 KB)
I bardzo ważna rzecz
#include <PZEM004Tv30.h>
PZEM004Tv30 pzem(&Serial3);
void setup() {
Serial.begin(115200);
}
uint8_t addr = 0x01; // tutaj wpisz adres
// w moim przypadku dla trzech czujników 0x01 0x02 0x03
void loop() {
pzem.setAddress(addr);
Serial.print("Current address:");
Serial.println(pzem.getAddress());
Serial.println();
// if(++addr == 0xF8) // to trzeba wywalić !!!!!
// addr = 0x01; //
delay(1000);
}
ten fragment
if(++addr == 0xF8)
addr = 0x01;
trzeba to wywalić bo wgrywał się losowy adres.
WAŻNE trzeba podłączyć 230V do tych czujników podczas wgrywania adresu !!!
Jak to już mamy to trzeba to tak podłączyć do esp
użyłem diody Schottky BAT42 30V 100mA
ważny jest ten rezystor 10k ohm bez niego czasami nie działało
.
Tu mam całą konfiguracje.
# Example configuration entry
uart:
rx_pin: 15
tx_pin: 14
baud_rate: 9600
stop_bits: 2
sensor:
- platform: pzemac
address: 0x01
voltage:
name: "Voltage 1"
current:
name: "Current 1"
power:
name: "Power 1"
energy:
name: "Energy 1"
frequency:
name: "Frequency 1"
power_factor:
name: "Power Factor 1"
update_interval: 1s
- platform: pzemac
address: 0x02
voltage:
name: "Voltage 2"
current:
name: "Current 2"
power:
name: "Power 2"
energy:
name: "Energy 2"
frequency:
name: "Frequency 2"
power_factor:
name: "Power Factor 2"
update_interval: 1s
- platform: pzemac
address: 0x03
voltage:
name: "Voltage 3"
current:
name: "Current 3"
power:
name: "Power 3"
energy:
name: "Energy 3"
frequency:
name: "Frequency 3"
power_factor:
name: "Power Factor 3"
update_interval: 1s
.
trzeba było dodać stop_bits: 2 oraz adres każdego czujnika
update_interval mam na 1s i działa dobrze
tx i rx pin to w każdym esp inaczej to wygląda
ja używam WT32 Ethernet i działa po kablu eth !!!
Dodam jeszcze że podczas wgrywania adresu oraz podczas mierzenia. powinny migać dwie diody na PZEM.
.
Czyli jestem pierwszy ?
Z Esphome chyba tak. Ja popełniłem ten licznik dla trzech faz ale z Tasmota. Nie zmieścił się do rozdzielnicy i leży w szufladzie. Nie wiem jak jest ze stabilnością w czasie. Testy trwały ok 2h.
Podejrzewam, że w PL tak sam nie mam PZEM wcale (tak mi elektrycy przygotowali instalację, że nie ma szans na montaż przekładników o czym się przekonałem już po zakupie innego rozwiązania (na z-wave, które jest w dziale ogłoszenia…).