前:Bluetoothが載ってるArduino派生ボード「BlendMicro」とNode.jsでBLEした


Bluetooth Low Energyが載ったArduinoMicroであるBlendMicroと、Node.jsで通信するためのライブラリを作った。
serialport npmと似たAPIで使えるようにしたので、けっこうわかりやすいと思う。

https://www.npmjs.org/package/blendmicro
https://github.com/shokai/blendmicro-node

動かん、意味不明、等の苦情要望はgithubかtwitterにお願いします。



ADCに接続した照度センサをBLEで読むのも簡単にできる



インストール


% npm install blendmicro


使う


基本的にREADMEやサンプルに書いたけど軽く紹介すると

arduino側で名前を宣言して、ble_begin()する。
#include <SPI.h>
#include <boards.h>
#include <RBL_nRF8001.h>

void setup(){
ble_set_name("BlendMicro"); // デバイスの名前を宣言、最大10文字
ble_begin();
}

node側から名前でデバイス探して接続できる。
var BlendMicro = require('blendmicro');
var bm = new BlendMicro("BlendMicro"); // 名前で接続

接続したら”open”イベントが発火するので、その後で”data”イベントで読んだり
bm.on('open', function(){
console.log("open!!");

bm.on("data", function(data){ // Bufferが返ってくる
console.log(data.toString());
});
});

文字列やBufferを書き込んだりできる
bm.write("hello");
bm.write( new Buffer([1,2,3]) );


このへんはserialport npmとほぼ同じだと思う。
bm.closeで閉じれる。
デバイス側から閉じられたらbm.on(“close”, callback)が発火する。