Upload
k-kimura
View
1.305
Download
0
Embed Size (px)
Citation preview
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 IoTFoundation
DB
IBM Bluemix
MQTT ブローカー
赤矢印の部分は HTTP ではなく、軽量な MQTT プロトコル
でも Node-RED アプリ開発時に意識する必要はない
木村家#cedec2015
HTTP と MQTT の違い
HTTPサーバー
① リクエスト
③ レスポンス
MQTTブローカー
パブリッシャー
パブリッシャー
パブリッシャー
サブスクライバー
サブスクライバー
サブスクライバー
サブスクライバーパブリッシャー&サブスクライバー
パブリッシャーは送るだけサブスクライバーは受け取るだけ
両方でもよい
リクエストしてくれた人にレスポンスを返す
MQTT はシンプルで軽量
② 処理
#cedec2015
MQTT を SaaS で提供
Node-REDアプリ
IBM IoTFoundation
DB
IBM Bluemix
MQTT ブローカー
木村家
quickstart.messaging.internetofthings.ibmcloud.com:1883認証なしで誰でも使えます!
しかも無料!
#cedec2015
今度はこっちでやってみます
Node-REDアプリ
IBM IoTFoundation
IBM Bluemix
DB
MQTT ブローカー
#cedec2015
Phone Sensorhttp://bit.ly/1JTWvVv
JavaScript でデバイス(スマホ)のジャイロ情報を取得して、 MQTT ブローカーへパブリッシュする。
Paho の JavaScript ライブラリを使って開発したウェブアプリケーションhttps://eclipse.org/paho/clients/js/
#cedec2015
HTML5 Tetrishttp://coderecipe.jp/recipe/iHjJBJx9Si/
オープンソースで提供される HTML5 と JavaScript で作られたテトリス
今回、この中の操作コントロール部分である controller.js の一部を改良
#cedec2015
いかがでしょうか?
Node-REDアプリ
IBM IoTFoundation
IBM Bluemix
MQTT ブローカー
#cedec2015
Bluemix を使った IoT ビジネスアプリ開発のメリット
ほぼプログラミングレス。フローチャートを作ると動く!IoT データを簡単に集めたり、データベースに格納したり、 WebSocket に送ったりできる。MQTT ブローカーが公開(!)されている!HTML5 & WebSocket との相性バツグン!!
#cedec2015
IoT 技術をゲームに応用!スマホやセンサーをコントローラーとみなす 動きやセンサー情報/ジャイロ情報をセンサー情報とみなして収集する
収集したデータを WebSocket で( HTML5 の)ゲーム画面に送る 大量の収集データをステートレスに送る
コントローラーとゲーム画面とが物理的に離れていてもかまわない 地球の裏側のゲームをコントロール スタジアムのオーロラビジョンに映ったゲームを手元のスマホでコントロール :
デバイスデータ収集のバックエンド技術には、 IoT ビジネスで実績のある仕組みを流用
Bluemix を使ったゲーム開発
#cedec2015
IoT アプリ開発技術をスマホを IoT デバイスとみなして
スマホアプリ開発に応用
#cedec2015