Windows noble/bleno(Node.js BLE)安裝教學

邱奕修
5 min readOct 1, 2020

--

noble/bleno為BLE(Bluetooth Low Energy)的Node.js模組,在github上便可找到並有詳細安裝步驟,但我自己在安裝時卻是處處碰壁(windows或是Raspbian都是QQ),爬了一陣子文之後才終於搞定。所以今天就先來分享在windows平台上安裝noble/bleno的流程吧!

安裝node-gyp:

安裝noble/bleno前我們需要先安裝node-gyp,安裝的方法為以系統管理員身分開啟powershell,並輸入以下指令:

npm install --global --production windows-build-tools
powershell輸入指令安裝node-gyp

node-gyp會在必要工具(python2.7、Visual Studio Build Tools)下載/更新後安裝,如果電腦本來沒有python2.7或Visual Studio Build Tools的話會需要跑一陣子,看到All done就是安裝完成啦!

安裝node-bluetooth-hci-socket:

接著我們需要安裝node-bluetooth-hci-socket。但在安裝之前,我們需要先替換電腦藍芽的驅動。替換驅動需要使用zadig這個工具,開啟後點擊 Options > List All Devices 底下便會出現電腦中的設備列表,選擇藍芽模組(不確定名稱可在 設定>藍芽與其他裝置>更多藍芽選項>硬體 中找到)並按下Reinstall Driver按鈕後就完成替換驅動了。

注意: 替換驅動後電腦會無法使用藍芽,下文有恢復方法

使用Zadig替換藍芽驅動

完成上面操作後,輸入以下指令便完成node-bluetooth-hci-socket安裝:

npm install bluetooth-hci-socket

安裝noble/bleno:

最後,直接輸入以下指令就能完成noble/bleno安裝啦!

npm install noble
npm install bleno

安裝完後執行程式可能還是會出現

Error: No compatible USB Bluetooth 4.0 device found!

這樣的錯誤訊息,是因為程式並不知道藍芽的USB ID,因此我們需要到node_modules > bluetooth-hci-socket > lib > usb.js 下,將Zadig顯示的USB ID新增到第66行後面。

Zadig顯示的USB ID
在usb.js第66行中輸入USB ID
新稱 "|| usb.findByIds(0x8087, 0x0A2B)"

測試noble:

到這邊noble/bleno的安裝就徹底完成啦!接著就來測試一下,使用noble搜尋附近藍芽裝置吧。

範例程式

執行scan.js

恢復電腦藍芽功能:

當電腦有藍芽需求時,只需要到裝置管理員中找到藍芽模組,按下更新驅動程式後,就能恢復電腦的藍芽功能啦!

至裝置管理員更新藍芽驅動

參考資料:

  1. https://zhuanlan.zhihu.com/p/55476596
  2. https://github.com/tigoe/BluetoothLE-Examples/
  3. https://github.com/noble/node-bluetooth-hci-socket/issues/118

非常感謝讀完本篇文章,希望本文能對你有些幫助,記得按拍手給我一些鼓勵,Medium 文章中一個人最多能按 50 下 !

--

--

邱奕修
邱奕修

No responses yet