主要内容

在Android上使用BLE块

本示例展示如何配置您的Android™设备以通过蓝牙®低能耗(BLE)协议发送数据,并使用来自Simulink®Android设备支持包的BLE块在另一个Android设备上接收数据。金宝app金宝app

BLE术语

  • Bluetooth Low Energy (BLE) -一种用于低功耗和短距离通信的无线协议,主要用于医疗保健、健身、家庭自动化等应用。

  • 服务——服务用于将数据分解为逻辑实体,并包含称为特征的特定数据块。

  • 特征——封装单个数据点,尽管它可能包含相关数据的数组,例如来自3轴加速度计的X/Y/Z值。

  • 通用属性概要(GATT)——使用称为服务和特征的概念定义两个蓝牙低能耗设备来回传输数据的方式。

  • 外围设备-定义服务和特征的设备,并向附近的BLE设备通告其存在。它作为服务器,接收来自BLE中心设备的连接和数据请求。

  • 中心-向BLE外围设备发送连接请求和数据请求的设备。它充当客户端。

  • 通用唯一标识符(UUID) -一个128位的值,用于识别BLE服务和特征。每个服务和特性都有自己的UUID。标准BLE服务由蓝牙特别兴趣小组定义。

  • 自定义UUID -这是一个用户定义的UUID,用于自定义服务和特征。

简介

心率BLE设备允许实时测量并将人体心率信息传输到附近的移动设备。

在本例中,我们使用两个Android设备来模拟BLE心率传感器的测量,并在Android应用程序中显示结果。

其中一个设备使用BLE心率服务和测量特性模拟心率传感器,提供近似典型数据的人工数据,如心率(每分钟跳动)、能量消耗(焦耳)和RRinterval(两次心跳之间的时间间隔)。另一个Android设备运行一个原型应用程序来处理心率信息并显示给用户。结合起来,您可以模拟一个完整的BLE传感器测量工作流程。

心率服务和特点

BLE心率服务将传感器提供的心率信息组织成以下特征。

更仔细的检查心率测量特征显示了来自传感器的实际数据如何排列成特征格式。

心率测量-此特性用于发送/接收心率测量。特征中的第一个字节表示标志。通过读取标志中的位,可以解析特征中的测量数据并将其读入设备。

这个例子提供了两个将部署到Android设备上的Si金宝appmulink模型:

  • androidblesendheartrate:该模型使用BLE发送块作为BLE心率传感器设备,将心率测量特征值发送到连接的BLE设备。

  • androidblereceiveheartrate:一个模型使用BLE接收块从第一个模型发送人工心率数据获得心率传感器数据。

先决条件

所需的硬件

  • 带有Lollipop(5.0)或更高版本的Android设备,配置使用Android硬件设置(外围设备)

  • 装有果冻豆(4.3)或更高版本的Android设备,配置使用Android硬件设置(中央设备)

  • USB电缆连接设备到您的开发计算机

任务1 -发送心率测量数据

使用模型,您的Android设备将模拟BLE心率传感器(外围设备)支持标准BLE心率服务的行为。金宝app您可以控制发送到连接的中央设备的心率数据。

1.打开androidblesendheartrate在MATLAB®命令窗口中执行此命令。

open_system (“androidblesendheartrate”

2.使用USB电缆将外围设备连接到开发计算机。

3.在建模在工具条的选项卡上,选择模型设置

4.选择硬件实现窗格和从硬件板参数列表,选择Android设备

5.点击设备的选择并确保该设备与您的外围设备匹配。点击好吧

6.双击祝福送观察一下模式设置为外设(服务器),服务设置为心率和特征设置为“心率测量”。

7.ConvertToHeartRateFormatMATLAB函数接受心率(uint16),能量消耗(uint16)和RRInterval (uint16)作为输入和输出长度为7的int8数组。输出数组的第一个元素将是flag,第二和第三个元素将是Heart Rate,第四和第五个元素将是Energy expenditure,类似地,第六和第七个元素将是RRInterval。

8.在您的Android设备上,单击>蓝牙设置,并打开蓝牙。

9.在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动在您的设备上运行Sim金宝appulink模型。

10.使用设备屏幕上的滑块,更改“心率”、“能量消耗”和“RRInterval”值。

11.一旦外围设备连接到中心设备,就可以在中心设备上查看这些值。

任务2 -配置接收模型

使用模型时,您的中心设备将接收来自外围设备的心率测量特征数据。

1.打开androidblereceiveheartrate模型。

open_system (“androidblereceiveheartrate”

2.使用USB电缆将中央设备连接到开发计算机。

3.在建模在工具条的选项卡上,选择模型设置

4.选择硬件实现窗格和从硬件板参数列表,选择Android设备

5.点击目标硬件资源>设备选项,选择中心设备,单击好吧

解释心率测量数据

BLE接收块将接收到的心率测量数据输出为长度为7的int8数组。的InterpretHeartRateData模型中的MATLAB函数块,从接收到的数据数组中解释心率,能量消耗和RR间隔值。

标准心率测量特征数据格式:

  1. 前8位代表标志。

  2. 如果标志的第0位为1,则心率格式为uint16,否则为uint8。

  3. 如果标志的第3位为1,则接收到的数据中存在能量消耗(uint16)。

  4. 如果标志的第4位是1,那么RRInterval (uint16)出现在接收的数据中。

InterpretHeartRateData函数使用bitget而且定型MATLAB函数解释所接收的字节数组中的数据。bitget利用MATLAB函数提取标志中某位的值。定型使用MATLAB函数将两个字节转换为uint16数据值。同样的,定型函数可用于将接收到的数据字节转换为所需的任何数据类型。

任务3 -扫描附近的BLE设备

此任务也使用与任务2相同的模型。在此任务中,您将扫描外围设备。

1.双击祝福收到观察一下模式设置为中心(客户端)模式。

2.若要了解所要连接的外围设备及其支持的特性,请单击金宝app扫描按钮。

3.开发计算机上将会打开一个向导,提供安装BLE Scanner应用程序的说明,如下面的截图所示。

4.在中央设备上,单击>蓝牙设置,打开蓝牙。

5.点击安装按钮在向导上。

6.BLE扫描仪应用程序将安装在您的中央设备上。检查您的中央设备,应用程序将在您的中央设备上运行。

7.这个应用程序将扫描所有附近的BLE外围设备,并将它们显示在您的设备上。

8.选中所有需要检索BLE信息的设备前的复选框,单击发现服务

9.将检索所选设备支持的BLE地址、设备名称、BLE服务和BLE特性等BLE信息。金宝app

10.点击保存并关闭按钮将检索到的BLE信息保存在xml文件中。

11.转到开发计算机上的向导,单击下一个按钮。

12.向导将显示检索到BLE信息的所有设备。

13.点击完成按钮,关闭向导。

任务4 -接收心率测量数据

使用任务2中所示的模型,您将在中央设备上部署接收应用程序,并将接收心率测量特征数据。

  1. 双击祝福收到block,选择任务1中配置为“外围设备”的Android设备,从外围设备下拉。

  2. 选择心率/心率测量特征参数下拉。

  3. 在中央设备上,单击>蓝牙设置,打开蓝牙。

  4. 硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动在您的设备上运行Sim金宝appulink模型。

  5. 接收到的心率、能量消耗和RRInterval值可以在中央设备上查看。

其他可以尝试的事情

  • 更改这两个模型中的服务和特征。

  • 尝试使用支持标准BLE心率服务的实际BLE心率传感器,而不是外围设备。金宝app

  • 为这两个模型指定您自己的自定义特征(UUID)。