Thank you. Will try it out
Hey pod
Do you have a wiring digram for this?
regards
Thanks for that?
Can i use any Schottky Diode?
Thanks for that kinda obvious and i didnt see it sorry
Everyone mentions NodeMCU
am i able to get away with a wemos with 3 PZEM?
Yes, virtually every esp (8266 or 32) should do the trick.
Hello, is it possible to use PZEM-004T with Shelly EM 50A Current Transformer Clamp?
Probably not. The pzem004t comes with a coil or clamp included and that is probably factory calibrated to deliver a good accuracy. Also pzem004t versions only exist ether with 10A or 100A coils/clamps so a 50A clamp will most likely deliver wrong values.
If I am not mistaken you schematic is not quite correct.
From my understanding the point of the diodes is to protect Wemos Rx pin from overvoltage(5V from PZEM004T). Wemos pins are 3.3V tolearant. So you need to create 5V to 3.3V logic level shifter using those diodes and pull up resistor. The way you connected pull-up resistor (on 5V rail) defeats the purpose of the diodes. Should be connected to 3.3V.
ESP Pins logic is indeed 3.3V but they are 5V tolerant.
I typically use all sensors/actors that support 5V directly with esp’s since years without any problems. I also use pzem004t’s without any level shifter and they work a treat.
Would there be any issue with extending the wires on the split core ct clamp?
Hello there, do i need to do for each PZEM at start-up and then do the normal configuration?
I don’t think so.
Here is how I made my devices.
So far I made 10 of these. I’m using a generic bar soap case as an enclosure. Soap cases are less than 1 USD.
I’m using a cheap bidirectional 5V-3V digital converter module to power the ESP01 with 5V and also to allow bidirectional communication with 5V serial TTL with PZEM. Also I’m using a simple USB TTL converter for ESP01 for programming. I’ve added a switch to put it into programming mode and a button to reset.
Power supplies are 5V USB chargers. I bought 25 of them from Amazon at 1 USD each when they were on sale. They are about 5 USD each now which is still a bit cheaper than they can go for.
I’m using computer power cables with IEC connectors. I cut the IEC connector and add a female mains connector. I using cable ties to keep the power cables from moving.
The way I wired the PZEM module allows me to measure its own consumption as well as the 5V power supply in addition to the load.
Here is the ESPHome code.
substitutions:
device_description: "Fridge"
esphome:
name: powermeter-10
comment: '${device_description}'
esp8266:
board: esp01_1m
# Enable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
ota:
password: "*****"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Powermeter-10 Fallback Hotspot"
password: "*****"
captive_portal:
uart:
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
modbus:
sensor:
- platform: pzemac
current:
name: "PM-${device_description} Current"
voltage:
name: "PM-${device_description} Voltage"
power:
name: "PM-${device_description} Power"
energy:
name: "PM-${device_description} Energy"
frequency:
name: "PM-${device_description} Frequency"
power_factor:
name: "PM-${device_description} Power Factor"
update_interval: 2s
Here are the pictures:
Hi, I assembled the circuit as shown in the previous messages and once mounted in the electrical panel it ran smoothly for 2 days. This morning I realized that the data was no longer available and even restarting it did not solve the problem. I disassembled the meter and I did not notice any hardware problems, so I reconnected it but after some time the led of the nodemcu started flashing very quickly and then it went out. It hasn’t given any signs of life since and I can’t even flash the firmware again. What may have happened? My configuration is this:
esphome:
name: "pmeter"
esp8266:
board: nodemcuv2
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "*********"
ota:
password: "*****"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Power-Meter Fallback Hotspot"
password: "*****"
captive_portal:
uart:
- id: ubus1
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
stop_bits: 1
time:
platform: sntp
id: my_time
on_time:
- seconds: 57
minutes: 59
hours: 23
then:
- sensor.template.publish:
id: template_pMeter_veille
state: !lambda return id(pMeter_power_of_day).state;
sensor:
#### PZEM-004T V3 ####
- platform: pzemac
address: 1
current:
name: "Power Meter - Corrente"
accuracy_decimals: 2
voltage:
name: "Power Meter - Tensione"
accuracy_decimals: 2
power:
name: "Power Meter - Potenza Attiva"
unit_of_measurement: W
accuracy_decimals: 2
id: pMeter_power
frequency:
name: "Power Meter - Frequenza"
unit_of_measurement: Hz
accuracy_decimals: 2
power_factor:
name: "Power Meter - Fattore di potenza"
accuracy_decimals: 2
id: pMeter_power_factor
energy:
name: "Power Meter - Energia"
unit_of_measurement: Wh
accuracy_decimals: 1
id: pMeter_energy
update_interval: 5s
- platform: template
name: "Power Meter - Potenza cumulativa"
unit_of_measurement: "kWh"
accuracy_decimals: 1
update_interval: 5s
icon: mdi:power
lambda: return (( (id(pMeter_energy).state)/1000.0));
- platform: total_daily_energy
name: "Power Meter - Energia giornaliera"
power_id: pMeter_power
unit_of_measurement: "kWh"
accuracy_decimals: 2
id: pMeter_power_of_day
filters:
# Multiplication factor from W to kW is 0.001
- multiply: 0.001
icon: mdi:counter
- platform: template
name: "pMeter_veille"
id: template_pMeter_veille
unit_of_measurement: "kwh"
accuracy_decimals: 2
icon: mdi:power
update_interval: 10s
- platform: template
name: "Power Meter - Potenza Apparente"
id: pMeter_power_apparente
unit_of_measurement: "VA"
accuracy_decimals: 2
update_interval: 5s
icon: mdi:power
lambda: return ((id(pMeter_power).state/id(pMeter_power_factor).state));
- platform: template
name: "Power Meter - Potenza Reattiva"
id: pMeter_power_reactive
unit_of_measurement: "VAr"
accuracy_decimals: 2
update_interval: 5s
icon: mdi:power
lambda: return (( sqrt( (id(pMeter_power_apparente).state)*(id(pMeter_power_apparente).state) - (id(pMeter_power).state)*(id(pMeter_power).state) ) ));
- platform: wifi_signal
name: "WiFi Power Meter - Potenza segnale wifi"
update_interval: 10s
- platform: uptime
name: "up"
id: uptime_sec
switch:
- platform: restart
name: "Power Meter - Riavvio"
binary_sensor:
- platform: status
name: "Power Meter - Stato"
text_sensor:
- platform: template
name: Power Meter - Uptime
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
icon: mdi:clock-start
update_interval: 113s
How are you converting 3.3V - 5V serial communication?
I would like to replicate your project, however, I didn’t find the diagram. Is there any? What module has been used? thanks