『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 6334|回复: 16

[硬件DIY] HA 穷折腾(四)DIY智能电表

[复制链接]

7

主题

114

帖子

1056

积分

论坛DIY达人

积分
1056
金钱
932
HASS币
60
发表于 2023-3-6 16:48:31 | 显示全部楼层 |阅读模式
本帖最后由 dianxin11 于 2024-4-13 22:22 编辑

海鲜市场淘到一个有协议的1p电表,价格美丽,趁着过年时间充裕,DIY了一个智能电表。

所需材料

  • DDSU1778未知品牌带协议1p电表。价格 90元5个,平均18一个。
  • 1p空开1个,PDD3元一个。
  • 485转ttl模块,淘宝2元一个。
  • ams1117 3v模块 1元。
  • esp01s模块一个 5元。
  • 船型开关 算1元。
  • 5v报废充电头。

合计30元。

3691678084905_.pic_副本.jpg

电表相关资料

这个电表默认的就是Modbus-RTU协议,不过没有资料,地址是我用串口工具一点点调试出来的,有不正确的地方望指正。

第一屏和第二屏显示的是电表的地址。第一屏是低6位,第二屏高6位。共12位地址。测试后发现几块表默认地址都是0x000000000001和电表侧面标识一致。
3581678081805_.pic_副本.jpg

第三屏显示的是串口速率,要根据这里的数据配置串口通信速率。
3611678081806_.pic_副本.jpg

第四屏显示的是用电量。后面分别电压、电流、功率因数、频率。
3591678081805_.pic_副本.jpg

硬件及接线

  • 5v充电头接ams1117,输出3.3v分别给esp01和485转ttl模块供
  • esp01的tx接485模块的tx,rx接rx。
  • 485模块的A,B分别接电表的5,6口。
  • 将接好的模块放入提前掏空的空开中。

成品效果如下:
3661678081831_.pic_副本.jpg

3651678081830_.pic_副本.jpg

esphome配置文件

substitutions:
  device_name: "ddsu1778_01"

esphome:
  name: ${device_name}

esp8266:
  board: esp01_1m

# Enable logging
logger:
  baud_rate: 0

# 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: "Ddsu1778-01 Fallback Hotspot"
    password: ""

captive_portal:

uart:
  id: ${device_name}_uart
  tx_pin: 1
  rx_pin: 3
  baud_rate: 2400
  # parity: even
  stop_bits: 2

modbus:
  id: ${device_name}_modbus
  send_wait_time: 200ms

modbus_controller:
  - id: ${device_name}_modbus_controller
    modbus_id: ${device_name}_modbus
    address: 0x01
    command_throttle: 200ms
    setup_priority: -10
    update_interval: 30s

sensor:
  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_modbus_u
    name: U #电压
    address: 0x06
    #register_count: 2
    unit_of_measurement: V
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1
    device_class: voltage

  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_modbus_i
    name: I #电流
    address: 0x08
    #register_count: 2
    unit_of_measurement: A
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
    device_class: current

  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_modbus_p
    name: P #瞬时总有功功率
    address: 0x09
    #register_count: 2
    unit_of_measurement: W
    register_type: holding
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1
    device_class: power

  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_modbus_pf
    name: PF #功率因数
    address: 0x0B
    #register_count: 2
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
    device_class: power_factor

  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_modbus_freq
    name: Freq #频率
    address: 0x0C
    #register_count: 2
    unit_of_measurement: Hz
    register_type: holding
    value_type: U_WORD
    filters:
      - multiply: 0.01
    accuracy_decimals: 2

  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_modbus_ep
    name: Ep #总有功电能
    address: 0x03
    #register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - median:
          window_size: 3
          send_every: 3
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: ${device_name}_modbus_controller
    id: ${device_name}_modbus_ep1
    name: Ep1
    address: 0x01
    #register_count: 2
    unit_of_measurement: kWh
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 2
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.01

Ep 和Ep1两个读数一致(目前),不知道哪个才是总有功电能。

WX20230306-163406@2x.png

参考文章 https://github.com/liwei19920307/ESP485

评分

参与人数 6金钱 +53 HASS币 +20 收起 理由
roc_box + 5 我来瀚思就为看你!
Ari + 2 高手,这是高手!
gx19970920 + 8 感谢楼主分享!
flyice + 8 感谢楼主分享!
+ 20 + 20 终于等来了更新~
sorrypqa + 10 膜拜大神!

查看全部评分

回复

使用道具 举报

51

主题

1340

帖子

5600

积分

论坛DIY达人

积分
5600
金钱
4260
HASS币
20
发表于 2023-3-6 18:48:26 | 显示全部楼层
实在是牛,我之前买过几个类似的,没任何标识的电表,现在连怎么接线都忘记了........
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2023-3-6 19:13:17 | 显示全部楼层
另外,大神,这应该是第四期了
回复

使用道具 举报

7

主题

114

帖子

1056

积分

论坛DIY达人

积分
1056
金钱
932
HASS币
60
 楼主| 发表于 2023-3-6 21:11:53 | 显示全部楼层
囧 发表于 2023-3-6 19:13
另外,大神,这应该是第四期了

哈哈,过个年过懵了,感谢囧大帮忙改正。我的笔记里少记录了一篇,我给忘记了。
回复

使用道具 举报

11

主题

184

帖子

1585

积分

金牌会员

Rank: 6Rank: 6

积分
1585
金钱
1401
HASS币
0
发表于 2023-3-7 11:01:30 | 显示全部楼层
ep应该是当前总电量
ep1应该是上月总电量
回复

使用道具 举报

7

主题

114

帖子

1056

积分

论坛DIY达人

积分
1056
金钱
932
HASS币
60
 楼主| 发表于 2023-3-7 20:04:17 | 显示全部楼层
落花萧然 发表于 2023-3-7 11:01
ep应该是当前总电量
ep1应该是上月总电量

应该不是,我跑几个月了,读数目前还是一样的。
回复

使用道具 举报

3

主题

119

帖子

1175

积分

金牌会员

Rank: 6Rank: 6

积分
1175
金钱
1056
HASS币
0
发表于 2023-3-14 16:00:53 | 显示全部楼层
这真是高手
回复

使用道具 举报

6

主题

106

帖子

479

积分

中级会员

Rank: 3Rank: 3

积分
479
金钱
373
HASS币
0
发表于 2023-8-10 09:17:49 | 显示全部楼层
猛人啊,感谢分享!!!
回复

使用道具 举报

0

主题

6

帖子

66

积分

注册会员

Rank: 2

积分
66
金钱
60
HASS币
0
发表于 2023-8-13 18:13:02 | 显示全部楼层
大佬图挂了,能否补个图?
回复

使用道具 举报

0

主题

1

帖子

44

积分

新手上路

Rank: 1

积分
44
金钱
43
HASS币
0
发表于 2023-8-17 16:47:17 | 显示全部楼层
大佬图挂了,能否补个图?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 08:29 , Processed in 1.024811 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表