我PZEM-017已经测试完毕。测试结果如下:这个是测直流的,用在电池端口比较好用,用在光伏端测光伏不好用,经常发生数据丢失,卡死等现象。
接入方法两种:一种是加上485转ttl,a=a,b=b,然后rx-tx对着接,(不行对调)可以用;第二种是丢掉原厂的485,直接从光藕上面到数据,这个是我从国外的教程里面调回来的,(他们原来的还要加上拉电阻什么的,但是不加也能用),他们接的方法是tasmota+mqtt。


先说方法一:一个tasmota+mqtt接入的,这个类似于pzem-004,方法他们有教程,不说了,这个简单易懂。数据也比较多。今日昨天数据都有;
第二种方法是是esphome,用原生esphome的api写入代码,esphome也写有一个platform,叫pzemdc,网址如下:
https://esphome.io/components/sensor/pzemdc.html?highlight=pzemdc,很简单。
ESPhome的代码:(前面的板子,密码自己补填写)
web_server:
port: 80
button:
- platform: restart
name: system_reboot
time:
- platform: sntp
id: pezmsolar_time
uart:
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
stop_bits: 2
text_sensor:
- platform: wifi_info
ip_address:
name: system_ip
mac_address:
name: system_mac
sensor:
- platform: pzemdc
current:
name: pezmsolar Current
disabled_by_default: false
force_update: false
unit_of_measurement: A
accuracy_decimals: 3
device_class: current
state_class: measurement
voltage:
name: PZEMSOLAR Voltage
disabled_by_default: false
force_update: false
unit_of_measurement: V
accuracy_decimals: 1
device_class: voltage
state_class: measurement
power:
name: PZEMSOLAR Power
disabled_by_default: false
force_update: false
unit_of_measurement: W
accuracy_decimals: 1
device_class: power
state_class: measurement
energy:
name: PZEMSOLAR Energy
disabled_by_default: false
force_update: false
unit_of_measurement: kWh
accuracy_decimals: 3
device_class: energy
state_class: total_increasing
#更新频率时间
update_interval: 20s
#地址
address: 0x01
以上是代码,自己调试修改。
如果用在电池端:可以设计一个soc,方法类似:
#第6个字段Lambda匿名函数,solar effiency发电效率,单位是%,1050是总设计功率,id后面是实时功率
- platform: template
name: "sl_effiency"
unit_of_measurement: '%'
update_interval: 5s
lambda: |-
return ((id(${device_name}_p).state /1050) * 100.00);
如果上面的energy是累计的,你可用辅助元素来增加一个当日的电量,


如果要装入能源模块,还要增加id之类的。看他们的log的要求。
如有需求,欢迎交流。
联络方法在第一篇稿。
文章加载失败