本帖最后由 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个回来测试一下效果。
----------------原理图和板----------------
因为嘉立创的白嫖规则出现了变动,所以转战了立创EDA,有些不太习惯,板子也前后改了几次。
下面是cse7761部分的原理图,参照了数据手册画的。
左边的CN3为电流信号输入,为了减小板子体积,板子上就不设置取样电阻了。同样的,取样可以使用电流互感器和康铜丝在线取样两种方式。
esp8285最小系统,由于集成了Flash,所以多出来了几个IO口可以使用。
非隔离AC-DC供电电路,最大可以提供5V200ma的电源,基本可以满足供电需求。
板子结构基本跟前作一样,照抄过来然后更换了电能芯片,再改动了一些电路,就成了。
----------------线路连接----------------
如果是需要抄作业的同学要注意看咯。
1)互感器连接
使用互感器优点是不需要考虑接线方式,连接简单,只需要把互感器输出连接到模块输入端就行了,而且干扰较小。
缺点是体积太大了,如果是插排就放不进去了。
互感器型号建议选择ZMCT118F,额定电流为5A/5ma,即初级流过5A电流,次级输出5ma电流,配合采样电阻使用(就是下图圈起来的地方)
这个型号最大线性电流为30A,用来测试家中的电流绰绰有余。
因为芯片电流输入端口正常工作的电压范围为峰峰值±600mV,所以采样电阻不宜太大,官方数据手册里面是5Ω。
我自己使用了1Ω,后期都需要校准才能使用。
实物图:
2)外接采样电阻
因为板子不设置采样电阻了,所以需要外接一个康铜丝来采样电流,注意采用这种方式板上的贴片采样电阻就不装了(就是上图圈起来的地方)其实采样电阻本质就是一节经过标定过后的铜丝,如果要求不高,可以使用排插内的铜线来当做采样电阻,此时接线方式需要注意!
由于此模块的供电方式为非隔离供电,板子上的GND与输入N端联通,所以采样的端子必须要接在与N端相连的同一条线路上!
为了方便理解,画了一张草图,希望大家能看懂。
一定要按照左图连接,右图连接会导致220V直接进入芯片导致炸鸡!
两个端子间隔没有什么要求,视情况而定,只要与实测相差不是太大就没问题,尽量比实测的大点,后期可以校准。
下面是实物图,插座是一个拼夕夕买的辣鸡一分三插座,使用外接取样,直接利用插座原有的导线作为取样。
检测的是左右两个插孔,一通道是左边,二通道是右边,可以看到采样输入与电源N是同一条线。
因为在实际使用中零火线不一定与标注的一样,所以只要记住板子上N端与采样输入端在一条线上就可以了。
----------------调试校准----------------
线路连接完成后就可以烧录程序校准了,在esphome里面烧录完成后,在hass里面就可以发现设备了。-
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参数,这个是校准系数,原始值乘以这个数得到最终值。
这个校准系数怎么得来呢,首先不加参数直接读取,然后找一个准确的功率计,对比读出的值与实际的值,用实际的值除以读出的值,便可以得到系数。
比如:
下图是刚接完先烧录好程序的模块读出的数据
而实际的数值是这样的:
按照公式 实际数值 ÷ 读出数值 = 系数,202.7 ÷ 89.6 = 2.262276,小数取2至4位即可。
注意实际数和读出去尽量保持同时读取,因为数值一直在变化,可以多次校准,以达到更好的精度。
第二次校准可以用 实际数值 ÷ 读出数值 x 原系数 = 新系数 校准。直到读出数与实际数基本接近。
经过多次校准后读出功率与实际基本相同,我这里忽略了模块自身的功率,约为1W左右。
电流的校准与功率相同,使用互感器与康铜丝检流的校准流程也是一样的,校准完毕后即可正常使用。
----------------注意事项----------------
①:因为此模块使用非隔离电源供电,在调试时如果接入市电要十分小心,接入市电后禁止触摸模块的任何部位,包括互感器(如果有连接的话)
②:模块体积比较小,所以阻容使用了比较小的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口驱动电流不够大,直接接无法驱动。可以按照下图连接
②:关于外接取样电阻,再重新画个图,输入端的L和N可以对调,但是要严格按照图中的接法连接。
关于取样点两点间距可以视情况而定,导线较粗可以适当加长间隔,导线较细可以减小间隔。
间隔过小读出的数据分辨率就会太低,间隔过大在大功率时就有可能超出芯片量程(不会烧毁芯片,只是读数不准确)。
大家可以根据实际情况调整。
另外电流采样输入导线建议双双拧成麻花状,可以有效减少差分信号的干扰,如下图:
|