请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 108139|回复: 180

[经验分享] ESP32加智能电表接入homeassistant,(跟新电费统计PACK)___重要更新

  [复制链接]

37

主题

395

帖子

4051

积分

元老级技术达人

积分
4051
金钱
3601
HASS币
250
发表于 2019-7-7 10:32:18 | 显示全部楼层 |阅读模式
本帖最后由 trz0332 于 2019-11-27 00:15 编辑

发现一个重大问题,当连不上mqtt服务器的时候,过几分钟程序就死掉了。看了一下错误日志,貌似是一个并行的列队满了导致的。这个应该是我使用的那个mqtt_as.py导致的,没能力去改,也不想改,于是简单粗暴的想了个解决办法,加看门狗,只有在从电表取到了数据的时候才会喂狗,2分钟不喂狗,esp32就自动重启了。


需要使用最新的micropython固件。
清除所有数据之后下载把我附件内容全部传送到板子就行了。

修改为采集时间10秒钟,但是上传间隔为,当2次数据变化超过5%才会上传数据


把cfg.py里面的内容按照自己的需要修改就行了,其他都不动


config={
'dev_name':'szdb1',  #设备名
'ssid':'iot',   #wifi的ssid
'wifi_pw':'xxxx',  #wifi密码
'port':1883,   #mqtt端口
'server':'192.168.88.1',  #mqttf服务器IP
'user':'pi',  #mqtt用户名
'password':'xxxxxx',  #mqtt密码
'keepalive':120,
'clean':False,
'clean_init':False,
'dog_time':120000,  #看门狗时间
}




这个方案实现成本比较低。     不到160块钱。精度比较高。按照电表说明书上说的,可以实现1%的精度。

需要设备如下:支持modbus485电表:


1562467257(1).png


esp32模块:
ESP32.png
ttl转485模块:
TTL-485.png
220v转5V模块:
DY.png
接线方式:
ESP32:TX2-----TTL-485:TX
ESP32:RX2-----TTL-485:RX
ESP32:3.3V-----TTL-485:vcc
ESP32:gnd-----TTL-485:gnd

TTL-485:A------电表:A
TTL-485:B------电表:B

电源模块的输出+极--------ESP32:VIN
电源模块的输出-极--------ESP32:GND




esp32.zip (23.17 KB, 下载次数: 94)


把所有文件用uPyCraft_V1.1这个软件传入到esp32模块中就行了


topic为cfg.py里面的'dev_name':'szdb1', 这个字段,如果是这么设置的,那么topoc就是/szdb1/data
上传上来的数据格式是
{"pf": 0.92, "pow": 82.98, "vol": 226.84, "cur": 0.4, "fre": 50.0, "eng": 720.41}

最后显示的效果如下:
1562466409(1).png


游客,如果您要查看本帖隐藏内容请回复




更新一个自己用的pack,用来统计月电费:

dianbiao_sz.yaml (6.37 KB, 下载次数: 149)
1562763530(1).png
我用的是mysql数据库,这个配置文件只在mysql下面试过,其他的不保证成功
另外这个配置还是有2个问题,
1、hass里面记录的时间是不带时区的。所以导致每天统计数据的时候真正在早上8点的时候
2、每天8点的时候由于查找数据库的时候,这个时候电表没有上传数据到数据库里面,查到的抄表数据为空,这个时候计算出来的日数据,和昨日数据都不对。我是用一条sql语句来删除掉明显不对的数据
DELETE  from states where entity_id  in ("sensor.sz_eng_week" ,"sensor.sz_eng_today","sensor.sz_eng_yesterday" ,"sensor.sz_eng_month","sensor.sz_eng_price") and (state >100 or state <0);




统一回答楼下的答复:
1、安装问题:这个电表非常好安装,差不多就一个2P空开大小。可以直接装到家庭入户的电箱,可以卡导轨的。断掉家里输入的总空开,电表的输入接入户总空开的输出,非常安全。
2、价格问题:总成本160,确实不算便宜了。相对于培正电表。可能优势就是好安装了。

PS:
虽然是用micropython写的。但是这里面有个异步的mqtt的库只支持esp32.esp8266配置太低,跑不动。所以有条件还是上esp32,反正现在esp32也便宜了。我上传的压缩包里面带了一个dht12和bme180的库,主程序也对i2c初始化的函数,但是没有运行这段代码,如果对python稍微了解一点的人,稍微改改就能加上温湿度和BME180大气压力传感器的代码了。
    def init_I2C(self):
        self.i2c=I2C(scl=Pin(23), sda=Pin(22), freq=20000)
        self.dht12=dht12(self.i2c)
        self.bmp280=BMP280(self.i2c)





评分

参与人数 1金钱 +20 HASS币 +20 收起 理由
+ 20 + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

6

主题

484

帖子

3980

积分

论坛元老

Rank: 8Rank: 8

积分
3980
金钱
3496
HASS币
0
发表于 2019-7-7 11:11:27 | 显示全部楼层
谢谢分享
回复

使用道具 举报

26

主题

552

帖子

1955

积分

金牌会员

Rank: 6Rank: 6

积分
1955
金钱
1398
HASS币
40
发表于 2019-7-7 11:36:10 | 显示全部楼层
这个简单点
回复

使用道具 举报

9

主题

787

帖子

3827

积分

论坛元老

Rank: 8Rank: 8

积分
3827
金钱
3040
HASS币
87
发表于 2019-7-7 12:42:31 | 显示全部楼层
学习一下,这个方便了
回复

使用道具 举报

0

主题

86

帖子

710

积分

高级会员

Rank: 4

积分
710
金钱
624
HASS币
0
发表于 2019-7-7 12:45:52 | 显示全部楼层
感谢大神分享
回复

使用道具 举报

1

主题

107

帖子

763

积分

高级会员

Rank: 4

积分
763
金钱
656
HASS币
0
发表于 2019-7-7 14:35:28 | 显示全部楼层
尝试过PZEM-004T,再来学习下这个
回复

使用道具 举报

7

主题

348

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
金钱
730
HASS币
0
发表于 2019-7-7 15:59:16 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

13

主题

500

帖子

3376

积分

论坛元老

Rank: 8Rank: 8

积分
3376
金钱
2871
HASS币
20
发表于 2019-7-7 17:34:58 | 显示全部楼层
作为首位PZEM-004T大神,我也来看看最新科技!
回复

使用道具 举报

17

主题

418

帖子

2816

积分

金牌会员

Rank: 6Rank: 6

积分
2816
金钱
2398
HASS币
0

教程狂人

发表于 2019-7-7 17:47:14 | 显示全部楼层
这个不错
回复

使用道具 举报

0

主题

188

帖子

1108

积分

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
920
HASS币
0
发表于 2019-7-7 17:54:43 | 显示全部楼层

这个不错
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-19 10:31 , Processed in 0.063722 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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