跳转到内容

Peacefair PZEM-004T V3 电能监测器

NOTE

本页尚未完善,尚需补充内容。如果您希望参与贡献,请参阅我们的开发者站点。本页缺少:

  • 该设备实际使用时的图片/截图/示例配置。

pzemac 传感器平台允许您在 ESPHome 中使用 PZEM-004T V3 电能监测器(网页,数据手册)。

该传感器可以采用多种连接配置,更多信息请参阅制造商网页。

WARNING

请注意,PZEM 模块内部的计量芯片由交流侧供电,因此在 ESPHome 设备启动时它必须已经通电,否则将无法看到测量结果。

PZEM-004T 第 3 版。

WARNING

本页涉及 PZEM004T 的 V3 版本。 如需使用较早的 V1 变型,请参阅 pzem004t。

与该组件的通信通过 UART 并使用 Modbus 进行。因此您必须在配置中设置一个 uart: 条目,将 TX 和 RX 引脚设置为您开发板上的某两个引脚,并将波特率设置为 9600。

# 示例配置条目
uart:
rx_pin: D1
tx_pin: D2
baud_rate: 9600
modbus:
sensor:
- platform: pzemac
current:
name: "PZEM-004T V3 Current"
voltage:
name: "PZEM-004T V3 Voltage"
energy:
name: "PZEM-004T V3 Energy"
power:
name: "PZEM-004T V3 Power"
frequency:
name: "PZEM-004T V3 Frequency"
power_factor:
name: "PZEM-004T V3 Power Factor"
update_interval: 60s
  • current (可选): 使用传感器电流值,单位为安培。 Sensor 的所有选项。

  • energy (可选): 使用传感器的(有功)电能值,单位为瓦时。 Sensor 的所有选项。

  • power (可选): 使用传感器的(有功)功率值,单位为瓦。 Sensor 的所有选项。

  • voltage (可选): 使用传感器电压值,单位为伏。 Sensor 的所有选项。

  • frequency (可选): 使用传感器频率值,单位为赫兹。 Sensor 的所有选项。

  • power_factor (可选): 使用传感器的功率因数值。 Sensor 的所有选项。

  • update_interval (可选, Time): 检查传感器的间隔。默认为 60s。

  • address (可选, int): 当多个传感器连接到同一 UART 总线时,指定该传感器的地址。您需要手动设置每个设备的地址。默认为 1。

  • modbus_id (可选, ID): 手动指定 Modbus 集线器的 ID。

执行此动作时,将重置给定 ID 的 pzemac 设备的总电能值。

on_...:
then:
- pzemac.reset_energy: pzemac_1

您可以使用以下配置来更改传感器的地址。 您必须将 modbus_controller 的 address 设置为当前地址,并将 on_boot lambda 中的 new_address 设置为新地址。

WARNING

此操作只能执行一次!更改地址后,在使用实际传感器代码之前,应将此代码从 ESP 中移除。

esphome:
...
on_boot:
## 在启动时配置控制器设置
## 确保优先级低于 modbus_controller 的 setup_priority
priority: -100
then:
- lambda: |-
auto new_address = 0x03;
if(new_address < 0x01 || new_address > 0xF7) // sanity check
{
ESP_LOGE("ModbusLambda", "Address needs to be between 0x01 and 0xF7");
return;
}
esphome::modbus_controller::ModbusController *controller = id(pzem);
auto set_addr_cmd = esphome::modbus_controller::ModbusCommandItem::create_write_single_command(
controller, 0x0002, new_address);
delay(200) ;
controller->queue_command(set_addr_cmd);
ESP_LOGI("ModbusLambda", "PZEM Addr set");
modbus:
send_wait_time: 200ms
id: mod_bus_pzem
modbus_controller:
- id: pzem
# 当前设备地址。
address: 0x1
# 特殊地址 0xF8 是一个广播地址,任何 pzem 设备都会接受它,
# 因此如果使用此地址,请确保 uart 总线上只连接了一个 pzem 设备。
# address: 0xF8
modbus_id: mod_bus_pzem
command_throttle: 0ms
setup_priority: -10
update_interval: 30s
PZEM-004T-100A-D-P(V1.0)
  • 丝印标注为 V1.0,可能会误导用户尝试使用 pzem004t。
  • 与其他板子的一个显著区别是标有 5V、RX、TX、CF、GND 的 5 针连接器。
  • 至少在几厘米长的导线上,通过 5V 引脚供电 3.3V 时似乎可以正常工作。 此情况下无需电平转换器或更改电阻。