IoT デバイスと簡単に
連携できる統合開発&配信環
境
Bluemix を使ったゲーム開発
日本アイ・ビー・エム
Bluemix エバンジェリスト  木村 
桂
#cedec2015
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 日(ハンズオン)
す
べ
て
ク
ラ
ウ
いったんゲームを離れて、
まずは IoT アプリ開発の話
#cedec2015
IoT アプリケーション開発の問
題点
• 負荷の見積もりが難しい
• デバイスは何台? データ更新頻度? 1回のデータ量?
• 「テスト(2~3台)では動いた、本番で止まった」
• 電池の問題
• 常に通電されていないセンサーからの情報を、目的時間の間取り続
けられるか?
• データフローチャートから実装までのハードル
• ロジックは完璧。誰が作る?どうやって作る?
• ウェブアプリやスマホアプリは作れる。でもセンサーデータを集め
る??
⇨ HTTP に頼らず、より軽量に
  動くフローチャート(!?)を作
#cedec2015
Node-RED フローエディタ
ブロック状の「ノード」を組み合わせ、各ノードの属性や設定情報を与えるだけで
簡単にデータのワークフローを構築することができる Node.js アプリケーション。
IBM が開発しオープンソース化。 Bluemix を通じて提供。
IoT デバイスや(仮想)センサーからのデータを簡単に取り込むことができる。
#cedec2015
実際に作ってみましょ
う!
#cedec2015
今回はラズベリーパイを使います
ARM ベースの超小型コンピュータ
-RAM: 1GB
-ストレージ : MicroSB カード
-ネットワーク : 10/100Mbps Ethernet
-USB ポート : USB 2.0 x 4
今、僕の自宅で動いてます!
#cedec2015
イメージ
Node-RED
アプリ
IBM Bluemix
木村家#cedec2015
デモ1
• ラズベリーパイの CPU データを集める
• CPU 負荷(に見立てたデータ)が 75% を超えたら警告する
• ラズベリーパイからの CPU データをデータベースに格納する
• ラズベリーパイの CPU データをリアルタイムにグラフ化する
• HTML5 & WebSocket
#cedec2015
イメージ
Node-RED
アプリ
DB
IBM Bluemix
木村家#cedec2015
実際の仕組み
Node-RED
アプリ
IBM IoT
Foundation
DB
IBM Bluemix
MQTT ブローカー
赤矢印の部分は HTTP ではな
く、
軽量な MQTT プロトコル
でも Node-RED アプリ開発時
に意識する必要はない
木村家#cedec2015
HTTP と MQTT の違い
HTTP
サーバー
① リクエスト
③ レスポンス
MQTT
ブローカー
パブリッシャー
パブリッシャー
パブリッシャー
サブスクライバー
サブスクライバー
サブスクライバー
サブスクライバー
パブリッシャー
&サブスクライバー
パブリッシャーは送るだけ
サブスクライバーは受け取るだけ
両方でもよい
リクエストしてくれた人に
レスポンスを返す
MQTT はシンプルで軽量
② 処理
#cedec2015
MQTT を SaaS で提供
Node-RED
アプリ
IBM IoT
Foundation
DB
IBM Bluemix
MQTT ブローカー
木村家
quickstart.messaging.internetofthings.ibmcloud.com:1883
認証なしで誰でも使えます!
しかも無料!
#cedec2015
今度はこっちでやってみます
Node-RED
アプリ
IBM IoT
Foundation
IBM Bluemix
DB
MQTT ブローカー
#cedec2015
Phone Sensor
http://bit.ly/1JTWvVv
JavaScript でデバイス(スマホ)のジャイロ情報を
取得して、 MQTT ブローカーへパブリッシュする。
Paho の JavaScript ライブラリを使って開発した
ウェブアプリケーション
https://eclipse.org/paho/clients/js/
#cedec2015
HTML5 Tetris
http://coderecipe.jp/recipe/iHjJBJx9Si/
オープンソースで提供される HTML5 と JavaScript で作られたテトリス
今回、この中の操作コントロール部分である controller.js の一部を改良
#cedec2015
いかがでしょうか?
Node-RED
アプリ
IBM IoT
Foundation
IBM Bluemix
MQTT ブロー
カー
#cedec2015
Bluemix を使った IoT ビジネスアプリ開発の
メリット
ほぼプログラミングレス。フローチャートを作ると動く!
IoT データを簡単に集めたり、データベースに格納したり、 WebSocket に送ったりできる。
MQTT ブローカーが公開(!)されている!
HTML5 & WebSocket との相性バツグン!!
#cedec2015
IoT 技術をゲームに応用!
スマホやセンサーをコントローラーとみなす
 動きやセンサー情報/ジャイロ情報をセンサー情報とみなして収集する
収集したデータを WebSocket で( HTML5 の)ゲーム画面に送る
 大量の収集データをステートレスに送る
コントローラーとゲーム画面とが物理的に離れていてもかまわない
 地球の裏側のゲームをコントロール
 スタジアムのオーロラビジョンに映ったゲームを手元のスマホでコントロール
   :
デバイスデータ収集のバックエンド技術には、 IoT ビジネスで実績のある
仕組みを流用
Bluemix を使ったゲーム開発
#cedec2015
IoT アプリ開発技術を
スマホを IoT デバイスとみなして
スマホアプリ開発に応用
#cedec2015

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

Editor's Notes

  • #2 開いておくページ 英国DC の https://console.eu-gb.bluemix.net/ から Claudant ダッシュボード http://dotnsf-iot.eu-gb.mybluemix.net/red/ (b827ebb9ddc0) http://dotnsf-iot.eu-gb.mybluemix.net/pi.html http://dotnsf-iot.eu-gb.mybluemix.net/ http://dotnsf-iot.eu-gb.mybluemix.net/tetris.html vnc://www.dot123.net:9
  • #10 b827ebb9ddc0