Contenu connexe
Similaire à IBM IoT Foundation - Develop IoT Appl in 10 min (20)
IBM IoT Foundation - Develop IoT Appl in 10 min
- 1. © 2015 IBM Corporation1
IBM IoT FoundationとNode-‐‑‒REDで
IoTアプリを作ってみる
Tohru Suzuki
Analy1cs, IBM Japan
- 3. © 2015 IBM Corporation3
IBM Bluemix 利利⽤用登録
n http://ibm.biz/bluemixfree にア
クセスします。もしくは
bluemix.netへアクセスし
「サインアップ」を選択します
n 登録したアドレスに IBM Bluemix
よりメールが届きます
n メール本⽂文内のリンクをクリック
することでアカウントの有効化が
⾏行行われます
- 4. © 2015 IBM Corporation4
Bluemix へログイン
Bluemix にログインします
n Webブラウザを起動し、Bluemix にアクセスします。下記URLを
⼊入⼒力力します
http://bluemix.net/
n 表⽰示された画⾯面右上の「ログイン」 をクリックします
n ユーザーIDとパスワードを⼊入⼒力力して「サインイン」ボタンをクリック
します
ログインが成功すると Bluemix の
Dashboardが表⽰示されます
- 5. © 2015 IBM Corporation5
作業する地域を確認する
Bluemixは、「米国南部」と「英国」の2つの地域で稼動しています
上部メニューの 「地域」 をクリックすることで、稼動する環境を選択する
ことができます
n 今回は「米国南部」を利用しますので、地域が「米国南部」になってい
ることを確認してください
n 「英国」になっている場合は、「地域」をクリックして、「米国南部」
を選択してください
- 6. © 2015 IBM Corporation6
[補⾜足] 「⽶米国南部」選択時のポップアップへの対
応⽅方法
⽶米国南部を選択した際に、スペースを作成するように指⽰示するポップア
ップ・ウィンドウが表⽰示された場合は、任意の名前を⼊入⼒力力し、作成をクリ
ックしてください
たとえば開発⽤用として
「dev」などと
指定します
- 8. © 2015 IBM Corporation8
ハンズオンの概要
n Internet of Thingsの”ボイラープレート”(テンプレート
)を使⽤用して、クラウド上のセンサー・シミュレーター
のデータを活⽤用します
n ボイラープレートに含まれるNode-‐‑‒REDというツール
を⽤用いて、センサー・データ(温度度、湿度度など)を活⽤用する
IoT アプリを作成します
センサー・
シミュレー
ター
- 9. © 2015 IBM Corporation9
IoTセンサーのシミュレーターを⽤用意する (1)
n このハンズオンではセンサーのシミュレーターを使⽤用します
n https://developer.ibm.com/iotfoundation/ へアクセスして“IBM IoT
Foundation”のレシピページを開きます。ここには種々のIoTデバイス
をセットアップするためのスクリプトや⼿手順などが提供されています
n 画⾯面右上の”Simulate a device”メニューをクリックして、IoTセンサー
・シミュレーターのページを開きます
- 10. © 2015 IBM Corporation10
IoTセンサーのシミュレーターを⽤用意する(2)
n 「Device Simulator」の画⾯面の“Connect”セク
ションにあるURLをクリックすると、次ページの
IoTセンサー・シミュレーターが表⽰示されます
n クラウド上にIoTセンサーのシミュレーターが
⼀一つ起動され、MACアドレスがアサインされます
- 11. © 2015 IBM Corporation11
IoTセンサーのシミュレーターを⽤用意する(3)
n 起動されたIoTセンサーのシミュレーターで左右の⽮矢印をクリックす
ると、温度度、湿度度、オブジェクト温度度が表⽰示されます。また画⾯面下部の
⽮矢印を操作すると温度度などを上下させられます
n これらの値は毎秒クラウド上に発信されるので、実際に物理理的な装置を
持っていなくても、IoTデータのシミュレーターとして使⽤用できます
n 右上に当デバイスの MAC アドレスが表⽰示されるので、メモしておき
ます。
後のステップで
使⽤用するので、
このタブは開いた
ままにしておきます
- 12. © 2015 IBM Corporation12
ボイラープレートでアプリケーションを作成する (1)
n Bluemix には予めランタイムやサービスを組み合わせたボイラープレート
(テンプレート)が⽤用意されています
これを利利⽤用することで、簡単に Bluemix アプリケーションを開発する
ことができます
n Bluemix の カタログメニューにボイラープレートを確認してください
各ボイラープレートをクリックすると、それがどのランタイム、サービ
スを組み合わせたものか説明されています
- 13. © 2015 IBM Corporation13
ボイラープレートでアプリケーションを作成する (2)
n “Internet of Things Foundation”をクリックします。このボイラー
プレートは、以下のコンポーネントから構成されていることが分かります
-‐‑‒ SDK for Node.js
-‐‑‒ Cloudant NoSQL DB
n 「名前」欄に固有のアプリ名を⼊入⼒力力します。このアプリ名がURLの⼀一部
になります(そのため、“test”などのアプリ名はすでに誰かが使っていて
URLにならないのでアプリ名として登録できません)
- 14. © 2015 IBM Corporation14
ボイラープレートでアプリケーションを作成する (3)
n 左上の、「ダッシュボードに戻る」をクリックします
n ダッシュボードに アプリケーションと Cloudant NoSQL DB のサービ
スが追加されることを確認します
n アプリケーションの状態が⻘青信号になるのを待ち、右下のリンク・アイ
コン、もしくは「経路路:」に表⽰示されるURLをクリックします
- 15. © 2015 IBM Corporation15
Node-‐‑‒RED で IoT アプリを作成する (1)
n Node-‐‑‒RED のページが表⽰示されます。「Go to your Node-‐‑‒RED flow
editor」ボタンをクリックし、Node-‐‑‒RED フロー・エディターを起動し
ます
n Node-‐‑‒RED は、IoT のフローを構築するためのビジュアル・ツールで、
開発したシステムを簡単に Bluemix にデプロイすることが可能になっ
ています。ここでは、温度度センサーにより取得したデータによって処理理
を変えるような IoT システムを作成していきます
クリック
- 16. © 2015 IBM Corporation16
Node-‐‑‒RED で IoT アプリを作成する (2)
n Node-‐‑‒REDフロー・エディターによって、IoT アプリの処理理フローを定
義していきます
n サンプルのフローが以下のようにあらかじめ定義されています。これ
が「正解」なので、このページ(タブ)はそのまま置いておいて、画⾯面
右上の「+」印をクリックして2ページ⽬目を開き、そこに下記と同じフ
ローを作ってIoTアプリの作成を⾏行行っていきます
- 17. © 2015 IBM Corporation17
Node-‐‑‒RED で IoT アプリを作成する (3)
n 先ず、温度度データの⼊入⼒力力元である IoTセンサーのノードを定義します。
左のパレットの inputs:ibmiot を中央のキャンバスにドラッグドロッ
プし、ダブルクリックします
n Edit ibmiot in node のダイアログ・ボックスで以下を選択・⼊入⼒力力します
Authentication: Quickstart
Input Type: Device Event
Device Id: xxxxxxxxxxx
(Sensor の MAC アドレスを⼩小⽂文字で⼊入⼒力力)
Name: IoTセンサー
「Ok」ボタンをクリックします。
- 18. © 2015 IBM Corporation18
Node-‐‑‒RED で IoT アプリを作成する (4)
n 次に、IoTセンサーのデータから温度度データを取り出す function ノード
を定義します
n パレットの functions:function をキャンバスにドラッグドロップし、
ダブルクリックします
n Edit function node のダイアログ・ボックスで以下のように⼊入⼒力力します。
Name: 温度度
Function: return {payload:msg.payload.d.temp};
「Ok」ボタンをクリックします。
n 「IoTセンサー」と「温度度」をマウスでつないでリンクします
- 19. © 2015 IBM Corporation19
Node-‐‑‒RED で IoT アプリを作成する (5)
n 次に、温度度データの条件分岐を指定する switch ノードを定義します
ここでは、温度度40度度以下と40度度超で分岐するよう設定します
n パレットの functions:switch を中央のキャンバスに
ドラッグドロップし、ダブルクリックします
n Edit switch node のダイアログ・ボックスで以下のように⼊入⼒力力します
Name: 温度度判断
分岐条件に以下のようになるように追加します
( +rule ボタンをクリックして追加):
if msg.payload
<= 40
> 40
「Ok」ボタンをクリックします。
n 「温度度」と「温度度判断」をリンクします
- 20. © 2015 IBM Corporation20
n 2つ⽬目のEdit template node のダイアログ・ボックスには以下のように⼊入⼒力力
します
Name: 危険な状況
Template: 温度度 ({{payload}}) は危険です!確認してください!
「Ok」ボタンをクリックします
n 右図のようにリンクします
Node-‐‑‒RED で IoT アプリを作成する (6)
n 次に、条件ごとの処理理を指定する template ノードを定義します。ここ
ではメッセージ出⼒力力をそれぞれ設定します
n パレットの functions:template を
2つ、キャンバスにドラッグドロップ
します
n 1つ⽬目のEdit template node の
ダイアログ・ボックスをダブルクリッ
クし、以下のように⼊入⼒力力します
Name: 安全な状況
Template: 温度度 ({{payload}}) は
安全です
「Ok」ボタンをクリックします
- 21. © 2015 IBM Corporation21
Node-‐‑‒RED で IoT アプリを作成する (7)
n 最後に、処理理結果をモニター出⼒力力するための debug ノードを定義します
n パレットの outputs:debug をキャンバスにドラッグドロップし、
ダブルクリックします
n Edit debug node のダイアログ・ボックスで以下のように⼊入⼒力力します
Output: message property を選択
to: debug tab
Name: 温度度の判断結果の出⼒力力
「Ok」ボタンをクリックします
n これらのノードを右図のようにリンクします
- 22. © 2015 IBM Corporation22
Node-‐‑‒RED で IoT アプリを作成する (8)
n これまでのステップで下図のようなフローができあがります。右上の
「Deploy」ボタンをクリックし、ブラウザ上の定義をクラウド上のアプ
リケーションへ反映します。上部に “Successfully deployed” と表⽰示さ
れれば、Bluemix へのデプロイは成功です
n 右側のサイドバーを debug タブに切切り替えます
(必要に応じ、右側にウィンドウが表⽰示されるよう操作します)
- 23. © 2015 IBM Corporation23
デプロイしたアプリケーションを確認する
n 別タブで開いておいたIoTセンサー・シミュレーターの「温度度」のページ
を開き、⽮矢印ボタンをクリックして温度度を変更更してみます
n IoTセンサーの温度度が debug タブに出⼒力力され、40度度以下であれば、”温度度
(xx) は安全です” と出⼒力力されることを確認します
n IoTセンサーの温度度を上げて、40度度を超えると “温度度 (xx) は危険です!
確認んしてください!” と出⼒力力されることを確認します
- 24. © 2015 IBM Corporation24
作成したIoTアプリを拡張してみる
画⾯面左側にある部品を使って、作成したIoTアプリの拡張を試みます。
例例えばTwitterへ出⼒力力する部品やメールを発
信する部品などもあるので、前ページまでの
例例で温度度が40度度を超えたらTwitterへ「危険
です!逃げましょう!」とつぶやく、といっ
た変更更も可能です。またデータベースへの格
納や結果をWebSocket等を使って他のサービ
スへ送る、といった部品も⽤用意されています
Node-‐‑‒REDを使ったアプリ作成の例例や拡張
の⽅方法などについては、QiitaやGitHub、
YouTubeなどを通していろいろご紹介してい
ますので、ご参考にして頂ければと思います
IBM IoT FoundationとNode-‐‑‒REDを使⽤用した
IoTアプリの作成をご紹介しました
お疲れさまでした
- 25. © 2015 IBM Corporation25
1. IBM
MessageSightを使ってみる
• 無償評価版ダウンロード
h0ps://developer.ibm.com/messaging/messagesight/
• MessageSightマニュアル
h0p://www-‐01.ibm.com/support/knowledgecenter/SSCGGQ/welcome
2. MQTTの情報
• MQTT3.1.1仕様(OASISより)
h0p://docs.oasis-‐open.org/mq0/mq0/v3.1.1/os/mq0-‐v3.1.1-‐os.html
• MQTTクライアント(Pathより)
h0ps://eclipse.org/paho/
3. MQTT/MessageSightの紹介記事
• h0p://it.impressbm.co.jp/arMcles/-‐/10773
• h0p://www.itmedia.co.jp/enterprise/arMcles/1402/24/news006.html
4. IoT関連の紹介記事
• h0p://japan.zdnet.com/arMcle/35063346/
• h0p://japan.zdnet.com/extra/ibm_bigdatauniversity/35064389/
• h0p://wired.jp/innovaMoninsights/analyMcs/i001/digital-‐iot-‐innovaMon/
Next Step
- 26. © 2015 IBM Corporation26 26
ワークショップ、セッション、および資料料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃自の⾒見見解を反映したものです。それらは情報提供の⽬目的のみで提供されて
おり、いかなる参加者に対しても法律律的またはその他の指導や助⾔言を意図したものではなく、またそのような結果を⽣生むものでもありません。本講演資料料に含まれている情報につ
いては、完全性と正確性を期するよう努⼒力力しましたが、「現状のまま」提供され、明⽰示または暗⽰示にかかわらずいかなる保証も伴わないものとします。本講演資料料またはその他の
資料料の使⽤用によって、あるいはその他の関連によって、いかなる損害が⽣生じた場合も、IBMは責任を負わないものとします。 本講演資料料に含まれている内容は、IBMまたはそのサプ
ライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤用を規定する適⽤用ライセンス契約の条項を変更更することを意図
したものでもなく、またそのような結果を⽣生むものでもありません。
本講演資料料でIBM製品、プログラム、またはサービスに⾔言及していても、IBMが営業活動を⾏行行っているすべての国でそれらが使⽤用可能であることを暗⽰示するものではありません。本
講演資料料で⾔言及している製品リリース⽇日付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃自の決定権をもっていつでも変更更できるものとし、いかなる⽅方法においても
将来の製品または機能が使⽤用可能になると確約することを意図したものではありません。本講演資料料に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼高の
向上、またはその他の結果が⽣生じると述べる、または暗⽰示することを意図したものでも、またそのような結果を⽣生むものでもありません。 パフォーマンスは、管理理された環境にお
いて標準的なIBMベンチマークを使⽤用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマル
チプログラミングの量量、⼊入出⼒力力構成、ストレージ構成、および処理理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーが
ここで述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例例は、それらのお客様がどのようにIBM製品を使⽤用したか、またそれらのお客様が達成した結果の実例例として⽰示されたものです。実際の環境コスト
およびパフォーマンス特性は、お客様ごとに異異なる場合があります。
IBM、IBM
ロゴ、ibm.com、InfoSphere、WebSphere
は、世界の多くの国で登録されたInternaMonal
Business
Machines
CorporaMonの商標です。
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。
現時点での IBM
の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
JavaおよびすべてのJava関連の商標およびロゴは
Oracleやその関連会社の⽶米国およびその他の国における商標または登録商標です。