Built a 3-phase power monitor that measures 3-phase current, voltage, power, power factor and energy consumption; data is uploaded to HomeAssistant for easy household power and real-time load viewing.
Three pzem004t power sensors read via serial to an ESP32-C3, then sent over Wi-Fi to HomeAssistant (self-hosted on my Raspberry Pi 4); firmware is built with ESPHome.
The board only measures phase-to-neutral voltage, not phase-to-phase voltage.
Voltage range 80-260V, current 100A, accuracy 0.5%.
You must use the PC tool to set the three PZEM-004T addresses to 0x01, 0x02, 0x03.
High voltage inside—power down before any work!
Google “HomeAssistant + ESPHome setup” for install guides.
Electronics/MCU QQ group: 2169025065
Hardware Photos
Screenshots
Schematic
PCB
3D Enclosure
Download Files
LCSC open-source project: https://oshwhub.com/zeruns/san-xiang-dian-liang-dian-can-shu-shu-ju-cai-ji-san-xiang-dian-ya-dian-liu-gong-lv-gong-lv-yin-shu-yong-dian-liang
123 Pan (no speed limit): https://url.zeruns.com/PbpP8 code: jjRr
Baidu Pan: https://pan.baidu.com/s/1XCi1AY6M1G0weNuuVJu01w?pwd=qhrc code: qhrc
Contents: enclosure 3D model, Gerber files, LCSC EDA project, PZEM-004T datasheet, PC config tool, ESPHome YAML.
Parts Purchase Links
-
Heltec CORE-ESP32C3 dev board: https://s.click.taobao.com/GsKSHxt
-
PZEM-004T module: https://s.click.taobao.com/cnHOHxt
-
HLK-10M05 PSU module: [https://s.click.taobao.com/quMNHxt](https://s.click.taobao.com/t?e=m%3D2%26s%3DdgAv%2FU%2B0Jvpw4vFB6t2Z2ueEDrYVVa64g3vZOarmkFi53hKxp7mNFhiPRfK6WZZbPvCh%2BAMbllz0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMAhscfsB2%2FyzZJq71CBMBeP%2F1SarTXhIOTsgIpc1WFZiJNubylQlnZt807FCyqLnQjr%2FIFy6BLaQXtIDT%2FPaQayIIokmpNksd4gPqhkjnepafUPBOmDY6Pj6M70AliNjwJcn7ARWQ6ocV0hb0k2TPv%2BG5KHOQOD12OHmQRHplSunscOSzLfn7zzMYl7w3%2FA2kb&union_lens=lensId%3APUB%401709028105%40210591aa_0d23_18dea035bce_- platform: pzemac
id: pzemac_C
address: 0x03
current:
name: “C-Current” # Current sensor name
voltage:
name: “C-Voltage” # Voltage sensor name
energy:
name: “C-Energy” # Energy sensor name
power:
name: “C-Power” # Power sensor name
id: C_POWER
frequency:
name: “C-Frequency” # Frequency sensor name
power_factor:
name: “C-PowerFactor” # Power factor sensor name
update_interval: 11s # Update interval is 11 seconds-
platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: “WiFi Signal dB”
id: wifi_signal_db
update_interval: 60s
entity_category: “diagnostic” -
platform: copy # Reports the WiFi signal strength in %
source_id: wifi_signal_db
name: “WiFi Signal Percent”
filters:- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: “Signal %”
entity_category: “diagnostic”
device_class: “”
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
-
status_led:
pin: GPIO8
time:
- platform: sntp
id: current_time
timezone: Asia/Shanghai
servers:- ntp.aliyun.com
- ntp.tencent.com
- stdtime.gov.hk
on_time: - seconds: 0
minutes: 0
hours: 0
days_of_month: 1
then:- pzemac.reset_energy: pzemac_A # Reset energy counter for sensor A at 00:00:00 on the first day of each month
- pzemac.reset_energy: pzemac_B # Reset energy counter for sensor B at 00:00:00 on the first day of each month
- pzemac.reset_energy: pzemac_C # Reset energy counter for sensor C at 00:00:00 on the first day of each month
on_time_sync:
then: - logger.log: “Synchronized system clock”
## Other Recommended Open-Source Projects
- STM32F030C8T6 Minimum System Board and Running Light (Schematic and PCB): [https://blog.zeruns.com/archives/715.html](https://blog.zeruns.com/archives/715.html)
- Drew an MSP430F149 Minimum System Board and Open-Sourced It: [https://blog.zeruns.com/archives/713.html](https://blog.zeruns.com/archives/713.html)
- 2007 Power Supply Contest Problem: 30–36 V Adjustable Boost DC-DC Module (UC3843): [https://oshwhub.com/zeruns/36v-sheng-ya-dcdc-mo-kuai-uc3842](https://oshwhub.com/zeruns/36v-sheng-ya-dcdc-mo-kuai-uc3842)
- STC12C5A60S2 Minimum System Board / 51 MCU Temperature Display and Temperature-Controlled Fan: [https://blog.zeruns.com/archives/721.html](https://blog.zeruns.com/archives/721.html)
- STM32F407 Standard Library Project Template with Ported U8g2 Graphics Library: [https://blog.zeruns.com/archives/722.html](https://blog.zeruns.com/archives/722.html)
- Qinheng CH32V307VCT6 Minimum System Board Open-Sourced: [https://blog.zeruns.com/archives/726.html](https://blog.zeruns.com/archives/726.html)
- LM25118 Auto Buck-Boost Adjustable DC-DC Power Module: [https://blog.zeruns.com/archives/727.html](https://blog.zeruns.com/archives/727.html)
- EG1164 High-Power Synchronous Rectification Boost Module Open-Sourced, Up to 97% Efficiency: [https://blog.zeruns.com/archives/730.html](https://blog.zeruns.com/archives/730.html)
- 4G Environmental Monitoring Node Based on Luat Air700E (Temperature, Humidity, Barometric Pressure, etc.) Uploading to Alibaba Cloud IoT Platform via MQTT: [https://blog.zeruns.com/archives/747.html](https://blog.zeruns.com/archives/747.html)
## Recommended Articles
- **Cost-Effective and Cheap VPS/Cloud Server Recommendations:** [https://blog.zeruns.com/archives/383.html](https://blog.zeruns.com/archives/383.html)
- Minecraft Server Setup Tutorial: [https://blog.zeruns.com/tag/mc/](https://blog.zeruns.com/tag/mc/)
- Sharing My Home Network Cabinet, Home Network Equipment Recommendations: [https://blog.zeruns.com/archives/732.html](https://blog.zeruns.com/archives/732.html)
- Orange Pi 3B (RK3566) Development Board Unboxing and Review: [https://blog.zeruns.com/archives/729.html](https://blog.zeruns.com/archives/729.html)
- Upgraded My PC, Changed Graphics Card to Yeston RTX3070: [https://blog.zeruns.com/archives/746.html](https://blog.zeruns.com/archives/746.html)
- Rain Cloud GPU Server Tutorial for Setting Up SD (Stable Diffusion), Build Your Own AI Art Website: [https://blog.zeruns.com/archives/768.html](https://blog.zeruns.com/archives/768.html)










