20
IoT デデデデデデデデ デデデデデデデデデ デデデデ Bluemix デデデデデデデデデ デデデデ デデデ デデ ・・ Bluemix デデデデデデデデ デデ デ #cedec2015

IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

Embed Size (px)

Citation preview

Page 1: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

IoT デバイスと簡単に連携できる統合開発&配信環

境Bluemix を使ったゲーム開発

日本アイ・ビー・エムBluemix エバンジェリスト  木村 桂

#cedec2015

Page 2: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

IBM から4セッション参加してます#cedec2015

IoT デバイスと簡単に連携できる統合開発&配信環境

Bluemix を使ったゲーム開発

ゲームサーバー構築の新しい選択肢

どこまで使える?クラウドの NoSQL データベース

クラウドでゲームサーバー (Photon Server)を立ち上げてみよう

26 日 11:20-12:20 27 日 13:30-14:30

28 日 13:30-14:30 26-28 日(ハンズオン)

すべてクラウド

Page 3: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

いったんゲームを離れて、まずは IoT アプリ開発の話

#cedec2015

Page 4: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

IoT アプリケーション開発の問題点• 負荷の見積もりが難しい• デバイスは何台? データ更新頻度? 1回のデータ量?• 「テスト(2~3台)では動いた、本番で止まった」

• 電池の問題• 常に通電されていないセンサーからの情報を、目的時間の間取り

続けられるか?

• データフローチャートから実装までのハードル• ロジックは完璧。誰が作る?どうやって作る?• ウェブアプリやスマホアプリは作れる。でもセンサーデータを集

める?? ⇨ HTTP に頼らず、より軽量に

  動くフローチャート(!?)を作る

#cedec2015

Page 5: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

Node-RED フローエディタ

ブロック状の「ノード」を組み合わせ、各ノードの属性や設定情報を与えるだけで簡単にデータのワークフローを構築することができる Node.js アプリケーション。IBM が開発しオープンソース化。 Bluemix を通じて提供。IoT デバイスや(仮想)センサーからのデータを簡単に取り込むことができる。

#cedec2015

Page 6: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

実際に作ってみましょう!

#cedec2015

Page 7: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

今回はラズベリーパイを使います

ARM ベースの超小型コンピュータ-RAM: 1GB-ストレージ : MicroSB カード-ネットワーク : 10/100Mbps Ethernet-USB ポート : USB 2.0 x 4

今、僕の自宅で動いてます!

#cedec2015

Page 8: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

イメージ

Node-REDアプリ

IBM Bluemix

木村家#cedec2015

Page 9: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

デモ1

• ラズベリーパイの CPU データを集める• CPU 負荷(に見立てたデータ)が 75% を超えたら警告する• ラズベリーパイからの CPU データをデータベースに格納する

• ラズベリーパイの CPU データをリアルタイムにグラフ化する• HTML5 & WebSocket

#cedec2015

Page 10: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

イメージ

Node-REDアプリ

DB

IBM Bluemix

木村家#cedec2015

Page 11: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

実際の仕組み

Node-REDアプリ

IBM IoTFoundation

DB

IBM Bluemix

MQTT ブローカー

赤矢印の部分は HTTP ではなく、軽量な MQTT プロトコル

でも Node-RED アプリ開発時に意識する必要はない

木村家#cedec2015

Page 12: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

HTTP と MQTT の違い

HTTPサーバー

① リクエスト

③ レスポンス

MQTTブローカー

パブリッシャー

パブリッシャー

パブリッシャー

サブスクライバー

サブスクライバー

サブスクライバー

サブスクライバーパブリッシャー&サブスクライバー

パブリッシャーは送るだけサブスクライバーは受け取るだけ

両方でもよい

リクエストしてくれた人にレスポンスを返す

MQTT はシンプルで軽量

② 処理

#cedec2015

Page 13: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

MQTT を SaaS で提供

Node-REDアプリ

IBM IoTFoundation

DB

IBM Bluemix

MQTT ブローカー

木村家

quickstart.messaging.internetofthings.ibmcloud.com:1883認証なしで誰でも使えます!

しかも無料!

#cedec2015

Page 14: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

今度はこっちでやってみます

Node-REDアプリ

IBM IoTFoundation

IBM Bluemix

DB

MQTT ブローカー

#cedec2015

Page 15: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

Phone Sensorhttp://bit.ly/1JTWvVv

JavaScript でデバイス(スマホ)のジャイロ情報を取得して、 MQTT ブローカーへパブリッシュする。

Paho の JavaScript ライブラリを使って開発したウェブアプリケーションhttps://eclipse.org/paho/clients/js/

#cedec2015

Page 16: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

HTML5 Tetrishttp://coderecipe.jp/recipe/iHjJBJx9Si/

オープンソースで提供される HTML5 と JavaScript で作られたテトリス

今回、この中の操作コントロール部分である controller.js の一部を改良

#cedec2015

Page 17: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

いかがでしょうか?

Node-REDアプリ

IBM IoTFoundation

IBM Bluemix

MQTT ブローカー

#cedec2015

Page 18: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

Bluemix を使った IoT ビジネスアプリ開発のメリット

ほぼプログラミングレス。フローチャートを作ると動く!IoT データを簡単に集めたり、データベースに格納したり、 WebSocket に送ったりできる。MQTT ブローカーが公開(!)されている!HTML5 & WebSocket との相性バツグン!!

#cedec2015

Page 19: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

IoT 技術をゲームに応用!スマホやセンサーをコントローラーとみなす 動きやセンサー情報/ジャイロ情報をセンサー情報とみなして収集する

収集したデータを WebSocket で( HTML5 の)ゲーム画面に送る 大量の収集データをステートレスに送る

コントローラーとゲーム画面とが物理的に離れていてもかまわない 地球の裏側のゲームをコントロール スタジアムのオーロラビジョンに映ったゲームを手元のスマホでコントロール   :

デバイスデータ収集のバックエンド技術には、 IoT ビジネスで実績のある仕組みを流用

Bluemix を使ったゲーム開発

#cedec2015

Page 20: IoTデバイスと簡単に連携できる統合開発&配信環境 Bluemix を使ったゲーム開発

IoT アプリ開発技術をスマホを IoT デバイスとみなして

スマホアプリ開発に応用

#cedec2015