本帖最后由 ttt105 于 2022-1-17 08:46 编辑
【ESP32+电流互感器+ESPhome】
【低成本】用电设备的电流监测,可在HASS集成实时电流卡片
=============劝退申明=============
以下部分内容涉及到强电操作,没有强电基础知识的同学请谨慎尝试,
最好在监护人的指导下进行,以免产生危险!!!
================================
因在疫情隔离中,闲来无事,看到B站上一位UP主分享的一个关于实时电功率监测的视频,https://www.bilibili.com/video/BV1PZ4y157dc,
于是动手用ESP32做了一个用电设备电流监测的模块,在HASS中可以实时看到设备的电流情况。
经测试已经在自己树莓派上的HA中完美集成运行起来。特在此和大家分享,抛砖引玉,欢迎各位大神大开脑洞,做一些深入开发。
按UP主视频里的说明,搭建了基本的电流取样电路,本次我只使用到了电流监测。
因为之前已经在HA中集成了培正PZEM-004T的电功率模块(培正模块的集成方法可以参考另外一个大神的帖子,非常详细https://bbs.hassbian.com/thread-6081-1-1.html),
在入户总配电箱中安装,在HASS里已经可以看到总电源的电压、频率、总功率等信息,
所以只要监测到单个设备的运行电流,便可计算得到单个用电设备的实时功率,然后可以生成全屋的用电分布。这是后话了,等大神们深入开发。
以国产乐鑫ESP模块系列便宜的价格,外加几个电子元件,预计在10元左右,可以给家里的电设备加上电功率监测模块,全屋用电监测将不再是难事。
ESP8266还没测试,ESP8266上的A0端口,也是ADC模数转换功能,感觉同样可拿来用,目前还没测试,欢迎有时间的同学测试一下。
【2022-01-15更新】ESP8266的ADC同样可以做为电流检测口使用,但是ESP8266的ADC端口只有一个,如果做配电箱里的每一分路的电流监测推荐还是用ESP32。
----------------------------------------
以下进入正题:
需要的准备知识:1、ESPhome的设备添加方法以及代码调整和上传的方法,2、HASS布局卡片使用基本知识,3、简单电子电路搭建方法,4、强电使用安全知识
搭建基本的取样电路:
【材料】:
1、1000:1电流互感器5A 1个(电流互感器一定不可开路使用,★切记!★切记!)
2、200欧电阻 1个
3、470K欧电阻 2个
4、无极性10uf电容 1个
5、ESP32S模组 1个(我使用的是Pin35端口,可根据实际电路情况来调整代码)
6、面包板、杜邦线若干
7、电功率计,或万用表(用来电流数据校正)
以下电压取样电路本次未使用,仅供参考
搭建好的实物电路如下:
【代码】
视频为19年由老外录制的,当时ESPhome还没有集成EmonLib库,现在最新版的ESPhome已经包括该库,可直接调用类即可,不必再自定义添加模块了。
EmonLib库的地址https://github.com/openenergymonitor/EmonLib,高手有空可以研究一下
在ESPhome里添加了开发板后,在自动生成的代码后面再添加以下的代码:
具体的代码的释义可以参考官方文档:https://www.esphome.io/components/sensor/ct_clamp.html
在代码中倒数第二行“pin: 35”,是接互感电路的电流取样点,此处需和硬件环境一致。
在EPShome里编译、上传代码到ESP32开发板里(上传代码时,需要按一下ESP32板子上的BOOT按键才可正常上传)
sensor:
- platform: ct_clamp
sensor: adc_sensor
name: "Measured Current"
update_interval: 10s
filters:
- calibrate_linear:
# Measured value of 0 maps to 0A
- 0 -> 0
# 监测到的数值: 4.0A
# 将显示的数值校正为: 0.1333A
- 4.0 -> 0.1333
# Example source sensor
- platform: adc
#电流检测输入脚位
pin: 35
id: adc_sensor
【关键一步】校准功率计量偏差
在用电设备的交流强电路中串联上万用表或直接使用电功率计,看一下设备的设备的运行时的电流为多少,修改“alibrate_linear:”里的参数,然后再上传到ESP32中,以便将校准的数据发送给HASS,
因为我已经装有培正的电功率模块,在其他用电设备不变情况下,把监测的设备关停两次,看一下HASS里的电流变化情况,可以估算设备运行电流。
这里需要说明一下,电流互感器的线性越好,校准点越少,要是设备在空载和满载时的电流偏差较大,可以多添加几个校准点,以真实反应电流情况。
【最后】
在HASS里就可以找到新添加的ESP32开发板,在“集成”中添加相应的设备。
然后在Lovelace的卡片里把获得的电流监测数据调用出来
|