ゼッタリンクス様より、オリジナルlittleBits開発記 | FabLab SENDAI – FLATこちらで開発されたオリジナルlittleBits Bluetooth(konashi)モジュールをお借りすることができたので、早速myThings/IDCFチャンネルとlittleBits Bluetooth(konashi)モジュールを連携したメモです。
今回やりたいこと
今回やりたいことは以下のとおりです。
- myThings/IDCFチャンネルを立てる
- Raspberry PiとlittleBits Bluetooth(konashi)モジュールをNodeJS(noble)通信する
- Raspberry PiとIDCFチャンネルをやりとりしmyThingsと連携
myThings/IDCFチャンネルを立てる
まず、myThings/IDCFチャンネルを立てます。
基本的に、myThingsのはじめかた|IDCFクラウドの記事が分かりやすかったです。ソースの大本であるIDCFChannel/meshblu-composeもよい参考になりました。
また、独自に連携する方法については、myThingsとIDCFチャンネルでできること – Qiitaが分かりやすかったです。
特に、以下が独自サーバーに連絡するときには参考になりました。
- myThingsをはじめよう – Part4: 「IDCF」チャンネルを認証する – Qiita
- myThingsをはじめよう – Part5: 「天気・災害」のトリガーを「IDCF」のアクションがHTTPで受信する – Qiita
- myThingsをはじめよう – Part6: 「IDCF」のトリガーからHTTPで「Gmail」のアクションを実行する – Qiita
Raspberry PiとlittleBits Bluetooth(konashi)モジュールをNodeJS(noble)通信する
Raspberry PiとlittleBits Bluetooth(konashi)モジュールの連携についてはNodeJSのnobleライブラリを使いました。こうすることで、Raspberry Piが中継してmyThingsとつながるようになります。
RaspberryPi – Raspberry PiでUSB/Bluetoothアダプタを使う – Qiita
こちらをみながら、まず、Bluetoothアダプタ買いまして、
Raspberry Piで認識させつつ、
Raspberry PiとlittleBits Bluetooth(konashi)モジュールを連携しました。
こんな感じの動画です。画角が近いので効果がわかりづらいですが、隣の部屋に仕掛けてもしっかり動作しました!
NodeJSでBLEをうごかすソースコードは結構長くなりましたので今回は割愛しますが、以下の記事が参考になりました。
- intel edisonからkoshian(konashi)のI2Cを動かしてみた – Qiita
- Raspberry Pi + BLEで、konashi/SBBLEを動かしてみた。 – robo8080のブログ
- 新ファーム機能!EdisonでBLE機器を制御してみた | TONGARISM.COM
NodeJSでBlueToothいじれたのは、今後の実装にもプラスになりそうです。nobleライブラリありがたや。
Raspberry PiとIDCFチャンネルをやりとりしmyThingsと連携
さて、myThing側の設定もできたので、いよいよ連携してみます。
myThingsをはじめよう – Part6: 「IDCF」のトリガーからHTTPで「Gmail」のアクションを実行する – Qiita
をベースに、以下のようにボタンを押すとlittleBits Bluetooth(konashi)モジュールの反応をRaspberry Piが無線でとらえまして、
「IDCF」のトリガーから通知を出すように連携しました。
続いて、わかりにくいですが、
myThingsをはじめよう – Part5: 「天気・災害」のトリガーを「IDCF」のアクションがHTTPで受信する – Qiita
をベースに、天気・災害のトリガーからIDCFのアクションが発動し、littleBits Bluetooth(konashi)モジュールが反応しLEDが点灯しています。
おわりに
BlueTooth BLEデバイスいいですね。オリジナルモジュールというのも触っててワクワクしました。SORACOMとはまた違った感覚で、いろいろなところの置ける可能性を感じます。このような機会を作っていただいた、ゼッタリンクス様、FabLab SENDAI様には感謝いたします。
そして、今回はmyThingsのいろいろな仕様や、BLEをNodeJSで動かせることなど学びの多いものでした。IDCFチャンネルをつかうと色々と自由度の高い実装が出来たり、こちらはスケールしやすいクラウドサーバーのようなので大規模利用も対応できそうです。
それでは、よきlittleBits & BLE & Raspberry Pi & myThings Lifeを!