打造可识别静态人体的人体传感器——使用效果


以下方法经本人验证通过,环境如下:

群晖 DS918+ DSM 6.2.4

mosquitto version 2.0.11

Home Assistant 0.91.4


前言:大部分人入门智能家居之处,最早接触的就是人体传感器,实现简单的如人来开灯,人走关灯的需求。我也不例外,家里各个房间布满了小米或绿米的人体传感器。

但市面上这类传感器因工作原理的原因,实际根本无法识别静态的人体。所以这类传感器只能叫人体移动传感器,算不上是真正意义上的人体存在传感器,导致在很多场景下具有天然的缺陷。

举例说明:人坐在书房看书,保持一段时间禁止后,就会被识别为无人状态,然后灯就关了!同理厕所蹲的时候也会有这种尴尬,人工智能变智障。

网上各种解决方案也有,但都治标不治本,不是我想要的完美方案。因此,我决定自己创造一个!

在之前的文章中,我描述了自己是如何构思设计,选择硬件并编码实现的,这篇文件简要介绍下实际是如何使用的

先上效果

第一步:连接本地网络和MQTT服务

首先,最终的人体传感器如下图所示,是一个小方盒子,尺寸是45mm * 47mm * 36mm 。盒子的正面(传感器一方)有状态指示灯的位置,我做了个小小的LOGO。一边的侧面是电源接口及重置按钮。

接入电源后,系统启动,首次使用时候,系统会自动生成一个WIFI热点,名称以FEEUS_开头,无密码。使用手机连接该WIFI后会打开设置页面。如果没有自动打开设置页面,也可以通过手机的浏览器,在地址栏输入 192.168.4.1 打开。打开后页面如下图所示

点击“网络设置”进入设置页面,如下图所示

页面上方会列出当前范围内可连接的WIFI,如果没有出现你需要连接的WIFI,可将人体传感器靠近家中的路由器后点击“刷新WIFI列表”即可

然后点选要连接的WIFI名称,该名称会自动填写到WIFI SSID处,输入该WIFI的密码

在下方的MQTT设置中,输入你的MQTT服务端地址,端口。如果你和我一样是支持匿名登陆的,用户名密码置空即可,否则,输入有效的用户名和密码。

最后,自定义设置你的主题,最好能标识该设备的位置,例如“study”或者“toilet”之类的。

设置完成后,点击保存按钮。系统会提示保存成功并重启。重启后系统会自动连接你设置的WIFI和MQTT服务。

如果因设置错误连接失败,或者你更改了网络环境需要重新配置,设备会闪灯提示网络连接异常。此时可长按(5秒)重置按钮,系统会清除原有设置,重新生成WIFI热点,再次连接后按上述方法重设即可。

第二步:如何配置HomeAssistant(可选)

在HomeAssistant配置文件中按如下配置即可

binary_sensor:
  - platform: mqtt
    name: "human_sensor_study"
    state_topic: "study"
    payload_on: "1"
    payload_off: "0"
  • name : 自定义一个名称
  • state_topic :这个要填写你在第一步中配置的“主题”

保存配置后重启服务,即可看到该二元传感器及状态

第三步:如何配置Node-Red(可选)

拖入一个mqtt输入节点,双击后可添加新的mqtt-broker节点

在编辑页面输入节点的名称,服务端地址,端口,如果不支持匿名登陆,则在安全选项卡中填入用户名密码

保存后选择刚刚添加的mqtt服务,填入主题,这个主题就是你在第一步配置的“主题”,例如“study”

保存后,即可看到连接状态,如果需要展示接收到的信息,添加一个debug输出即可。

第四步:Node-Red中常用的联动设置(可选)

这里我以最常用的控制灯光为例写了一个流,供参考

思路为:当收到传感器信息后,判断是有人还是无人,如果有人,开灯,同时将一个变量设置为有人;当收到传感器信息为无人时,先将变量改为无人,然后等待48秒(人离开时候,传感器确认无人约需1分12秒。设置为48秒的意思就是人离开2分钟后自动关灯),48秒后如果变量还是无人,那么就关灯。如果在等待过程中有人进入,那就触发了上一个流程,变量变为了有人,自然就不会关灯了。

  • 至此,我整个DIY人体存在传感器的过程就结束了,该小设备我放在书桌前已经稳定运行了3个月,从此再也不会出现静止看书的时候关灯的情况了
  • 如果你也有兴趣DIY一个,可参考我的文章,如果你不想自己花时间或设备不足,也可以直接使用我制作的成品,地址是:淘宝链接 感谢你的支持!

如果您喜欢这篇文章,或者它给您带来了帮助,您可以请我们喝一杯咖啡,我们将非常感谢您的支持!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

8 − 8 =