1、案例简介
HaaS100自带低功耗蓝牙功能,可以通过自带的蓝牙功能完成诸如与手机交互,蓝牙配网等功能。
本案例主要演示使用HaaS轻应用框架(JavaScript),在HaaS100上完成BLE的自定义GATT服务,并开启广播让手机可以扫描并连接,连接后将数据上报到手机。
2、物料清单
HaaS100开发板(需将蓝牙天线接好)。
安装NRF Connect软件的手机。
3、代码实现
编写app.js。
开启蓝牙功能
参考代码如下,调用bt_host模块中的open函数即可开启蓝牙功能。
bt_host.open的主要参数定义如下:
deviceName: 设备名
conn_num_max: 最大连接数
调用成功后,返回bt_host的实例。
import * as bt_host from 'bt_host'
var bt_host_instant = bt_host.open({
deviceName: 'ble_test',
conn_num_max: 2,
success: function() {
console.log('bt_host init success');
setTimeout(() => {
app_add_service()
app_start_adv();
}, 1000)
},
fail: function() {
console.log('bt_host init failed');
}
});
蓝牙服务注册功能
蓝牙服务是BLE蓝牙的基础,通过服务来发现设备功能并交互数据,如下参考代码定义了一个自定义的服务。
add_service的主要参数如下:
service: 结构体,服务定义,需要包含一个服务的uuid,s_uuid。以及一个从属于此服务的属性列表,每个属性要包含属性uuid,属性的读写权限,如果属性包含描述项,也需要定义。关于服务的定义可参考蓝牙标准文档。
function app_add_service() {
let add_service = {
service: "{\
\"s_uuid\":\"0x1A1A\",\
\"chars_list\":[\
{\
\"char_uuid\":\"0x1B1B\",\
&nbs