ESP32 蓝牙低功耗信标
esp32_ble_beacon 组件使用您的 ESP32 设备创建一个蓝牙低功耗信标。信标是 BLE 设备,重复发送预定义的数据包。然后,智能手机等设备可以接收此数据包,并可用于跟踪手机的位置。
WARNING
ESP32 上的 BLE 软件协议栈会消耗设备上大量的 RAM。
如果您在设备配置中包含太多额外的组件,很可能会发生崩溃。内存密集型组件,如 语音助手 和其他音频组件,最有可能导致问题。
# 示例配置条目esp32_ble_beacon: type: iBeacon uuid: 'c29ce823-e67a-4e71-bff2-abaa32e77a98'高级选项:
-
major (可选, int): 此信标的 iBeacon 主标识符。通常用于对信标进行分组,例如将同一建筑物中的所有信标分组,但如果 BLE 接收器不使用它,则没有任何效果。默认为
10167。 -
minor (可选, int): 此信标的 iBeacon 次标识符。通常用于标识 iBeacon 组内的信标。默认为
61958。 -
min_interval (可选, 时间): iBeacon 最小发送间隔,以毫秒为单位,范围从 20 到 10240。将此值设置为小于
max_interval可以让 BLE 硬件更好地避免与其他 BLE 传输发生冲突。默认为 iBeacon 规范定义的间隔:100ms。 -
max_interval (可选, 时间): iBeacon 最大发送间隔,以毫秒为单位,范围从 20 到 10240。将此值设置为大于
min_interval可以让 BLE 硬件更好地避免与其他 BLE 传输发生冲突。默认为 iBeacon 规范定义的间隔:100ms。 -
measured_power (可选, int): 在距离设备 1 米处测量的 iBeacon RSSI。这用于校准 iOS 中的测距计算。设置此值的过程可以在 Apple 的 iBeacon 入门 PDF 中找到,标题为 校准 iBeacon。范围 -128 到 0。默认为
-59。 -
tx_power (可选, int): iBeacon 的发射功率,单位为 dBm。 可选值为 -12、-9、-6、-3、0、3、6、9。默认为
3dBm。在 ESP-Hosted 平台(如 ESP32-P4)上不可用。
首先,您需要设置 ESPHome 的配置。只需复制上面的配置并将 UUID 更改为唯一的值。例如,您可以复制这个随机生成的 UUID:
然后,只需编译并烧录 ESP32。
当一切设置正确后,您应该可以使用您选择的 iBeacon 扫描器看到它。在 iPhone 上,这应该已经在蓝牙屏幕中工作(未测试),在 Android 上,您需要使用像 “nRF Connect for Mobile” 这样的应用。
要使用这些信标跟踪手机的位置,您需要使用另一个应用。例如,我使用 owntracks 的本指南 让我的家庭自动化系统知道我何时在家或外出。另一个不错的 Android 应用是 Beacon MQTT。它可以同时使用多个信标。