本帖最后由 depboy 于 2022-2-13 14:49 编辑
【低成本-基于ESP8266的mini电能电量监控模块】
----------------Warning----------------
此模块供电为非隔离供电!!!想要制作的小伙伴们需要注意安全!!!
没有接触过强电经验的小伙伴请慎重考虑!!!
自从接触HA以来老早就想把家里大大小小的插座都给监控上了,这样可以清楚的知道家里什么地方什么时候消耗了多少电能。
不过一来市面上带有功率监测的插座成品都太贵了,二来家里的插座基本都装好了,没有必要再去更换。
想要购买模块来改造,电源模块加wifi模块加电能模块的体积简直和一个插座相当了,想着如果能在现有的插座内集成一个电能模块就好了。
入户电能监测已经使用培正模块加8266接入了hass,剩下的就是家里的插座了。
首先要植入插座,体积必须足够的小,esp01自然不能用了,供电,电能取样自然也要集成。
那就只能自己画板子了,不过现在打样这么方便,省了不少。(嘉立创YYDS)
------器件选型------
要画自己的板子,器件当然要先选好啦。
通讯
无线通讯自然是要选择编程烧录都很方便的ESP8266,不过这次不选择模块,选择芯片集成方式。
马云家2元一片就可以。
供电
迷你版供电自然要尽可能缩小,隔离式电源因为有个变压器就放弃,因为是在插座内部,即使是非隔离电源也不会有什么问题。
所以选定了非隔离式电源,方案用比较成熟的MP150非隔离供电。马云家3元左右一片。
电能计量
这个也比较好找,我自己使用esphome平台作为编程,在esphome官网上就有支持的芯片介绍,我选择了HLW8032作为计量芯片。
马云家约3元1片(其实之前才1块多的,后面涨价了。-_-||)
其实还有其他零散的器件买这些的时候都一并购买了。
------原理图------
器件选择好了接下来就是画图了,既然要放到插座里面体积不能太大,板子就定6cmx3cm大小。
原理图先画好
供电部分
直接照抄了官方的电路,加1117-3.3V稳压输出给8266。
通信部分
这里踩了不少坑,之前没画过这种类型的电路,对天线部分不太熟悉,打样回来不是信号不好就是连不上热点。
前后修改了几次才比较完美。
电能采集部分
同样也是照抄了官方的电路,不过用了两套方案,康铜丝检流和互感器检流都可以,应对不同场景。
这是最后一版的图,兼容hlw8012和hlw8032两种芯片
(这里也有坑,后面说)
------电路板------
接下来就是画板了,首先强电和弱电部分肯定是要分开啦,左右布局就可以,左边放8266右边放供电和采集
龙飞凤舞画完后就是这样~
左面是8266通讯,右上面是供电,右下面是采样,自认为布局还阔以。
3D模拟是这样~
(没错那个电容我XY翻转了一下,忽略掉它吧)
这里也有坑,一开始我输出的电感选小了,带不动8266,发热厉害,查了资料才知道原来是电感问题,后面才加大了
------打样焊接------
这个就略过吧,前前后后设计了几个版本,最后的一个版本比较稳定。
因为是小体积,器件也用了比较小的封装,焊接基本是用风枪加锡膏。
------程序烧录------
使用8266可以使用hass自带的esphome编程和烧录,首次烧录需要串口链接电脑,烧录完成后期就可以直接使用OTA升级了,超方便!!!(破音)
HLW8032集成在esphome里面没有,不过可以使用CSE7761集成替代,底层通讯应该是一样的:
https://www.esphome.io/components/sensor/cse7761.html
HLW8012集成有,直接使用现成的例程就可以了:
https://www.esphome.io/components/sensor/hlw8012.html
两者使用前都需要标定,这样数据才比较准确(没办法这就是不使用模块的代价)
在板子上,如果使用HLW8032,则HLW8032TX口对应8266的GPIO4,所以编程时需要定义RX为4,波特率为4800,串口缓冲区为24字节。
uart:
rx_pin: 4
baud_rate: 4800
rx_buffer_size: 24
id: rx8032
如果使用HLW8012,则需要定义SEL脚为GPIO13,CF脚为GPIO4,CF1脚为GPIO12
- platform: hlw8012
sel_pin: 13
cf_pin: 4
cf1_pin: 12
下面是我自己HLW8012的程序:
sensor:
- platform: hlw8012
sel_pin: 13
cf_pin: 4
cf1_pin: 12
current:
name: "HLW8012-1 Current"
voltage:
name: "HLW8012-1 Voltage"
power:
id: pwr_sensor
name: "HLW8012-1 Power"
voltage_divider: 2074.6
current_resistor: 0.001
update_interval: 1s
- platform: total_daily_energy
name: "HLW8012-1 Energy"
power_id: pwr_sensor
time:
- platform: sntp
id: my_time
下面是HLW8032的程序:
uart:
rx_pin: 4
baud_rate: 4800
rx_buffer_size: 24
id: rx8032
sensor:
- platform: total_daily_energy
name: "HLW8032 Daily Energy"
power_id: my_power
- platform: cse7766
uart_id: rx8032
current:
name: "HLW8032 Current"
accuracy_decimals: 3
voltage:
name: "HLW8032 Voltage"
accuracy_decimals: 2
filters:
# Map from sensor -> measured value
- calibrate_linear:
- 0.0 -> 0.0
- 500.0 -> 1085.0
power:
name: "HLW8032 Power"
accuracy_decimals: 2
filters:
# Map from sensor -> measured value
- calibrate_linear:
- 0.0 -> 0.0
- 5000.0 -> 10968.0
id: my_power
update_interval: 2s
time:
- platform: sntp
id: my_time
能够读取电压,电流,功率,每日用电数。
------接入HASS------
一般来说烧录完成重启后在HASS通知内会直接提示发现新设备,添加后就可以在集成里面看到添加的模块了。
把目前接入的插座都汇聚到一个面板上就是这样:
没错只有四个,有两个是这个模块配上培正模块,放在入户电箱里面,有两个实装了。
其实还可以拓展显示模块,加个TM1637就可以实时显示用电功率了
我处方的插座上就加了个显示模块,直接透过面板显示,效果还不错,没有功率时可以息屏。
内部是这样的,使用互感器检测电流
------后记------
这个模块从有想法到最后完成经历了好几个月,一是工作太忙了,二是懒(不是,最后完成了还是有那么点成就感的。
不过毕竟是自制的东西,有几点缺点还是要说说的。
第一是由于使用的是非隔离的供电,在使用和调试的时候都要加倍小心,一旦接入220V市电,整个板子都会带电!!此时千万不能用手摸板子的任何部位,也不能使用电缆连接电脑调试!!
第二在使用过程中发现使用HLW8032的模块会随机性的重启,表现为死机,然后看门狗重置,这个可能是esphome没有优化好的原因,使用8012就没问题。
第三是模块的测量精度与最大功率有关系,板载的康铜丝实测最大可用功率为1300W左右,超过了这个功率显示的就不准确了,可能是超过芯片的差分输入量程了。
这是我第一次自己做智能家居,有什么问题大家可以互相交流,我看到了也会回复的
最后祝大家新春快乐!!
啊对了有需要板子源文件的可以说一声~~~ 不过这个制作有风险我想应该没人会想做吧(小声BB)
PS0213:看来想动手做的小伙伴也不少,那我把PCB和原理图放帖子里面把,大家制作的时候记得注意安全哦!
|