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

 找回密码
 立即注册
查看: 8400|回复: 31

[硬件DIY] 自制低成本的双通道Mini电能计量模块【前作改进】

[复制链接]

5

主题

87

帖子

989

积分

论坛DIY达人

积分
989
金钱
882
HASS币
80
发表于 2022-10-13 13:28:32 | 显示全部楼层 |阅读模式
本帖最后由 depboy 于 2022-10-15 15:38 编辑

----------------Warning----------------
此模块供电为非隔离供电!!!想要制作的小伙伴们需要注意安全!!!
没有接触过强电经验的小伙伴请慎重考虑!!!
----------------Warning----------------


此前制作了一个低成本的电能模块,经过大半年使用过后有几个问题一直很烦人。

首当其冲的就是死机问题,不知道是esphome的BUG还是芯片通讯有问题,使用HLW8032的模块总是会卡死,然后看门狗重启,而且重启完了还时不时连不上wifi。
其次就是一个芯片只能接入一个插座,有时候想测试两个电器就得使用两个模块,有点浪费。

在参阅esphome网站后发现了另一个电能芯片,更能满足我的需求。
----------------器件选型----------------
这次使用的是CSE7761作为计量芯片,下面是官方的特性简介:
⚫  时钟管理
内置晶振和外置晶振功能可选。
⚫  计量功能
-  提供两路有功电能:有功电能误差在 5000:1 动态范围内误差<0.1%
-  提供两路有功功率:通道A 有功功率和通道 B有功功率,默认通道B关闭
-  提供视在功率、功率因数、相角,通过命令选择计算的通道:通道A 或通道B
-  提供一路电压、两路电流的波形数据
-  提供一路电压、两路电流有效值的瞬时值
-  提供两路有功功率和一路视在功率的瞬时值
视在功率的瞬时值通过命令选择计算的通道:通道A 或通道 B
-  提供一路电压、两路电流有效值的测量:在 1000:1动态范围内有效值误差<0.1%
-  提供有功功率过载的信号指示,通过命令选择计算的通道:通道A或通道 B
-  提供电压通道的过零检测信号、线频率、过压指示、欠压指示
-  提供两路电流通道的过零检测信号、过流指示
⚫  通信接口
-  SPI接口,最快支持频率890KHz
-  UART 接口,波特率 4800Hz、9600Hz、19200Hz、38400Hz。
⚫  具有系统校正功能、相位补偿功能;启动、潜动电流可调
⚫  支持软件复位
⚫  1路高精度比较器
⚫  内置温度传感器   
⚫  电压和两路电流通道的PGA 可选:1、2、4、8、16
⚫  多种中断:电压过零中断、过压中断、欠压中断、电流过零中断、过流中断、有功功率过载
中断、瞬时数据更新中断、电压/电流有效值和功率均值更新中断
⚫  内置1.25基准电压
⚫  工作电压:  VDD=5V/3.3V   
⚫  封装形式:SSOP16

想要详细了解的同学可以下载数据手册回来研究。
DS_CSE7761_V2.1_1630639595084.1.pdf (1.92 MB, 下载次数: 49)

简而言之,就是支持两个通道的电流检测,而且串口使用双向通讯,应该不会发生hlw8032那样的问题吧(猜测
马云家3块一个,先买5个回来测试一下效果。
微信截图_20221013104159.jpg


----------------原理图和板----------------
因为嘉立创的白嫖规则出现了变动,所以转战了立创EDA,有些不太习惯,板子也前后改了几次。
下面是cse7761部分的原理图,参照了数据手册画的。
微信截图_20221013104758.jpg
左边的CN3为电流信号输入,为了减小板子体积,板子上就不设置取样电阻了。同样的,取样可以使用电流互感器和康铜丝在线取样两种方式。


微信截图_20221013105021.jpg
esp8285最小系统,由于集成了Flash,所以多出来了几个IO口可以使用。


微信截图_20221013105201.jpg
非隔离AC-DC供电电路,最大可以提供5V200ma的电源,基本可以满足供电需求。

板子结构基本跟前作一样,照抄过来然后更换了电能芯片,再改动了一些电路,就成了。
微信截图_20221013105411.jpg 微信截图_20221013105559.jpg 291daced14191d5775f6a473b560524.jpg

----------------线路连接----------------
如果是需要抄作业的同学要注意看咯。
1)互感器连接
使用互感器优点是不需要考虑接线方式,连接简单,只需要把互感器输出连接到模块输入端就行了,而且干扰较小。
缺点是体积太大了,如果是插排就放不进去了。

互感器型号建议选择ZMCT118F,额定电流为5A/5ma,即初级流过5A电流,次级输出5ma电流,配合采样电阻使用(就是下图圈起来的地方)
这个型号最大线性电流为30A,用来测试家中的电流绰绰有余。
微信截图_20221013110019.jpg


因为芯片电流输入端口正常工作的电压范围为峰峰值±600mV,所以采样电阻不宜太大,官方数据手册里面是5Ω。
我自己使用了1Ω,后期都需要校准才能使用。


实物图:
25516e48135361fd31932bedf9bc7f7.jpg


2)外接采样电阻
因为板子不设置采样电阻了,所以需要外接一个康铜丝来采样电流,注意采用这种方式板上的贴片采样电阻就不装了(就是上图圈起来的地方)其实采样电阻本质就是一节经过标定过后的铜丝,如果要求不高,可以使用排插内的铜线来当做采样电阻,此时接线方式需要注意!

由于此模块的供电方式为非隔离供电,板子上的GND与输入N端联通,所以采样的端子必须要接在与N端相连的同一条线路上!

为了方便理解,画了一张草图,希望大家能看懂。
1.jpg 2.jpg

一定要按照左图连接,右图连接会导致220V直接进入芯片导致炸鸡!


两个端子间隔没有什么要求,视情况而定,只要与实测相差不是太大就没问题,尽量比实测的大点,后期可以校准。

下面是实物图,插座是一个拼夕夕买的辣鸡一分三插座,使用外接取样,直接利用插座原有的导线作为取样。
bdd1653d6a6422b88d0eafd3443a6c8.jpg da3456221c6d77338177a1e2715ddc6.jpg
检测的是左右两个插孔,一通道是左边,二通道是右边,可以看到采样输入与电源N是同一条线。

因为在实际使用中零火线不一定与标注的一样,所以只要记住板子上N端与采样输入端在一条线上就可以了。


----------------调试校准----------------
线路连接完成后就可以烧录程序校准了,在esphome里面烧录完成后,在hass里面就可以发现设备了。-
微信截图_20221013120333.jpg

ESPHOME程序如下:
uart:
  tx_pin: 9
  rx_pin: 10
  baud_rate: 38400
  parity: EVEN

sensor:
  - platform: cse7761
    voltage:
      name: 'Fixer-Plug Voltage'
    current_1:
      name: 'Fixer-Plug Current 1'
      filters:
        - multiply: 0.4943
    current_2:
      name: 'Fixer-Plug Current 2'
      filters:
        - multiply: 2.283
    active_power_1:
      name: 'Fixer-Plug Active Power 1'
      filters:
        - multiply: 0.492
      id: "pwra"
    active_power_2:
      name: 'Fixer-Plug Active Power 2'
      filters:
        - multiply: 2.283
      id: "pwrb"
    update_interval: 1s

  - platform: total_daily_energy
    name: "Fixer-Plug Energy 1"
    power_id: pwra
  - platform: total_daily_energy
    name: "Fixer-Plug Energy 2"
    power_id: pwrb
    
time:
  - platform: sntp
    id: my_time
需要关注的是电流和功率传感器filters模块的multiply参数,这个是校准系数,原始值乘以这个数得到最终值。
这个校准系数怎么得来呢,首先不加参数直接读取,然后找一个准确的功率计,对比读出的值与实际的值,用实际的值除以读出的值,便可以得到系数。
比如:
下图是刚接完先烧录好程序的模块读出的数据
2a49f0c54b3242c4def90c1082077a5.jpg

而实际的数值是这样的:
1e24e41d79ece091080a1ea2dc178f1.jpg

按照公式 实际数值 ÷ 读出数值 = 系数,202.7 ÷ 89.6 = 2.262276,小数取2至4位即可。
注意实际数和读出去尽量保持同时读取,因为数值一直在变化,可以多次校准,以达到更好的精度。


第二次校准可以用  实际数值 ÷ 读出数值 x 原系数 = 新系数  校准。直到读出数与实际数基本接近。

经过多次校准后读出功率与实际基本相同,我这里忽略了模块自身的功率,约为1W左右。
c99f3356e0746b80a8446e811db6b07.jpg

电流的校准与功率相同,使用互感器与康铜丝检流的校准流程也是一样的,校准完毕后即可正常使用。

----------------注意事项----------------
①:因为此模块使用非隔离电源供电,在调试时如果接入市电要十分小心,接入市电后禁止触摸模块的任何部位,包括互感器(如果有连接的话)
②:模块体积比较小,所以阻容使用了比较小的0402封装,焊接可能比较费眼睛。另外0402本身没有丝印,所以物料别弄混了
③:模块上的mp150装配完成后可以使用30V直流电源测试,负极接N,正极接L,如果正常输出5V以及3.3V则可以接入市电测试。
④:数据手册虽然说有内置晶振但是好像没有用,最初我省略了晶振,结果无法通信,所以必须要使用晶振。⑤:电流输入端灵敏度比较高,所以使用康铜丝采样的线路需要注意绕开板子上端的开关电源部分,否则读出数值可能不会归零。
⑥:用作电流取样的导线请勿使用多股线,如果非要使用请使用焊锡填满。
⑦:暂时没有了,后面想到再补充..........



----------------后记----------------
为了尽量节约单个模块的成本,所以ESP部分使用了芯片直接焊接,没有使用模块,考虑到有些小伙伴是使用模块的,后面可能会补充另外一个版本吧(看工作忙不忙)

电量检测需求感觉还蛮高的,只不过现在的其他方案成本都比较高(相对来说),而且体积也比较大,这个模块希望能帮到大家实现小空间低成本的监测需求

工程我已经开源在立创的开源广场上了,有需要的小伙伴可以去获取。
https://oshwhub.com/depboy/esp82d_ver6-0

贴子有错误或者制作有问题可以跟帖回复
大家制作的时候记得注意安全哦!


玩得愉快~

1015:回答小伙伴的几个问题

①:模块使用的MP150额定功率为2W,可以输出5V200ma的电流,ESP8285电流实测为75ma,5V继电器实测为70ma左右,可以直接使用。
如果要连接继电器则需要加一个三极管驱动,8266的io口驱动电流不够大,直接接无法驱动。可以按照下图连接
微信截图_20221015092930.jpg

②:关于外接取样电阻,再重新画个图,输入端的L和N可以对调,但是要严格按照图中的接法连接。
微信截图_20221015092430.jpg

关于取样点两点间距可以视情况而定,导线较粗可以适当加长间隔,导线较细可以减小间隔。
间隔过小读出的数据分辨率就会太低,间隔过大在大功率时就有可能超出芯片量程(不会烧毁芯片,只是读数不准确)。
大家可以根据实际情况调整。

另外电流采样输入导线建议双双拧成麻花状,可以有效减少差分信号的干扰,如下图:
cecf4176f775465e719fda0328543a8.jpg



评分

参与人数 8金钱 +90 HASS币 +20 收起 理由
trz0332 + 16 感谢楼主分享!
evantalk + 16 论坛有你更精彩!
zcy778 + 5 大神666!
ttt105 + 10
phofun + 5 感谢楼主分享!
sorrypqa + 8 大神666!
情非殇 + 10 膜拜大神!
+ 20 + 20 膜拜大神!

查看全部评分

回复

使用道具 举报

0

主题

38

帖子

310

积分

中级会员

Rank: 3Rank: 3

积分
310
金钱
272
HASS币
0
发表于 2022-10-13 13:55:29 来自手机 | 显示全部楼层
太麻烦了这个,直接闲鱼90块钱买一个做好现成的,零火线接到空开,互感器套到入户火线,配置个MQTT完事。
回复

使用道具 举报

32

主题

145

帖子

545

积分

高级会员

Rank: 4

积分
545
金钱
400
HASS币
0
发表于 2022-10-13 15:19:31 | 显示全部楼层
太难了,新手搞不了
回复

使用道具 举报

40

主题

2176

帖子

8290

积分

元老级技术达人

积分
8290
金钱
6099
HASS币
110
发表于 2022-10-13 15:19:42 | 显示全部楼层
HLW8032应该是脉冲输出吧
我用的X12插座上自带的那个,BL0937,和HLW8012差不多
8032没用过
几个月了,没重启,挺稳定的
回复

使用道具 举报

51

主题

1341

帖子

5606

积分

论坛DIY达人

积分
5606
金钱
4265
HASS币
20
发表于 2022-10-13 17:25:40 | 显示全部楼层
会设计就是好玩,想装哪就装哪。
回复

使用道具 举报

15

主题

220

帖子

1765

积分

金牌会员

Rank: 6Rank: 6

积分
1765
金钱
1545
HASS币
0
发表于 2022-10-13 23:06:12 | 显示全部楼层
本帖最后由 Awe7 于 2022-10-13 23:12 编辑

又有新板了,支持老哥,如果入户线零火接反,输入的火线在gnd上,安草图接线取样铜丝,和板上的gnd接一起会不会boom
回复

使用道具 举报

7

主题

323

帖子

2476

积分

金牌会员

Rank: 6Rank: 6

积分
2476
金钱
2153
HASS币
0
发表于 2022-10-13 23:08:01 | 显示全部楼层
厉害~~可以拿来练手下~~
回复

使用道具 举报

15

主题

220

帖子

1765

积分

金牌会员

Rank: 6Rank: 6

积分
1765
金钱
1545
HASS币
0
发表于 2022-10-13 23:18:18 | 显示全部楼层
能不能来个普通继电器版本的esp配置文件,还有增加继电器需要改大概多大的电感,想白嫖
回复

使用道具 举报

5

主题

87

帖子

989

积分

论坛DIY达人

积分
989
金钱
882
HASS币
80
 楼主| 发表于 2022-10-14 09:21:53 | 显示全部楼层
X大 发表于 2022-10-13 15:19
太难了,新手搞不了

这个应该算是进阶玩法吧,新手当然推荐培正模块那些简单玩法啦
回复

使用道具 举报

5

主题

87

帖子

989

积分

论坛DIY达人

积分
989
金钱
882
HASS币
80
 楼主| 发表于 2022-10-14 09:23:49 | 显示全部楼层
ghostist 发表于 2022-10-13 15:19
HLW8032应该是脉冲输出吧
我用的X12插座上自带的那个,BL0937,和HLW8012差不多
8032没用过

8032是串口通信,8012是脉冲输出,8012不会重启,但可能是取样问题8012分辨率没有8032的高,而且电压和电流不能同时取样。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 06:31 , Processed in 0.115330 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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