Bluetooth: Mesh Speaker¶
2 环境要求¶
board: pan108xxb5_evb
uart (option): 显示串口log
音响:小度音箱,天猫精灵;同时需要准备相对应的三元组
测试软件:PanMesh 或 nRF Mesh
3 编译和烧录¶
例程位置:zephyr\samples_panchip\bluetooth\mesh_speaker
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
根据Zephyr编译环境搭建VSCode开发环境
天猫小度三元组在
ble_mesh.c
对应填充, 多块板子需要填充不同的三元组下载即可验证小度/天猫同时入网的功能。入网前循环打印小度/天猫的UUID unpro beacon
[00:45:23.777,000] <dbg> bt_mesh_beacon.beacon_send: [00:45:23.777,000] <dbg> bt_mesh_beacon.unprovisioned_beacon_send: [00:45:23.777,000] <dbg> bt_mesh_beacon.unprovisioned_beacon_send: beacon_flag tmall [00:45:25.779,000] <dbg> bt_mesh_beacon.beacon_send: [00:45:25.779,000] <dbg> bt_mesh_beacon.unprovisioned_beacon_send: [00:45:25.779,000] <dbg> bt_mesh_beacon.unprovisioned_beacon_send: beacon_flag xiaodu
可以尝试更新CONFIG_BT_MESH_UNPROV_BEACON_INT来加快或延长unprovision广播发送时间。
5 开发说明¶
5.1 KCONFIG宏说明¶
flash相关,应用在快速重启擦除入网信息
CONFIG_BT_SETTINGS=y
CONFIG_FLASH=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y
CONFIG_SETTINGS=y
调试LOG宏,不建议全开,log较多占一定ram
CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_MESH_DEBUG=y
CONFIG_BT_DEBUG_CONN=y
CONFIG_BT_MESH_DEBUG_BEACON=y
CONFIG_BT_MESH_DEBUG_PROV=y
CONFIG_BT_MESH_DEBUG_ADV=y
CONFIG_BT_MESH_DEBUG_PROXY=y
CONFIG_BT_MESH_DEBUG_MODEL=y
CONFIG_BT_MESH_DEBUG_ACCESS=y
CONFIG_BT_MESH_DEBUG_TRANS=y
CONFIG_BT_MESH_DEBUG_KEYS=y
CONFIG_BT_MESH_DEBUG_NET=y
广播相关参数
CONFIG_BT_DEVICE_NAME_DYNAMIC=y # dynamic dev name
CONFIG_BT_DEVICE_NAME="speaker" # dev name
CONFIG_BT_MESH_UNPROV_BEACON_INT=2 # pb adv interval(s)
CONFIG_BT_MESH_MULTIPLE_BEACON=y # y means can provision both speakers
5.2 MAIN函数说明¶
main函数包括3部分
flash相关的配置擦除, 包括函数
ps_settings_init
,short_time_multireset_bt_mesh_unprovisioning
bt_enable()
初始化蓝牙bt_ready()
初始化MESH
5.3 ble_mesh说明¶
ble/mesh相关操作:
static const struct bt_mesh_prov prov
配置入网参数struct bt_mesh_model root_models[]
配置mesh model天猫小度切换入网流程
5.4 其他说明¶
speaker_operate为三元组生成beacon dev uuid和auth_static 相关操作,通用于小度,天猫,小米等智能网关,根据三元组(pid,mac,sec)生成UUID和静态oob认证data。
light model和config model,health model相关参考后续介绍model文档,参考spec文档。
小度天猫vendor暂未加入,后续需要添加至
subsys/bluetooth/mesh_models
中小度入网后,由heartbeat监测设备在线状态,目前暂未完整验证,所以可能会上报设备不在线状态。
6 RAM/Flash资源使用情况¶
Memory region Used Size Region Size %age Used
FLASH: 312332 B 1020 KB 29.90%
SRAM: 39213 B 52 KB 73.64%
IDT_LIST: 0 GB 2 KB 0.00%