ESPresence,HA的室内定位

2024-07-27 23:34:11 22点赞 104收藏 36评论

前言:人体存在传感器 可以解决一部分卧室内是否持续有人的问题,为什么是一部分,根据我目前的使用情况来看,睡觉的时候盖被子会有误报的情况,当然,可以用自动化来解决这个问题,比如当我或者我老婆休息的时候,关闭掉自动化,起床再开启。再一个,如果像我这个房间构造来看,我尝试了不同的位置摆放,使用一个并不能很好的覆盖,碰到风扇是开启的话,还是会产生干扰,当然,这里并不是就是说人体存在传感器就不好,准确来说我认为各有优劣,看怎么使用。最后我尝试用ESPresence来解决掉判断卧室是否有人这个问题。

以下是我房子大概的布局。画的很随意简单。

ESPresence,HA的室内定位

正文:ESPresence是通过esp32的蓝牙来获取距离和位置信息,从而判断出设备位置。所以很明显,判断的设备需要随身携带,日常使用来看,就是手机手环。需要的东西是:

1、esp32

2、homeassistant

3、mqtt服务器

4、手机或者手环或者蓝牙信标等。(多多买了个智能戒指,但是信号实在是太弱了。)

esp32esp32

固件刷写:

首先是刷入固件,链接是http://espresense.com/firmware

我们打开链接,插入esp32,如图所示,点击connect,第一次会提示你安装驱动,选择自己购买的esp32的驱动,下载安装即可,安装完毕刷新网页,再次点击connect,会在左上角有提示选项,选择它,按照下面图示进行安装。

ESPresence,HA的室内定位ESPresence,HA的室内定位ESPresence,HA的室内定位ESPresence,HA的室内定位ESPresence,HA的室内定位

等到固件刷写完毕以后,会提示填写wifi信息,填入自己的wifi名称和密码即可。在这里可能会有一个bug,就是填写了以后并不能连接上wifi,这时候也没有关系,保证esp32在通电的情况下,用手机打开wifi,在wifi列表中,找到ESPresence的wifi的ssid,连接上去,不需要密码。然后手机会提示进入登录界面,如果不进入登录界面,看一下手机连接wifi的网段是多少,然后浏览器打开192.168.X.1,会进入ESPresence的后台管理页面,这时候第一行可以选择wifi的ssid,只需要选择自己的wifi ssid填写好密码,保存和重启即可。

重启以后需要去路由器后台查询一下ESPresence的内网地址,然后浏览器输入进入后台管理页面。

ESPresence的管理界面如下图,在Room下面填写一个房间名称,我这里写wj_bedroom,剩下两个选项我没有更改,然后在mqtt下面填写已经安装的mqtt的服务器地址,端口默认1883,填写自己设置的mqtt的账号密码,其他选项可以按照我图里的选项来设置,最后保存重启,就可以在ha的mqtt中看到这个设备了。

管理页面管理页面ESPresence,HA的室内定位

使用教程:

当espresence刷写好后,mqtt里的设备会如图所示,这时候表示已经加入了我们的mqtt,然后就是开始使用了。点击mqtt中设备的访问,可以直接打开这个espresence的后台,打开以后在地址后面加上/ui进入另一个设置界面,这时候进行进一步的设置。

ESPresence,HA的室内定位

首先手机是ios的情况下,点击devices——enroll,输入想要的名称,这里我的手机是iPhone13 pro max,我就填入iPhone13 pro max,然后点击enroll。会有这个页面,这时候用ios设备打开蓝牙,可以搜索到espresence,连接即可,连接以后会获得一个irk,就是该设备的地址,后续会用到。

ESPresence,HA的室内定位ESPresence,HA的室内定位ESPresence,HA的室内定位ESPresence,HA的室内定位

如果手机是安卓,这里用ha的app来演示,打开app,配置——companion应用——管理传感器,找到蓝牙传感器,选择BLE发射器,启用传感器,广播模式选择平衡(3hz),测量功率先不变,我打开了Transmit on Home Network wifi ssid only,这可以在非本地wifi的情况下不发射以节省电量。启用发射器打开,发射器功率我选择的是高。然后打开espresence的后台页面(带ui的页面),在左侧Fingerprints中就可以看到iBeacon开头,后面数字是ha app中uuid的一串数字,这串数字就是安卓设备的地址。

ESPresence,HA的室内定位ESPresence,HA的室内定位ESPresence,HA的室内定位

在这里我说一下,安卓可以用第一个ios的方法,就是在蓝牙页连接espresence,但是经过我的测试,这个方法在安卓的情况下,且在手机黑屏一段时间,espresence会获取不到蓝牙信标,所以安卓手机这里我只建议用ibeacon的方式。

当获取到这些需要的信息以后,就需要配置一下yaml文件,打开ha的configuration.yaml文件,添加mqtt的传感器代码如下:


sensor:

- platform: mqtt_room

device_id: "iBeacon:xxxxxxxxxx"

name: "ESP_Yik_irk_room_location"

state_topic: "espresense/devices/iBeacon:xxxxxxxxxxx"

timeout: 5

unique_id: "ESP_Yik_irk_room_location"

away_timeout: 120

- platform: mqtt_room

device_id: "irk:xxxxxxxxxxxx"

name: "ESP_8P"

unique_id: "ESP_8P"

state_topic: "espresense/devices/irk:xxxxxxxxx"

timeout: 5

away_timeout: 120

ESPresence,HA的室内定位

请严格按照以上格式添加,device:id后面填写Fingerprints中显示的ibeacon;name和unique_id就可以自定义设置需要的名称,填写完成以后重启ha,建议先快速重载,看是否报错,不报错的情况下再重启即可。

重启后在实体中找一下自己创建的传感器是否正常工作,如下图所示,如果有的话证明已经刷好一个并且可以正常开始使用了,剩下的就是微调了。

ESPresence,HA的室内定位

这里我分三种情况来说明:

第一种,一个人或者一家人都是用的ios,由于ios的特性,基本上只需要设置mqtt设备中的absorption数值和max distance这两个数值即可,将手机和esp32放在一起,打开ui界面进入fingerprints中,看看第一个参数的距离是不是小于0.5m,调整一下absorption这个参数,然后将手机放置大概2m距离,在观察该设备irk的距离是否准确即可,至于max distance则是你想要该espresence所检测的最大范围,超过这个距离就会输出not_home或者其他房间。

ESPresence,HA的室内定位

第二种:都是安卓手机,那就只需要在ha的app中,按照同样的设置设置相同的蓝牙信标参数,应该就没有问题(手里只有一台安卓,没法测试)

第三种:又有安卓又有ios,比如我家,老婆用iPhone我用安卓。由于苹果没有办法调整rssi和信号参数,所以我拿ios做基础,通过调整安卓app的参数来尽量保证和ios一样得距离,这里我就是测得如图的参数(上面安卓的参数),仅供参考。

ESPresence,HA的室内定位

回到开头的图,我和我老婆的活动范围基本上就是卧室和客厅,所以目前就用了两个esp32,放置在套房的最两端,将max distance设置好以后,不管是客厅到卧室,还是卧室到客厅,都切换的很丝滑,从而判断卧室是否有人,当然,这个方案就是手机不离身,但是基本上也是手机不离身,如果有带手环或者手表的习惯,其实也可以。

声明:本人专业不是这,只是闲暇时间折腾,并不专业,所以写的不对的地方请大佬指正。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
36评论

  • 精彩
  • 最新
  • 这个固件能带 定位测试 标定就好了。就是我画一个图。上面有距离和遮挡。和所有接收传感器的布局。。而且 接收传感器也可以接收其他 接收传感器 来校准。
    这样我拿着定位器 唉个屋子标定。。。
    后面就可以做的很准了。。这样就可以控制灯。

    校验提示文案

    提交
    这个思路很棒!

    校验提示文案

    提交
    收起所有回复
  • 请教下手环和蓝牙信标,知道MAC怎么加到ESPresence的devices中?

    校验提示文案

    提交
    进入搜索设备页面,第一个setting里面,把你的mac地址添加到第一个known ble Mac addresses,然后参照我上面的代码,把device_id后面的irk:xxxxxxx替换成known:mac地址,举个例子mac是aa:bb:cc:dd:ee,就替换成known:aabbccddee,然后把state_topic后面的也替换成known:aabbccddee,即可

    校验提示文案

    提交
    感谢大佬(🙏ˊᗜˋ*)

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • esp32c3可以用吗

    校验提示文案

    提交
    按照官网介绍是可以的,但是我买那个不清楚什么问题,刷不进

    校验提示文案

    提交
    买的什么合宙的嘛

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 这需要考虑动手能力了

    校验提示文案

    提交
    跟着教程应该问题不大

    校验提示文案

    提交
    嗯嗯,会的不难

    校验提示文案

    提交
    收起所有回复
  • 能不能用摄像头判断房间有没有人?

    校验提示文案

    提交
    frigate,房间内放摄像头还是算了 [皱眉] [皱眉]

    校验提示文案

    提交
    可以的。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 卧室睡觉用人在传感器?干什么用?

    校验提示文案

    提交
    不是卧室睡觉用,是卧室用

    校验提示文案

    提交
    收起所有回复
  • 感觉这个定位可以在全屋音响下做一个跟随播放的事诶

    校验提示文案

    提交
    好的玩法,可以尝试看看,不过要注意一下安装位置

    校验提示文案

    提交
    不知道买哪个esp32。。而且我农村自建多层可能不好测距 [无语]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 卧室怎么用?睡觉前再关了雷达?不然睡着翻身灯不就亮了?

    校验提示文案

    提交
    开灯这个容易解决,自动化设置时间段就好了,误报是指睡着会判断成无人,触发无人的自动化

    校验提示文案

    提交
    收起所有回复
  • 这个不错。就是蓝牙设备不好弄。太费电了

    校验提示文案

    提交
    我用的手机,基本上也不离身,所以用起来效果还可以

    校验提示文案

    提交
    收起所有回复
  • 想找一款可以定位猫的

    校验提示文案

    提交
    给猫身上挂个蓝牙信标就可以

    校验提示文案

    提交
    收起所有回复
  • 小白一枚,也想体验一把,弱弱问一句,楼主的esp32 和外壳链接有吗 [苦恼]

    校验提示文案

    提交
    某宝买就行,我买的是esp32,2102还是340好像都可以。。。。壳的话都会明武那家店买的,但是会顶按键。。。。我觉得一般般

    校验提示文案

    提交
    [赞一个] 感谢回复,我去瞅瞅看

    校验提示文案

    提交
    收起所有回复
  • 我对你的房子户型充满好奇

    校验提示文案

    提交
    哈哈哈老房子而已

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
104
扫一下,分享更方便,购买更轻松