94
2015年末JavaScript祭ゆく年くる年 さあ!JavaScriptデバイスとやりとりするよ! ワンフットシーバス 田中正吾

さあ!Javascriptでデバイスとやりとりするよ!

Embed Size (px)

Citation preview

Page 1: さあ!Javascriptでデバイスとやりとりするよ!

2015年末JavaScript祭ゆく年くる年さあ!JavaScriptでデバイスとやりとりするよ!

ワンフットシーバス 田中正吾

Page 2: さあ!Javascriptでデバイスとやりとりするよ!

私の話はスライドを後ほど共有します。話す内容に注力いただいて大丈夫です!

Page 3: さあ!Javascriptでデバイスとやりとりするよ!

自己紹介

Page 4: さあ!Javascriptでデバイスとやりとりするよ!

田中正吾(たなかせいご)屋号:ワンフットシーバス

2004年よりフリーランス。以後、FLASH制作を中心にインタラクティブコンテンツを主に行い現在に至る。最近は、JavaScriptやHTML5アニメーション、スマートフォン演出制作のワークフロー改善に関わったりしていました。デジタルサイネージやアプリ制作もやります。

Page 5: さあ!Javascriptでデバイスとやりとりするよ!

デバイスとやりとりするネタですと最近ウォンバットとIoTの話をしました

Page 6: さあ!Javascriptでデバイスとやりとりするよ!

さっそくはじめましょう

Page 7: さあ!Javascriptでデバイスとやりとりするよ!

今回のタイトル

Page 8: さあ!Javascriptでデバイスとやりとりするよ!

さあ!

Page 9: さあ!Javascriptでデバイスとやりとりするよ!

JavaScriptと

Page 10: さあ!Javascriptでデバイスとやりとりするよ!

デバイスとやりとりするよ!

Page 11: さあ!Javascriptでデバイスとやりとりするよ!

ということで

Page 12: さあ!Javascriptでデバイスとやりとりするよ!

まずブラウザ上でJavaScriptボタン

Page 13: さあ!Javascriptでデバイスとやりとりするよ!

まずブラウザ上でJavaScriptボタン

$(dom).on(“click”,function(){// なにか起きるよ!!

})

Page 14: さあ!Javascriptでデバイスとやりとりするよ!

ブラウザ(表示側)

このようにJavaScriptははじめはブラウザ表示上が主戦場

Page 15: さあ!Javascriptでデバイスとやりとりするよ!

まずNodeJSの登場でサーバーサイドもできるように!

ブラウザ(表示側)

サーバー(NodeJS)

NodeJS

Page 16: さあ!Javascriptでデバイスとやりとりするよ!

なんと最近では

Page 17: さあ!Javascriptでデバイスとやりとりするよ!

NodeJSからハードウェアのデバイスもつながるようになってきた!

ブラウザ(表示側)

サーバー(NodeJS)

デバイス(NodeJS)

NodeJS

Page 18: さあ!Javascriptでデバイスとやりとりするよ!

デバイスとは。

引用:

Page 19: さあ!Javascriptでデバイスとやりとりするよ!

デバイス=リアルの何か

引用:

Page 20: さあ!Javascriptでデバイスとやりとりするよ!

つまり

リアルのボタン

Page 21: さあ!Javascriptでデバイスとやりとりするよ!

つまりリアルの何かと

Page 22: さあ!Javascriptでデバイスとやりとりするよ!

つまりリアルの何かとやりとりできる!

Page 23: さあ!Javascriptでデバイスとやりとりするよ!

JavaScriptでのデバイス連携のしくみをお伝えしていきます

Page 24: さあ!Javascriptでデバイスとやりとりするよ!

デバイス連携するJavaScriptでのしくみ

Page 25: さあ!Javascriptでデバイスとやりとりするよ!

今日お伝えするJavaScriptでのデバイス連携のしくみ

Page 26: さあ!Javascriptでデバイスとやりとりするよ!

まず、デバイスがPCと会話しやすくするArduino(あるでぃーの)というしくみがある

Page 27: さあ!Javascriptでデバイスとやりとりするよ!

ArduinoだけはJavaScriptでなくC++風の独自の言語

Page 28: さあ!Javascriptでデバイスとやりとりするよ!

ArduinoはUSB(シリアルポート)経由でNodeJSのserialportライブラリと会話ができる

Page 29: さあ!Javascriptでデバイスとやりとりするよ!

PCと、こういう風に会話できる!

Page 30: さあ!Javascriptでデバイスとやりとりするよ!

node-searialportのコードの雰囲気

Page 31: さあ!Javascriptでデバイスとやりとりするよ!

Arduino側から特定の文字が来たら動作するようにしています

Page 32: さあ!Javascriptでデバイスとやりとりするよ!

さらに、サーバーとしてのNodeJS(express)も加わるとWEBとの相性がとてもよくなります

NodeJS

Page 33: さあ!Javascriptでデバイスとやりとりするよ!

加えて、リアルタイムに強いSocket通信がNodeJS(socket.io)で扱いやすい

NodeJSの司令塔サーバー

Page 34: さあ!Javascriptでデバイスとやりとりするよ!

デバイスの動きをすぐに反映できる。WEBの反応をすぐに伝えられる。

NodeJSの司令塔サーバー

Page 35: さあ!Javascriptでデバイスとやりとりするよ!

司令塔サーバー側のNodeJSコードの雰囲気

Page 36: さあ!Javascriptでデバイスとやりとりするよ!

司令塔サーバーで中継してWEBとデバイスでいろいろやりとりできる!

NodeJSの司令塔サーバー

Page 37: さあ!Javascriptでデバイスとやりとりするよ!

たくさんつくれば、いろいろ測れる、うごかせる!

Page 38: さあ!Javascriptでデバイスとやりとりするよ!

余談:おのおのの接続ポイントでの実装は見通しやすくするためメリハリをつけてます(ローカルサーバー→司令塔に実装多めにしてる)

local

実装小

実装小 実装中実装大

Page 39: さあ!Javascriptでデバイスとやりとりするよ!

私のブログに今回の話に関連しそうな記事をピックアップしました。よろしければ。

URL : http://www.1ft-seabass.jp/memo/

Page 40: さあ!Javascriptでデバイスとやりとりするよ!

デバイスの動き

Page 41: さあ!Javascriptでデバイスとやりとりするよ!

さて今回のデバイス①

Page 42: さあ!Javascriptでデバイスとやりとりするよ!

デバイス1号(でばいすいちごう)

Page 43: さあ!Javascriptでデバイスとやりとりするよ!

デバイス1号(でばいすいちごう)

Page 44: さあ!Javascriptでデバイスとやりとりするよ!

光ったりする!

Page 45: さあ!Javascriptでデバイスとやりとりするよ!

ボタン押せたりする!

Page 46: さあ!Javascriptでデバイスとやりとりするよ!

中身はこんな感じ

Page 47: さあ!Javascriptでデバイスとやりとりするよ!

littleBitsという磁石でつないで電子工作できるデバイスで構成

Page 48: さあ!Javascriptでデバイスとやりとりするよ!

カラーごとの役割を意識してつなげて磁石でパチパチつなげて設計できる

電源が流れてPOWER

スイッチを押すとINPUT

ライトがつくよOUTPUT

Page 49: さあ!Javascriptでデバイスとやりとりするよ!

そんなlittleBitsにはArduinoもあるのでPCと連携しやすい

Page 50: さあ!Javascriptでデバイスとやりとりするよ!

さきほどの連携図と照らし合わせるとデバイス+Arduino部分は以下になります

Page 51: さあ!Javascriptでデバイスとやりとりするよ!

PCの役割のところは、今回はRaspberry PiというミニPCにやってもらう

Page 52: さあ!Javascriptでデバイスとやりとりするよ!

さきほどの連携図と照らし合わせるとPC部分がRaspberry Piになります

Page 53: さあ!Javascriptでデバイスとやりとりするよ!

そして、SORACOMがLTE/3G接続を担当

Page 54: さあ!Javascriptでデバイスとやりとりするよ!

Raspberry Pi

FS01BU + SORACOM Air(通信をする)

Raspberry Pi(サーバー)

SORACOMで少ない初期コストでデバイスの「つながる」を実現

Page 55: さあ!Javascriptでデバイスとやりとりするよ!

これを箱を組み立てて

Page 56: さあ!Javascriptでデバイスとやりとりするよ!

これを箱を組み立てて

Page 57: さあ!Javascriptでデバイスとやりとりするよ!

実装してGO!!!

Page 58: さあ!Javascriptでデバイスとやりとりするよ!

いよいよデモ

Page 59: さあ!Javascriptでデバイスとやりとりするよ!

デバイス1号

Page 60: さあ!Javascriptでデバイスとやりとりするよ!

ボタンでWEBと連携して

Page 61: さあ!Javascriptでデバイスとやりとりするよ!

画面がしゃべります(CreateJS+Web Speech API)

Page 62: さあ!Javascriptでデバイスとやりとりするよ!

画面がしゃべります(CreateJS+Web Speech API)

Page 63: さあ!Javascriptでデバイスとやりとりするよ!

デモ

Page 64: さあ!Javascriptでデバイスとやりとりするよ!

littleBitsはこんなやりとり

Page 65: さあ!Javascriptでデバイスとやりとりするよ!

IFTTT(Maker Channel)を利用しスマホ連携で光ります

Page 66: さあ!Javascriptでデバイスとやりとりするよ!

デモ

Page 67: さあ!Javascriptでデバイスとやりとりするよ!

littleBitsはこんなやりとり

Page 68: さあ!Javascriptでデバイスとやりとりするよ!

うまくいってほしい

Page 69: さあ!Javascriptでデバイスとやりとりするよ!

ちょっと準備しまーす

ON

Page 70: さあ!Javascriptでデバイスとやりとりするよ!

デバイス②

Page 71: さあ!Javascriptでデバイスとやりとりするよ!

デバイス2号(でばいすにごう)

Page 72: さあ!Javascriptでデバイスとやりとりするよ!

組み立てる

Page 73: さあ!Javascriptでデバイスとやりとりするよ!

サーボ矢印と赤外線センサの構成

Page 74: さあ!Javascriptでデバイスとやりとりするよ!

サーボ矢印が私のTwitter投稿と反応

Page 75: さあ!Javascriptでデバイスとやりとりするよ!

今からのみんなの#jsfes投稿にも反応するかどうか!?

Page 76: さあ!Javascriptでデバイスとやりとりするよ!

デモ

Page 77: さあ!Javascriptでデバイスとやりとりするよ!

赤外線リモコンともやりとり

Page 78: さあ!Javascriptでデバイスとやりとりするよ!

画面がしゃべります(CreateJS+Web Speech API)

Page 79: さあ!Javascriptでデバイスとやりとりするよ!

画面がしゃべります(CreateJS+Web Speech API)

Page 80: さあ!Javascriptでデバイスとやりとりするよ!

デモ

Page 81: さあ!Javascriptでデバイスとやりとりするよ!

実は操作したものはSlackにもログ連携

Page 82: さあ!Javascriptでデバイスとやりとりするよ!

うまくいってほしい

Page 83: さあ!Javascriptでデバイスとやりとりするよ!

まとめ

Page 84: さあ!Javascriptでデバイスとやりとりするよ!

このようにやりとりできるといろいろおもしろい!

Page 85: さあ!Javascriptでデバイスとやりとりするよ!

今まで見たデモから発展させてみる

Page 86: さあ!Javascriptでデバイスとやりとりするよ!

デバイス→JavaScript→WEBの例

Page 87: さあ!Javascriptでデバイスとやりとりするよ!

自分の知りたい現実のデータ貯めて遠くでいつでも見ることができる!

家の温度

Page 88: さあ!Javascriptでデバイスとやりとりするよ!

自分の知りたい現実のデータ貯めて遠くでいつでも見ることができる!

家の温度

WEBのよいところ自動・蓄積・遠隔

Page 89: さあ!Javascriptでデバイスとやりとりするよ!

WEB→JavaScript→デバイスの例

Page 90: さあ!Javascriptでデバイスとやりとりするよ!

WEBの情報をデバイスに反応させることもできる!

デバイス盛り上がってるよ

SNSなど

Page 91: さあ!Javascriptでデバイスとやりとりするよ!

WEBの情報をデバイスに反応させることもできる!

デバイス

盛り上がってるよ

SNSなどWEBのよいところ収集・通知・見える化

Page 92: さあ!Javascriptでデバイスとやりとりするよ!

➔JavaScriptでデバイスとWEBが連携しやすくなってきた。サーバーや表示も絡めて、いろいろ楽しい!

➔JavaScriptでWEBのよいところ(自動・蓄積・遠隔・収集・見える化など)をデバイスやセンサーと絡めると新しい可能性が!

まとめ

Page 93: さあ!Javascriptでデバイスとやりとりするよ!

2016年ぜひJavaScriptでデバイスとやりとりしてみてください!

Page 94: さあ!Javascriptでデバイスとやりとりするよ!

ご清聴いただきましてありがとうございました!