概要
自分が作ったiosアプリケーションからデータをRaspberryPIに送信したかったので、bluetooth通信を実装しようと思いました。raspberry pi model 3B+には、bluetooth用通信モジュールが搭載されていたのもあり、Bluutooth通信を選定しました。今回は、node.jsのbluetooth通信モジュールの1つであるblenoを使用しました。blenoは、raspberry piでbluetooth通信する場合に広く一般的に使われているそうです。以下の手順では、raspberry piにnode.jsをインストールしてから、blenoのサンプルを動かすところまで、示します!
実行環境
次に実行環境を示します。
Soft and Hard | バージョン |
---|---|
raspberry pi | model 3B + |
Raspbian Stretch (raspberry piのOS) | 2019-04-08 |
node.js | 8.11.1 |
npm | 1.4.21 |
インストール手順
1. パッケージのアップデート
pi@raspberrypi:~ $sudo apt-get update && sudo apt-get -y upgrade
2. Bluetoothモジュールの確認
pi@raspberrypi:~ $hciconfig
blenoはデフォルトの状態だと、hci0を使用します。なので、blenoで他のbluetoothアダプターを使用する場合には、以下のように明示しておく必要があります。
pi@raspberrypi:~ $export NOBLE_HCI_DEVICE_ID=1
3. ライブラリのインストール
pi@raspberrypi:~ $sudo apt install bluetooth bluez libbluetooth-dev libudev-dev
4. bluetoothシステムサービスの停止
blenoを動かすためには、bluetoothシステムサービスを停止させる必要があるので、停止させます。
pi@raspberrypi:~ $sudo service bluetooth stop
その後、使用するアダプタを有効にします。
pi@raspberrypi:~ $sudo hciconfig hci0 up
5. node.jsとnpmのインストール
pi@raspberrypi:~ $sudo apt-get install -y nodejs npm
6. blenoのインストール
pi@raspberrypi:~ $npm install bleno --save
以上がインストール手順となります。
サンプル実行
サンプルは次のURLのapp.jsを実行してみました。raspberry pi側で実行し、android側で同一のUUIDを持つペリフェラルを確認します。
実行は次のコマンドで実行します。
pi@raspberrypi:~ $sudo node app.js
実行とUUIDの確認画面を次に示します。確認には、androidの端末を使用しました。使用したandroidアプリケーションはBLE Scannerです。
上記の図より、raspberry piを認識していることが確認できます。
まとめ
今回はblenoのインストールおよび確認を行いました。次は、IOSアプリケーションとの実装を行いたいと思います。また、上記の内容で、間違っている点もしくは改善点など有りましたら教えていただけると嬉しいです!