当前文档版本为 v0.4.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

Bluetooth: Peripheral / Heart-rate Monitor

1 功能概述

此项目演示了蓝牙从机的功能,该工程专门暴露了HR (Heart Rate)GATT服务。

一旦设备连接上,它就会产生虚拟的心率值。

2 环境要求

  • board: 支持 BLE 的蓝牙设备

  • uart(option): 用来显示串口log

  • 测试软件: nRF Connect

3 编译和烧录

项目位置:zephyr\samples_panchip\bluetooth\peripheral_hr

目前可使用ZAL工具或quick build脚本进行编译和下载。

脚本位置:quick_build_samples\bluetooth\peripheral_hr.bat

打开脚本后默认会编译项目,编译完成时,可输入字符进行后续下载等操作:

Input the keyword to continue:
  'b' build                         编译项目
  'r' make clean and rebuild        重新编译项目
  'f' flash download                下载
  'e' erase chip                    擦除芯片
  'o' open project by VS Code       打开 `VS Code`,可查看源码,执行编译下载等
  others exit                       退出
wait input:

4 演示说明

  1. 烧录完成后,设备自动启动蓝牙广播,可以在手机或抓包工具上获取如下信息:

    • Service UUID: 0x180D, 0x180A, 0x180F

    • Device Name: Zephyr Heartrate Sensor

  2. 当手机或其它主设备与其建立连接后,串口log 会显示连接信息,如下:

    Connected
    
  3. 此时,如果使能了Heart Rate Measurement,主机将收到温度数据,如下:

    image

    Peripheral HR 手机端 nRF Connect Service界面

    image

    Peripheral HR 手机端 nRF Connect Log界面

5 低功耗电流测试演示说明

  1. 如果需要测试最低电流的话,我们需要使能DCDC模式,首先打开samples_panchip\bluetooth\peripheral_hr目录下的prj_lp_xtl.conf文件,使能CONFIG_SOC_DCDC_PAN1080=y,默认是处于注释状态的。

  2. 打开samples_panchip\bluetooth\peripheral_hr\src中的main.c,将宏TEST_LOW_POWER_CURRENT设置为1。使能后会使得peripheral_hr广播时为1S周期间隔,同时连接上以后也会更新为1秒连接间隔。

  3. 运行脚本quick_build_samples\bluetooth\peripheral_hr_low_power_xtl.bat,然后选择下载。

  4. 然后使用电流测试工具观测电流,下图为DCDC模式48M主频广播电流:

peripheral_hr_lowpower
  1. 在SDK V0.3版本中低功耗模式下,使用RCL/XTL32000 和XTL32768低功耗电流优化程度暂时是不一样的:RCL/XTL32000支持动态发射功率,但是TX/RX电流偏大,所以低功耗工作电流偏大;XTL32768固定0dBm发射功率,同时TX/RX电流较小,所以低功耗电流偏小。