LoginSignup
71
71

More than 5 years have passed since last update.

Watson IoT Platformを使ってみる

Last updated at Posted at 2016-05-17

初めてWatson IoT Platformを使ってみよう、というかたのためのガイドです。

初めに

BluemixのIDを取得します。
1. FirefoxかChromeかSafariでBluemix.netへアクセスし、画面右上の「登録」を選択します。
2. 登録画面で名前、メールIDなどを登録すると、指定したメールIDへ招待メールが届くので、そのリンクをクリックしてactivateします。
3. Bluemixへログインします。
4. "Successfully logged in"のメッセージが表示されるのみで画面が切り替わらない場合、ブラウザ(FirefoxまたはChromeまたはSafari)のURL入力欄にもう一度bluemix.netを入力し、[Cntl]+Rで画面を再読み込みしてみます。

作業する地域を確認します

  1. Bluemixへログインしたら、画面右上の自分のユーザー名のアイコンをクリックしてプルダウンを開き、「地域」を「米国南部」へ変更します。
    スクリーンショット 2016-05-22 17.21.13.png

  2. IoTのアプリを作るには「米国南部」のほうがいろいろ面白いためです。

  3. 「スペース名を作成」のプロンプトが表示された場合には、適当に入力します(例:開発用であれば「dev」など)。

最初のIoTアプリを作成

  1. 再びBluemixの初期画面へ戻ったら、画面右上の六角形の「+」記号を選択します。画面右上にこの「+」記号が見つからない場合、

    • 「ようこそ○○」と自分のログイン名が表示されている場合は、その下の「概要」が選択されているので、「すべての項目」を選択すると画面右上に六角形の「+」記号が表示されるようになります。
    • クラシック画面になっている場合は、画面上部の「Try the new Bluemix」ボタンを押して新しいBluemix画面にします。もしくはクラシック画面のまま、画面右上の「カタログ」を選択し、次項のボイラープレートからのアプリ作成を行う事も可能です。
  2. 表示されるメニューの中から、先頭セクションにある「ボイラープレート」(テンプレート集)の中の「Internet of Things Platform Starter」を選択します。
    スクリーンショット 2016-05-17 11.29.36.png

  3. 適当なアプリケーション名を指定します。
    スクリーンショット 2016-05-18 8.19.41.png

  4. 画面をスクロールし、画面下部の「作成」ボタンを押します。

  5. 「概要」タブへ移動し、作成したアプリケーションが開始されるまで数分待ちます。「ログ」タブで進捗を確認できます。

  6. 「アプリは実行中です」と表示されたら「アプリの表示」ボタンを押します。クラシック画面を使用している場合は、「経路」の右に表示されたURLをクリックします。
    スクリーンショット 2016-05-18 8.24.17.png

  7. 「Node-RED in Bluemix」画面が表示されるので、画面右下の赤い「Go to your Node-RED flow editor」ボタンを押します。

  8. Node-RED画面が表示されます。
    スクリーンショット 2016-06-07 8.25.12.png

  9. 上記フローが表示されない場合、Watson IoT Platform - Node-RED - フローをコピーする方法を参照して以下のフローをコピペで用意する事も可能です。

基本的なIoTアプリのフロー
[{"id":"3e77d543.c1882a","type":"ibmiot in","z":"c5a69172.72d498","authentication":"quickstart","apiKey":"","inputType":"evt","deviceId":"","applicationId":"","deviceType":"+","eventType":"+","commandType":"","format":"json","name":"IBM IoT App In","service":"quickstart","allDevices":false,"allApplications":false,"allDeviceTypes":true,"allEvents":true,"allCommands":false,"allFormats":false,"x":100,"y":400,"wires":[["ae0082ac.51ff8","c0c482df.3f3b8"]]},{"id":"ae0082ac.51ff8","type":"function","z":"c5a69172.72d498","name":"temp","func":"return {payload:msg.payload.d.temp};","outputs":1,"x":290,"y":400,"wires":[["ff6ad0d9.00953"]]},{"id":"ff6ad0d9.00953","type":"switch","z":"c5a69172.72d498","name":"temp thresh","property":"payload","rules":[{"t":"lte","v":40,"v2":null},{"t":"gt","v":40,"v2":null}],"checkall":"true","outputs":2,"x":450,"y":400,"wires":[["80621eff.7f9de"],["8e1706a.f71e8f8"]]},{"id":"5dad02b7.a252fc","type":"debug","z":"c5a69172.72d498","name":"cpu status","active":true,"complete":"false","x":790,"y":400,"wires":[]},{"id":"c0c482df.3f3b8","type":"debug","z":"c5a69172.72d498","name":"device data","active":true,"console":"false","complete":"true","x":310,"y":480,"wires":[]},{"id":"80621eff.7f9de","type":"template","z":"c5a69172.72d498","name":"safe","template":"Temperature ({{payload}}) within safe limits","x":610,"y":380,"wires":[["5dad02b7.a252fc"]]},{"id":"8e1706a.f71e8f8","type":"template","z":"c5a69172.72d498","name":"danger","template":"Temperature ({{payload}}) critical","x":620,"y":420,"wires":[["5dad02b7.a252fc"]]},{"id":"cbe1a0b7.cd877","type":"ibmiot out","z":"c5a69172.72d498","authentication":"boundService","apiKey":"","outputType":"evt","deviceId":"LivingRoomThermo1","deviceType":"thermostat","eventCommandType":"update","format":"json","data":"temp:10","name":"Send to IBM IoT Platform","service":"registered","x":566,"y":120,"wires":[]},{"id":"5917a925.6a3c08","type":"inject","z":"c5a69172.72d498","name":"Send Data","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"x":100,"y":120,"wires":[["6b4a591c.014b18"]]},{"id":"6b4a591c.014b18","type":"function","z":"c5a69172.72d498","name":"Device payload","func":"// Thermostat's location:\nvar longitude1 = -98.49;\nvar latitude1 = 29.42;\n\n// Array of pseudo random temperatures\nvar temp1 = [15,17,18.5,20,21.5,23,24,22.2,19,18];\n\n// Array of pseudo random relative humidities\nvar humidity1 = [50,55,61,68,65,60,53,49,45,47];\n\n// Counter to select from array.\nvar counter1 = context.get('counter1')||0;\ncounter1 = counter1+1;\nif(counter1 > 9) counter1 = 0;\ncontext.set('counter1',counter1);\n\n// Create MQTT message in JSON\nmsg = {\n  payload: JSON.stringify(\n    {\n      d:{\n        \"temp\" : temp1[counter1],\n        \"humidity\" : humidity1[counter1],\n        \"location\" :\n        {\n          \"longitude\" : longitude1,\n          \"latitude\" : latitude1\n        },\n      }\n    }\n  )\n};\nreturn msg;\n","outputs":1,"noerr":0,"x":320,"y":120,"wires":[["cbe1a0b7.cd877","805c97ee.3ed9e8"]]},{"id":"805c97ee.3ed9e8","type":"debug","z":"c5a69172.72d498","name":"Debug output payload","active":true,"console":"false","complete":"payload","x":560,"y":180,"wires":[]},{"id":"86df0b6c.af90c8","type":"comment","z":"c5a69172.72d498","name":"Device Simulator","info":"Sends simulated device sensor data to IBM Watson IoT Plaform.\n\nCan be configured to send on click or on an automatic interval.\n\n\n#Prerequisite\nOutput node device type and device ID need to match a device that it registered in a running IBM Watson IoT Platform service.\n\n# Watson IoT Platform docs\n[Connecting devices](https://www.bluemix.net/docs/services/IoT/iotplatform_task.html)","x":100,"y":40,"wires":[]},{"id":"141b7c7.ad42a84","type":"comment","z":"c5a69172.72d498","name":"1. Configure target","info":"","x":550,"y":80,"wires":[]},{"id":"c2dd8ed5.7dd7f","type":"comment","z":"c5a69172.72d498","name":"2. Click to send data","info":"To automatically send data:\n1. Change *Repeat* to interval.\n2. Click Deploy button.\n","x":110,"y":160,"wires":[]},{"id":"7926c7b2.86d938","type":"comment","z":"c5a69172.72d498","name":"Temperature Monitor","info":"","x":110,"y":300,"wires":[]},{"id":"188a5e87.e775a1","type":"comment","z":"c5a69172.72d498","name":"Configure source","info":"","x":100,"y":360,"wires":[]}]

  • 上記のフローのうち、上部のフロー("Device Simulator"と表記され灰色の"Send Data"ノードから始まるフロー)については、下記の6.で紹介しています。
  • 上記のフローのうち、下部のフロー("Temperature Monitor"と表記され青い"IBM IoT App In"ノードから始まるフロー)については、下記の3、4で紹介しています。

次のステップ

Node-REDを使って以下の操作が可能です。
1. 入力・出力の使い方
2. ファンクションの使い方
3. 温湿度計のシミュレーターを用意する
4. 温湿度計のシミュレーターをつないで出力してみる
5. フローをコピーする方法
6. 登録されたデバイスからデータを取得する

さらに次のステップ

上記のNode-REDフローを元にいろいろな操作をやってみます。
1. IoTデータをデータベースに格納する
2. IoTデータへSQLでアクセスする
3. dashDBへ直接書き込む
- dashDBへSQLツールでアクセスして表示する
4. メーターで可視化する
5. Bluemixのサービスを使えるようにする
6. Watsonに喋らせてみる
7. Twitterへつぶやいてみる
8. TIセンサータグを使ってみる
9. IFTTT経由でSMSメッセージを送ってみる
10. デバイスを登録してデータを送信する
11. アプリを登録してデータを受信する
12. Watson IoT Platformでルールを使ってみる
13. Watson IoT Platform APIを使ってみる
14. Node-REDをローカル環境で稼働させる

サンプル・フロー

  1. シミュレーターの値を閾値で判断
  2. センサーからの値を閾値で判断
  3. センサーからの値をリアルタイムで可視化
  4. データベースからのIoTデータを表示
  5. Watson Speech to Textで日本語でIoTしてみる
  6. ビーコンの位置情報を可視化する
  7. TensorFlowでIoTデータを人工知能してみる

Node-REDでシンプルなウェブサイトを作ってみる

  1. Node-REDでシンプルなウェブサイトを作ってみる

ダッシュボードを作ってみる

まずはお手軽にダッシュボードを作ってみたい、というかたはkuraokaさんのnode-red-dashboardでチャート表示IoTアプリ作成 がおすすめです。
いや、ガチで自分で作り込みたい、というかたは下記をどうぞ。
1. ダッシュボードを作ってみる

他の達人たちの記事

  1. Node-REDのhttp inノードでBasic認証を有効にする (takeyanさんの記事)
  2. BluemixとカスタムドメインとSSLサーバー証明書とクライアント証明書 (takeyanさんの記事)
  3. BluemixのDockerコンテナ環境にTensorFlowをインストールする (takeyanさんの記事)
  4. (ほぼ)スマホ(だけ)を使ってIoTを始めてみよう (manamanaさんの記事)
  5. (ほぼ)スマホ(だけ)を使ってIoTを始めてみよう~応用アプリを作る~ (manamanaさんの記事)
  6. node-red-dashboardでチャート表示IoTアプリ作成 (kuraokaさんの記事)
  7. Node-REDに追加できるノード

さらにその次のステップ

  1. Predictive Analyticsを使ってリアルタイム解析する
  2. Streamsを使ってリアルタイム解析してみる
  3. IBM Internet of Things Workbenchでアプリを作ってみる。- 紹介動画

Node-RED小ワザ集

  1. msg.payloadについて
  2. フロー内で共有する変数など
  3. 日付・時刻の追加
  4. 直近10件の平均や標準偏差を求める
  5. 自分のノード(サブフロー)を作成する
  6. 閾値によって判断する
  7. センサーからの最新値を入手する
  8. シミュレーターを作る
  9. Node-RED小ワザ集
  10. Bluemix小ワザ集

MQTTを試してみる

  1. MessageSightを動かす
  2. MessagingTesterを使ってみる
  3. Publish/Subscribeしてみる
  4. MessageSightで使用状況を確認する
  5. Node-REDからpub/subしてみる
  6. Node-REDを使ってMQTT
  7. NodeREDからQuickstartへpublish
  8. サンプルアプリからQuickstartへpublish
  9. Topicの確認
  10. Retainの確認
  11. CleanSession=false(durable subscription)の確認
  12. pahoのsandboxとNode-REDでMQTTの練習
  13. 共用サブスクリプションを試してみる - Watson IoT Platform
  14. Message HubでKafkaしてみる
71
71
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
71
71