目的:通过重量传感器来推算床上人的数量和动作,比如是1个人还是2个人,是在深睡眠还是浅睡眠,当然还可以顺便记录下一周的滚床单频率。。。
软件:软件:
Espeasy
Homeassistant
接线:
方案一:使用四个传感器分别放在四个床脚下,可精确测量床上的重量
方案二:使用二个传感器,放在床垫的排骨架上,精确度不是很符合实际,当时用来当binary_sensor绰绰有余(本文选择此方案)
传感器的接线方式:
2个
4个
传感器与hx711的接线方式:
实物图:
硬件搭建完成,接下去是软件:
esp8266直接刷dev版的espeasy固件,刷完后在Controller中的第一个中添加mqtt服务器
再在Device中选择最后一项HX711 Load Cell Testing选项,把对应的引脚连接上即可:
如果硬件和软件都没有问题,接下去就可以在Device界面看到相应的数值的变化了:
这里显示的不是具体的重量kg的数值,需要精确的转换为kg还需要自己修正校对,可以在espeasy中输入公式推算的((%value%+135750)*-1)/20(每人不一样)进行修正,具体的校对方式就是把已知的重量放上去,获取读数,不同的重量,不通的数值,再推导出公式。
对精确度有要求的可以这么做,如果像本文一样就当个binary_sensor的话不用很精确也没有关系。
接下去就是接入HA:
sensor:
- platform: mqtt
state_topic: "home/weight/bedweight"#与espeasy中的mqtt设置保持一致
name: "bed weight"
value_template: "{{ (value | float /1000) | round(0) }}"
qos: 0
unit_of_measurement: "kg"
availability_topic: "home/status/LWT" #与espeasy中的mqtt设置保持一致
payload_available: "Connected"
payload_not_available: "Connection Lost"
然后自动化就可以根据自己的需要定制啦!
< 6 kg: 没人, > 15 kg: 1个人, > 25 kg: 2 个人,>30kg: 正在滚床单。。。
如果妻子一人在家,如果>25kg,发送警报到微信,老王来啦。。。
睡着后的重量数据一直在波动就说明是浅睡眠,长时间保持一个数据就是深睡眠。
一个简易、低成本、要求不高的智能床垫传感器搞定!
|