iOS蓝牙4.0(BLE )程序员

Noble - Window平台NodeJs蓝牙BLE开发库

2019-01-22  本文已影响9人  speculatecat

背景

我和我的团队曾经开发过一款基于蓝牙连接的智能家居产品,但由于市场的原因,这个产品和项目已经停止了。最近,想用手上剩下的存货做一些使用电脑与硬件连接应用实验。
然后发现在电脑平台下进行蓝牙开发,远远没有在 Andorid / iOS 上简单。主要问题如下:

新进展

最近有新的需求,需要使用 Electron ,于是最近有研究一下 Node.js,然后又开始心痒痒去研究下这个 noble 库。然后发现之前在 Window 平台上安装,并没有按照它的介绍先去安装依赖以及替换 USB 蓝牙适配器的驱动,所以才会造成安装失败。

然后经过我仔细看说明,然后尝试了一番,终于可以完成 noble 的安装,以及能正常使用。以下是一个搜索的 Demo:

Ble Sca

图中可以看到,可以正常使用 noble 搜索到我附近的设备,其中 Upots 是我的设备,另外一个是手上的小米手环3。

依赖安装

noble 在 Linux 和 MacOS 上的安装还是比较简单的,所以可以参考 noble/github 上的介绍就可以了。以下着重演示以下 Window10 下的依赖安装和驱动替换。

首先,我们需要安装的是 node-gyp / github
在 WIndow 下安装,需要先使用管理员权限打开 powershell 或者 CMD命令行工具,这里推荐使用 powershell。打开后,输入以下命令:

npm install --global --production windows-build-tools

等待安装完成后即可。

然后,我们需要继续安装 (node-bluetooth-hci-socket / github)[https://github.com/noble/node-bluetooth-hci-socket#windows] 库,在安装之前,我们需要先替换我们的 USB蓝牙适配器驱动。这里要注意的是,当我们替换掉驱动以后,我们就不能在 Window 设置里面使用蓝牙了,如果想要恢复,可以通过 设备管理器-打开设备-更新驱动 把驱动替换回来。
替换驱动我们需要使用一个 Zadig 的工具,下载后,打开软件,然后选择 Option - List All Devices ,再在下拉菜单中选中我们的设备,我这款绿联的USB蓝牙适配器的名称是 CSR8510 A10,关于这个蓝牙的名称,可以在 设置 - 蓝牙和其他设备 中查看。
选择好以后,选择 Reinstall Diver ,等待片刻即可。

Zadig ReinstallDirver

完成上面的替换驱动操作后,再使用下面的代码安装 node-bluetooth-hci-socket 即可:

npm install bluetooth-hci-socket

最后,我们再把 (noble / github)[https://github.com/noble/noble] 安装好即可:

npm install noble

测试

接下来,我们可以测试一下我们的安装和配置是否成功。scan.js / tigoe github 这是在 Github 上的一个 noble 扫描设备的 Demo,可以下载这个程序,测试一下,如果安装正确,就能看到能搜索出来我们周边的蓝牙设备。

后续

到这里为止,我仅仅是完成了这个库的配置和基本的搜索测试,接下来,将继续研究一下内容:

参考资料

tigoe/BluetoothLE-Examples
noble/noble
nodejs/node-gyp
noble/node-bluetooth-hci-socket

上一篇 下一篇

猜你喜欢

热点阅读