Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
AppScope/ | 12-May-2024 | - | 35 | 33 | ||
entry/ | 12-May-2024 | - | 1,620 | 1,438 | ||
hvigor/ | 12-May-2024 | - | 9 | 8 | ||
README.md | D | 12-May-2024 | 2.6 KiB | 69 | 43 | |
build-profile.json5 | D | 12-May-2024 | 1.1 KiB | 43 | 43 | |
hvigorfile.ts | D | 12-May-2024 | 159 | 2 | 1 | |
hvigorw | D | 12-May-2024 | 1.4 KiB | 49 | 28 | |
hvigorw.bat | D | 12-May-2024 | 1.5 KiB | 65 | 47 | |
oh-package.json5 | D | 12-May-2024 | 242 | 13 | 12 |
README.md
1## OpenHarmony BLE蓝牙连接 2 3### 1. 简介 4 5 OpenHarmony蓝牙模块提供了基础的传统蓝牙能力以及BLE的扫描、广播等功能,这里将介绍如何通过OpenHarmony提供的@ohos.bluetooth (蓝牙接口)打开当前设备的蓝牙,连接BLE蓝牙设备,并订阅获取来自BLE设备的数据。 6 7### 2.设备与环境 8 9 **设备**:Unionpi Tiger、Sinocare三诺臂式电子血压计 10 **开发工具**:DevEco Studio 3.1.0.200 11 **OpenHarmony SDK**:API9 12 13### 3.逻辑流程 14 15 开始 —》Unionpi_Tiger 设备打开蓝牙 —》开始扫描BLE设备 —》 打开三诺臂式电子血压计 —》连接血压计 —》Unionpi_Tiger 订阅获取血压计的服务 —》三诺臂式电子血压计开始测量血压 —》通过日志查看BLE设备发送过来的数据 —》结束 16 17### 4.操作流程 18 19Unionpi_Tiger获取权限,打开蓝牙: 20 21 22 23开始扫描BLE设备,等待扫描设备完成,点击连接按钮,连接设备。 24 25 26 27成功连接设备后,可以配对列表中看到连接的BLE设备,并且在日志中看到连接成功 28 29 30 31 32 33在血压计中点开始按钮,开始测量,可以在日志中看到数据 34 35 36 37测量结果完成后,在日志中查看结果,同时查看血压计的数据,两者数据一致 38 39 40 41 42 43#### 注意: 44 451.因为扫描的设备过多,在代码中的扫描中添加了设备地址的过滤条件,为了方便查看。 46 47```ets 48 bluetooth.BLE.startBLEScan( 49 [{ 50 deviceId: "C0:00:00:03:EE:FE", 51 }], 52 { 53 interval: 7000, 54 dutyMode: bluetooth.ScanDuty.SCAN_MODE_LOW_POWER, 55 matchMode: bluetooth.MatchMode.MATCH_MODE_AGGRESSIVE, 56 } 57 ) 58``` 59 602.如果需要向服务端发送设置通知此特征值请求、client端向低功耗蓝牙设备写入特定的特征值、订阅蓝牙低功耗设备的特征值变化事件,则需要先通过getServices接口获取该BLE设备的所有服务,再从这些服务中找到所需的服务。并且需要服务的各项UUID,Sinocare三诺臂式电子血压计的数据服务uuid如下: 61 62``` 63serviceUuid: "0000FC00-0000-1000-8000-00805F9B34FB", 64characteristicUuid: "0000FCA0-0000-1000-8000-00805F9B34FB", 65descriptorUuid: "00002903-0000-1000-8000-00805F9B34FB", 66``` 67 68具体代码可以参考当前目录`entry\src\main\ets\pages\Bluetooth.ets` 69