JavaScriptでIoT !! JS Board Shibuya #6 LTナイト!
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
ワンフットシーバス 田中正吾
私の話はスライドを後ほど共有します。話す内容に注力いただいて大丈夫です!
田中正吾(たなかせいご)屋号:ワンフットシーバス
2004年よりフリーランス。以後、FLASH制作を中心にインタラクティブコンテンツを主に行い現在に至る。最近は、JavaScriptやHTML5アニメーション、スマートフォン演出制作のワークフロー改善に関わったりしていました。デジタルサイネージやアプリ制作もやります。
SORACOM AirとつないだRaspberry Piと
いろいろなAPIをつなげるIFTTTと組み合わせて
ブロック感覚で電子工作できるlittleBitsをうごかすよ
IFTTTの各通知をIFTTT MakerChannel経由でHeroku中継サーバーに送ります
Heroku中継サーバー
Heroku中継サーバーから各デバイスにSocketIOを使って
複数に通知します
Heroku中継サーバー
こうすることで基本1:1のIFTTTアクションを1:n(複数)で送ることが出来てたのしい
1:n(複数)
Raspberry PiはUSBモデム+SORACOM AirでLTE接続
littleBitsのArduinoモジュールでRaspberry Piをやりとり
Arduino
LEDやボタンはlittleBitsモジュールでブロック的に組み上げます
中継サーバー側のNodeJSコードの雰囲気
expressサーバーでSocketIO(実際はHerokuで動かしている)
URL /ifttt_inputにIFTTT通知する
IFTTTから情報が来たらデバイス側に命令を送っています
デバイス側のNodeJSコードの雰囲気
node-searialportでシンプルにやりとり
光らせる処理は特定の文字が来たらArduino側が光るようにしている
ほかにもシャットダウンやリブートも
そういえば、最近、これで遠隔強制OFFデバイスも
つくりました。
Raspberry Piは無線LANでGPIOピン経由でlittleBitsと接続
GPIOピン
かなり直接やり取りしてる感ある個人的にはArduinoのほうが安堵感ある
今回はピンの位置をhttp://pinout.xyz/ で確認。
3v3 PowerとGroundとBCM17ピンと使う
11か17ピンか分かりにくかったが両方やってみたら17で
点灯したので17で対応(トライアンドエラー)
GPIOにコマンドを直接叩いています
非同期にコマンド送れるexecsync便利
自分のNodeインストール諸事情で「まだ」Nodeがrootで叩けなかったので
この施策をしました
いよいよデモする
Heroku中継サーバー
2台あるからどっちかは動いてほしい!
デモ1:Doボタン連携
Heroku中継サーバー
デモ2:メール連携(特定メールで通知)
Heroku中継サーバー
デモ3:littleBits差し替え
LED サーボとか
RaspberryPi+SORACOM Airだと置き場所など自由がきいていろいろと夢が広がりそう
IFTTT MakerChannelでHerokuなどの中継サーバーを作っておくと自由度がたかくなる
Heroku中継サーバー
IFTTTはいろいろな情報を通知できるし、簡単に組み替えできるのでたのしい
さらにSocketIOを利用してのIFTTT複数デバイス通知はたのしい
Heroku中継サーバー
littleBitsは
buttonusb power led
littleBitsはブロックぽく
button
usb power
led
dimmer
buzzer
littleBitsはブロックぽく電子工作を組みかえできてたのしい
usb power dimmer buzzer
ご清聴いただきましてありがとうございました!