nobleの新しい感じのサンプルがなかったので書いてみる。
- macOS Sierra
- Node.js v8.1.2
準備
$ npm init -y
$ npm i --save noble
このバージョンだとnpm install
時にwarning
が出るけど問題なく動作します。
コード
app.js
'use strict';
const noble = require('noble');
const knownDevices = [];
//discovered BLE device
const discovered = (peripheral) => {
const device = {
name: peripheral.advertisement.localName,
uuid: peripheral.uuid,
rssi: peripheral.rssi
};
knownDevices.push(device);
console.log(`${knownDevices.length}:${device.name}(${device.uuid}) RSSI${device.rssi}`);
}
//BLE scan start
const scanStart = () => {
noble.startScanning();
noble.on('discover', discovered);
}
if(noble.state === 'poweredOn'){
scanStart();
}else{
noble.on('stateChange', scanStart);
}
実行
$ node app.js
1:<デバイス名称>(<UUID>) RSSI-75
2:<デバイス名称>(<UUID>) RSSI85
3:<デバイス名称>(<UUID>) RSSI-49
・
・
・
デバイスが見つかる度にコンソールに表示されます。