まつをエンジニアブログ

すごいえんじにあになりたい

tabu lumen をREST対応にする

 

スマート電球ってご存知でしょうか。

WiFiBluetooth経由でオン・オフしたり、明るさを変えたりできる電球です。

 

自分はBluetoothで接続するタイプの「tabu Lumen」を所持しています。

 

 

便利ですが、Bluetoothを搭載したスマートフォンでしか操作できないのが残念です。そこで今回はRaspberryPiと組み合わせてRESTに対応してみます。

 

 準備作業

ここからRaspberryPiでの作業になります。
Bluetooth4.0に対応したUSBドングルを挿しておきます。

そしてnodebrewで最新版のnodeをインストールしておきます。

 

今回の要はこのモジュールです。

GitHub - sandeepmistry/node-lumen: Node.js lib for the Tabu Lumen

tabu lumenへの接続、操作を簡単に行うことができます。

 

sudo npm install lumen

 を実行してインストールしましょう。

 

スクリプトの作成

今回の目的であるREST対応にするためnodeで簡易的なサーバを立て、そこにGETが送られてきた時のパラメータに応じてlumenの操作を行えるようスクリプトを書いてみました。

 

いきなりですが以下のコードが完成形です。

lumen.jsとしてファイルを作成します。

sudo node lumen.js

で実行するとサーバが起動します。

 

動作確認

 ちゃんと動いているか確認してみます。

CUIからGETを送信するなら以下のコマンド

curl localhost:1337?opr=ero

 localhostの部分はRaspberryPiのアドレスに適宜書き換えてください。

 

すると。。。

エロス!

 

 

うまく動いているようですね!

 

他にもパラメータはonやoff、partyなどを用意していますがnode-lumenモジュールの本家ページを参照して自由に動作を設定してみてください。

 

これでPCやBluetoothの搭載していない端末からでもブラウザ等を通して操作できるようになりました。本当はWiFi接続のできる「hue」が良かったのですがお財布の事情でlumenを買いました。hueはIFTTT連携できて使い勝手が良さそうだなぁと思っていたのですが、今回のREST対応でIFTTTのようなことができそうです。これから使いやすく機能を拡張していきたいと思います。