npm 包 seamless-peripheral 使用教程

阅读时长 6 分钟读完

seamless-peripheral 是一个用于创建蓝牙低功耗设备的 Node.js 模块。它是一个简单且易于使用的库,允许您通过输入一个配置对象来创建一个新设备。本篇文章将为您介绍 seamless-peripheral 的使用方法,以及涉及到的一些概念和注意事项。

前置知识

在阅读本文之前,您应该对以下概念和技术有一定的了解:

  • Node.js
  • npm
  • 蓝牙低功耗(BLE)
  • 设备角色(central 和 peripheral)
  • GATT 服务和特征
  • Buffer 对象

如果您对以上概念尚不了解,请先学习相关知识。

安装

在开始使用 seamless-peripheral 之前,您需要安装它。

使用 npm 进行安装:

安装完成后,您就可以在您的项目中使用它了。

使用

创建一个设备

以下是一个最基本的创建设备的示例:

-- -------------------- ---- -------
----- -- - ------------------------------

----- ------- - -
  ----- -------
  ---------------- -
    -
      ----- -------
      ------------ ---------
      ----------- -----------
      ------ ----------------- -------
      ------------ -------- -------------- -------------------- -
        -------------------- -- -
          ----- - ------------------------- - ---- ------
          --------------------------
        -- -----
      -
    -
  -
-

----- ---------- - -----------

这个示例创建了一个具有一个通知特征的设备,每秒钟发送一个随机数。让我们仔细看一下这个例子。

在示例中,首先引入了 seamless-peripheral 模块,并定义了一个配置对象 options。配置对象用于描述将要创建的设备及其属性。

这个对象包含一个 uuid 值和一个 characteristics 数组,每个数组元素都表示一个设备特征。在上述示例中,只定义了一个特征,其 UUID 是 2a37,具有 notify 属性和读取权限。该特征还定义了一个用于更新特征值的回调函数 onSubscribe。在回调函数中,它使用 setInterval 定时器来生成随机的特征值,并将其发送至设备。

最后,使用 sp 函数创建一个名为 peripheral 的设备对象。

启动设备

在创建设备后,您需要启动它以便让它与其他设备进行通信。使用以下代码启动设备:

在上面的示例中,设备将运行并以默认参数(无广播名称)开始广告。

停止设备

要停止设备,请使用以下代码:

监听连接状态

使用 on('connect', callback) 方法监听设备连接事件,并在连接到设备时执行回调函数。示例代码如下:

监听断开连接事件

类似地,使用 on('disconnect', callback) 方法监听设备断开连接事件,并在设备断开连接时执行回调。示例代码如下:

示例:使用 seamless-peripheral 创建一个心率测量设备

下面我们来看一个完整的示例:使用 seamless-peripheral 创建一个心率测量设备,并通过 GATT 服务来提供心率数据。

首先,让我们定义一个 GATT 服务并为其添加一个用于传输心率数据的特征:

-- -------------------- ---- -------
----- ---------------- - -
  ----- -------
  ---------------- -
    -
      ----- -------
      ------------ -------- ----------
      ----------- -------- ----------
      ------ ----------------
      ------------ -------- -------------- -------------------- -
        -------------------- -- -
          ----- - ------------------------- - ---- ------
          --------------------------
        -- -----
      -
    -
  -
-

这个服务和特征分别具有 UUID 值 180d2a37。特征具有读取和通知权限,后者将使设备在新数据可用时通知已连接的中央设备。

现在我们可以使用 seamless-peripheral 创建一个设备,并将我们的 GATT 服务添加到其配置中:

-- -------------------- ---- -------
----- -- - ------------------------------

----- ------- - -
  ----- -------
  --------- -
    ----------------
  -
-

----- ---------- - -----------

------------------------ -------- -------- -
  -------------------------------- ---------------------
--

--------------------------- -------- -------- -
  ---------------------------------- ---------------------
--

-----------------------------

这个设备将在 uuid 值为 180d 的服务下提供我们的心率特征。在连接到设备后,设备将每秒钟向连接的设备发送一个随机值。广告和连接事件都通过 on 方法注册了回调函数,以记录它们的发生。

好了,现在您已经知道了如何使用 seamless-peripheral 来创建一个带有 GATT 服务和特征的设备。这将为您提供一个基本的框架,您可以在其中添加其他特征和功能,以便为您的蓝牙低功耗设备添加更多可玩性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055cc781e8991b448da684

纠错
反馈