Solution: BLE Vehicles Key¶
1 功能概述¶
此项目演示模拟蓝牙感应钥匙功能,当手机足够接近电动车时,会自动解锁电动车。实际该项目通过灯的状态来观察开关,通过距离远近会影响灯的开关以及亮度。
2 环境要求¶
board: pan108xxb1_mesh_dongle
uart (option): 显示串口shell
测试硬件:智能手机
PC工具: 软件shell工具(支持串口,波特率921600)
3 编译和烧录¶
例程位置:zephyr\samples_panchip\solutions\ble_vehicles_key
,编译时board请选pan108xxb1_mesh_dongle
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
将ble_vehicles_key烧录至EVB板后,使用shell工具连接上EVB开发板(波特率921600),会显示如下log。通过连续双击tab可以显示出当前可用的命令。
Start uart fifo demo..
Set up key1 at GPIO_P1 pin 0
controller initializing....
Bluetooth initialized
Advertising successfully started
[00:00:00.032,000] <inf> fs_nvs: 8 Sectors of 4096 bytes
[00:00:00.032,000] <inf> fs_nvs: alloc wra: 0, f80
[00:00:00.032,000] <inf> fs_nvs: data wra: 0, 90
[00:00:00.130,000] <inf> bt_hci_core: No ID address. App must call settings_load()
[00:00:00.134,000] <inf> bt_hci_core: Identity: C9:07:1B:E8:6B:DC (random)
[00:00:00.134,000] <inf> bt_hci_core: HCI: version 5.1 (0x0a) revision 0x0003, manufacturer 0x07d1
[00:00:00.134,000] <inf> bt_hci_core: LMP: version 5.1 (0x0a) subver 0x0000
[00:00:00.140,000] <inf> bt_adv: Start Advertising as 48:EB:23:E9:73:83 (random)
uart:~$
clear date device devmem flash help history kernel
log pwm resize sensor shell vcmd
uart:~$ vcmd
tx_power rssi_open_thr rssi_close_thr
uart:~$ vcmd
智能手机蓝牙设置中找到PAN Vehicle Key设备,选中连接直接配对。
uart:~$ Connected via connection (0) at 72:1C:DD:8C:DC:3F (random)
Security changed: 72:1C:DD:8C:DC:3F (random) level 2
ccc 0001
ccc consumer 0001
然后我们就可以通过支持的test命令来模拟蓝牙自拍杆的相关动作
5 支持的模拟测试命令¶
测试命令 |
功能描述 |
---|---|
|
设置发射功率 |
|
设置“开”状态的阈值 |
|
模拟“关”状态的阈值 |
相应命令支持的函数可以参考shell命令实现:
SHELL_STATIC_SUBCMD_SET_CREATE(vcmd_test,
SHELL_CMD(tx_power, NULL, "Set RF Tx Power", cmd_tx_power),
SHELL_CMD(rssi_open_thr, NULL, "Set RSSI Threshold Value", cmd_rssi_open_thr),
SHELL_CMD(rssi_close_thr, NULL, "Set RSSI Threshold Value", cmd_rssi_close_thr),
SHELL_SUBCMD_SET_END /* Array terminated. */
);
SHELL_CMD_REGISTER(vcmd, &vcmd_test, "Vehicle Test commands", NULL);
6 Dongle硬件说明¶
K1按键用于清除配对信息。
红灯用于rssi阈值模拟开关状态,如果超出rssi设定的某个阈值,该红灯会灭掉。
蓝灯表示连接状态,亮表示处于连接中,灭表示已经断连。
UART1 P06,P07可以用于输出串口流数据,图形化观察RSSI变动,使能开关为CONFIG_RT_RSSI_UART_GRAPH。
7 实时观察RSSI¶
通过UART1(P06,P07)连接串口模块(波特率为921600,可参考上图设置),即可实时观察RSSI状态,其中示意图中绿色的为滤波后的RSSI,蓝色为处理前的原始RSSI。
RSSI波形串口工具下载地址:SerialTool1.4.0a_Win32_Setup.exe
8 RAM/Flash资源使用情况¶
Memory region Used Size Region Size %age Used
FLASH: 141488 B 384 KB 35.98%
SRAM: 40550 B 50 KB 79.20%