最近捣鼓智能家居,用ESP32进行蓝牙设备定位,追踪小米手环手环,根据信号强度判断人是否在房间或者家里。
硬件与软件准备工作
硬件 | 软件 |
---|
ESP32 | ESPHome v2022.2.1 |
NAS/软路由 | Homeassistant 2021.11.4 |
小米手环 | |
首先要在“小米穿戴”APP中打开小米手环的“蓝牙广播”功能,重启小米手环并确定“蓝牙广播”处于开启状态。进入小米手环的设置,记录下小米手环的蓝牙地址,例如我的小米手环蓝牙地址FA:4C:19:74:CF:20
编译并上传固件
详细参见ESPHome的ESP32 Bluetooth Low Energy Tracker Hub章节,下面粘贴我的ESPHome的编译配置yaml。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| esphome: name: esp32
esp32: board: esp32dev framework: type: esp-idf version: latest sdkconfig_options: CONFIG_COMPILER_OPTIMIZATION_SIZE: y advanced: ignore_efuse_mac_crc: false
logger:
api:
ota: password: ""
wifi: ssid: !secret wifi_ssid password: !secret wifi_password
esp32_ble_tracker: scan_parameters: interval: 1s window: 500ms active: false sensor: - platform: ble_rssi mac_address: FA:4C:19:74:CF:20 name: "MI Band RSSI value"
|
其中scan_parameters:
字键中的参数是重点,默认参数不能保证每次扫描都获得信号强度。