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

『瀚思彼岸』» 智能家居第一站

 找回密码
 立即注册
查看: 1136|回复: 25

[室内定位] 自己做最簡單的ESP32藍牙BLE定位器

[复制链接]

25

主题

377

帖子

2267

积分

论坛技术达人

积分
2267
金钱
1870
HASS币
40

教程狂人

发表于 2019-2-28 20:09:06 | 显示全部楼层 |阅读模式
本帖最后由 windgo 于 2019-3-27 17:20 编辑

V2新版討論連結
https://bbs.hassbian.com/thread-6670-1-1.html  

之前寫過藍牙室內定位
https://bbs.hassbian.com/thread-2330-1-1.html
但是一直在找尋用更簡單的方法來實現
今天終於把東西都搞定 來分享給大家

目標:
使用ESP32即可在搜尋到藍牙4.0以上的BLE裝置mac後
發出MQTT封包給HA做自動化
所有設定調整與未來韌體更新都可透過網頁進行,降低使用難度
Image_20190228184506_001.png



應用場景:
1.攜帶手環或是包包放ibeacon基站,將ESP32接收RSSI訊號設弱一點,在離門口較遠的地方就感應到自動開門
2.攜帶手環,ESP32接收RSSI訊號設強一點,門內外放一個,就知道誰出門進門,家裡放多個ESP32,也能知道誰到哪

目前缺點:
1.目前ESP32上的WIFI與BLE功能同時開啟的話會互相干擾,導致BLE搜尋偶而會有找不到的情況
2.ESP32在進行BLE搜尋時,會導致網頁暫時打不開,這時候需要多點幾次網頁重整,或是網頁上點選turn off搜尋

硬體清單:
LED(可不用)
杜邦線(可不用)
ESP32開發板
Micro USB電源線
可開啟藍牙廣播的BLE裝置,如小米手環或ibeacon基站
Image_20190228175007_001.png
Image_20190228175033_001.png

接線圖:

cable.png

設定方式:

參照文章末連結的setup.mp4影片內設定步驟即可
如果初始化設定完成後還想要做第二次設定
帳號請輸入admin,
密碼輸入你第一次設定所改後的密碼
建議先接著console看狀態,測試ESP32是否可搜尋到你的BLE裝置
都測試ok了再將ESP32移到你要掃描的區域

HA設定:
#下面ESP32_BLE的名稱會依照你ESP32網頁上設定的name而不同
sensor:
  - platform: mqtt
    name: "ESP32_BLE"
    state_topic: "/ESP32_BLE/ble"
    value_template: '{{ value }}'
  - platform: mqtt
    name: "ESP32_BLE_ip"
    state_topic: "/ESP32_BLE/ble/ip"
    value_template: '{{ value }}'

機制說明:
找到BLE裝置:(目前支援設定兩個BLE裝置)
1.預設的HA mqtt sensor數值為checking
2.會發出mqtt topic為/ESP32_BLE/ble ,數值為你網頁上設定的值(例如windgo)
3.再發出mqtt topic為/ESP32_BLE/ble ,數值為checking
所以HA的sensor數值變化為 checking --> windgo --> checking
Image_20190228184548_001.png
找不到BLE裝置時,不會發出mqtt封包,僅在console端提示
Image_20190228184524_001.png
ESP32每掃描100次,會發出mqtt topic為/ESP32_BLE/ble/ip ,數值為目前時間+IP
(方便看ESP32是否還在運作與IP多少)
例如 2019-02-28 20:04:01 : 192.168.31.215

小米手環打開藍牙廣播步驟
miband_1.png
miband_2.png
miband_3.png

ibeacon基站設定參數
oe_ibeacon.png

最後如果大家有什麼功能建議或是問題,請都在這個討論串提出,好給後續的人參考
如果私信問我我也會請你改在這邊發文,感謝!

ESP32_BLE燒錄程式下載
https://github.com/windgo1019/ESP32_BLE_scanner/blob/master/ESP32_BLE.rar
ESP32_BLE設定影片下載
https://github.com/windgo1019/ESP32_BLE_scanner/blob/master/setup.mp4
程式碼下載,含BLE Scan+Pubsubclient+iotWebConf+Time
https://github.com/windgo1019/ES ... P32_BLE_scanner.ino

未來可能加入功能(不一定會做):
1.加入WIFI+BLE或純BLE掃描模式選擇
2.比對每次掃描所需時間,做分析比對用
3.可選擇中英文頁面




评分

参与人数 3金钱 +50 HASS币 +20 收起 理由
plutosherry + 10 论坛有你更精彩!
neroxps + 20 厉害了word楼主!
Jones + 20 + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

0

主题

75

帖子

635

积分

高级会员

Rank: 4

积分
635
金钱
560
HASS币
0
发表于 2019-2-28 20:19:52 | 显示全部楼层
针对网络问题和ble冲突的问题,我个人建议如果放有网线的话,可以考虑esp32接个LAN8720模块,1236接信号,78接5v供电来解决wifi冲突的问题,这样wifi不打开的情况下就缓解你这个方案的缺陷
回复

使用道具 举报

25

主题

377

帖子

2267

积分

论坛技术达人

积分
2267
金钱
1870
HASS币
40

教程狂人

 楼主| 发表于 2019-2-28 20:33:22 | 显示全部楼层
hellerx 发表于 2019-2-28 20:19
针对网络问题和ble冲突的问题,我个人建议如果放有网线的话,可以考虑esp32接个LAN8720模块,1236接信号,7 ...

其實可以設定一個模式讓使用者選擇
1.一般模式,WIFI+BLE,但是搜尋率較低
2.掃描模式BLE,等BLE掃描到之後再wifi連接送MQTT封包

這個算是未來考慮做的
回复

使用道具 举报

0

主题

11

帖子

119

积分

注册会员

Rank: 2

积分
119
金钱
108
HASS币
0
发表于 2019-2-28 20:45:37 | 显示全部楼层
好強大!!
回复

使用道具 举报

0

主题

75

帖子

635

积分

高级会员

Rank: 4

积分
635
金钱
560
HASS币
0
发表于 2019-2-28 21:40:24 | 显示全部楼层
windgo 发表于 2019-2-28 20:33
其實可以設定一個模式讓使用者選擇
1.一般模式,WIFI+BLE,但是搜尋率較低
2.掃描模式BLE,等BLE掃描到之後 ...

做序列工作也可以,毕竟这东西布置好了,应该也没多少心思去整天倒腾他
回复

使用道具 举报

6

主题

573

帖子

1947

积分

金牌会员

Rank: 6Rank: 6

积分
1947
金钱
1374
HASS币
0
发表于 2019-2-28 21:47:25 | 显示全部楼层
谢谢分享,楼主666
回复

使用道具 举报

10

主题

270

帖子

1116

积分

金牌会员

Rank: 6Rank: 6

积分
1116
金钱
846
HASS币
10
发表于 2019-2-28 23:05:15 | 显示全部楼层
W大辛苦成果终于面世
回复

使用道具 举报

2

主题

38

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
金钱
264
HASS币
0
发表于 2019-3-1 00:15:01 | 显示全部楼层
厉害了,膜拜大神
回复

使用道具 举报

4

主题

210

帖子

1453

积分

金牌会员

Rank: 6Rank: 6

积分
1453
金钱
1243
HASS币
0

卓越贡献

发表于 2019-3-1 01:33:18 | 显示全部楼层
666终于有人做出来了
回复

使用道具 举报

7

主题

1280

帖子

3566

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
3566
金钱
2286
HASS币
145

灌水之王

发表于 2019-3-1 07:43:19 | 显示全部楼层
额 估计折腾起来很复杂
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2019-5-22 20:53 , Processed in 0.485002 second(s), 41 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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