npm 包 @abandonware/noble 使用教程

阅读时长 7 分钟读完

前言

@abandonware/noble 作为一个 Node.js 的 npm 包,是一个用于处理蓝牙 Low Energy 设备的模块。它基于特征驱动方式,让你能够很方便地读写蓝牙设备的特征和描述符。

本文将介绍如何使用 @abandonware/noble 模块来处理蓝牙 Low Energy 设备,并附带具体的代码示例。文章假定你已经熟悉 JavaScript、Node.js 和蓝牙技术的基础知识。

安装

若你还未安装 Node.js,请先前往官方网站下载并安装最新版 Node.js(截止本文编写时,最新版为 14.17.0)。

在 Node.js 安装好之后,就可以使用 npm 来安装 @abandonware/noble 模块了。在终端中输入以下命令:

使用

安装完成后,我们需要用 require 函数将 @abandonware/noble 模块引进来:

初始化

在使用任何 @abandonware/noble 提供的方法前,我们需要先初始化 noble。noble 的初始化过程非常简单,只需要调用 noble 的 start 方法即可:

扫描设备

在 noble 初始化后,我们就可以使用 noble 的 startScanning 方法来扫描周围的低功耗蓝牙设备。当搜索到目标设备时,noble 会通过你传入的回调函数通知你:

连接设备

扫描到感兴趣的设备后,我们需要使用 noble 的 connect 方法来连接设备:

其中 peripheralUuid 是你感兴趣的设备的 UUID。在连接成功后,你可以使用 noble 的 discoverServices 方法来发现设备上的服务:

其中 serviceUuids 是你感兴趣的服务的 UUID。

读写特征值

在 noble 让我们成功连接到设备并发现服务后,我们就可以使用 noble 的 read 和 write 方法来读写设备上的特征值:

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

-- -------- --------------
-------------------------- ------ ----- -- -
  ------------------- - ---- - ------ - -----
---
展开代码

示例代码

以下是一个完整地利用 @abandonware/noble 读取蓝牙 Low Energy 温度计数据的示例代码:

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

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

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

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

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

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

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

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

-------- --------------------------------------------- -
  ---------------------------- ------- ----- -
    -- ------- -
      ------------------------ -------
    - ---- -
      ---------------------- -------------------
    -
  ---
-
展开代码

总结

在本文中,我们介绍了如何使用 Node.js 的 @abandonware/noble 模块来处理蓝牙 Low Energy 设备,具体包括了如何扫描设备、连接设备、读写特征值等操作。本文还提供了一个完整的读取蓝牙 Low Energy 温度计数据的示例代码,可以直接在浏览器中运行。

当然,这只是一个简单的应用场景,真正使用 noble 处理蓝牙设备还有很多其他的方面需要考虑,比如断开连接后的自动重连、蓝牙设备服务的枚举、特征值的解析等等,这里就不再赘述了。如果你有相关的需求,可以去 noble 的官方文档中了解更多关于该模块的详细信息。

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

纠错
反馈

纠错反馈