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