LoginSignup
1
1

More than 5 years have passed since last update.

IBM Watson IoT PlatformにMQTTデータを送信するサンプルアプリ(Node.js)を作成する

Last updated at Posted at 2018-07-02

Watson IoT Platformにmqttデータを投げるサンプルアプリを作成した際の覚書です。

アプリ概要

・IBM Watson IoT Platformにmqtt on websocketでmqttデータを送信するサンプルアプリ。
・スタートボタン、ストップボタンでデータ送信開始/停止を操作。
・ポートを(443/8883)から選択可能。
・サンプルコードは以下。
 https://github.com/sesamiK/TestTool4IoTPlatform

作業の流れ

1.IBM Cloud上でIoT Platformサービスを作成
2.デバイスの登録
3.接続、メッセージのパブリッシュ
4.接続確認

作業手順

1.IBM Cloudにログインし、カタログからWatson IoT Platformのサービスインスタンスを作成する。
1-1.左側タブより「IoT」カテゴリを選択し、「Internet of Things Platform」サービスを選択する。
スクリーンショット 2018-03-11 3月11日.31.49.png

1-2.サービス名、デプロイする地域/ロケーション、組織、スペースを選択し、「作成」をクリックする。
スクリーンショット 2018-03-11 3月11日.34.39.png

2.デバイスの登録
・接続のためには「デバイス・タイプ」「デバイス」の登録が必要。
・以下の手順で「デバイス・タイプ」「デバイス」を登録する。
2-1.起動をクリックする。
スクリーンショット 2018-03-11 3月11日.40.44.png

2-2.IoT Platformのダッシュボードが開いたら左側タブの「デバイス」をクリックする。
スクリーンショット 2018-03-11 3月11日.39.08.png

2-3.デバイス・タイプを登録する。「デバイス・タイプ」タブを開き「デバイス・タイプの追加」をクリックする。
スクリーンショット 2018-03-11 3月11日.41.39.png

2-4.「名前」部分に任意のデバイス・タイプ名を入力して「次へ」をクリックする。
スクリーンショット 2018-03-11 3月11日.46.04.png

2-5.デフォルトのまま「完了」をクリックする。(デバイスの詳細情報は必要があれば後から追加することが可能。)
スクリーンショット 2018-03-11 3月11日.46.25.png

2-6.引き続きデバイスを登録する。「デバイスの登録」をクリックする。
スクリーンショット 2018-03-11 3月11日.50.32.png

2-7.「既存のデバイスタイプの選択」で先に登録したデバイス・タイプを選択し、「デバイスID」に任意のデバイスIDを入力、「次へ」をクリックする。
スクリーンショット 2018-03-11 3月11日.56.09.png

2-8.「デバイス情報」「グループに追加」のページではデフォルトのまま「次へ」をクリックする。
スクリーンショット 2018-05-21 5月21日.08.31.png

2-9.デバイスからIoT Platformに接続を行う際に認証トークンが必要になる。このトークンを自分で決める場合はここに記入する。自動生成する場合は「認証トークン」欄は空欄のまま「次へ」をクリックする。(ここでは自動生成手順を示す。)
スクリーンショット 2018-03-11 3月11日.01.44.png

2-10.内容を確認して「完了」をクリックする。(自動生成の場合のトークンは次画面で表示)
スクリーンショット 2018-03-11 3月11日.02.12.png

2-11.この画面で表示される以下の情報を使って接続するため、内容を全てメモする。
※特に認証トークンは復旧不可で、この画面でしか表示されないため、必ずメモを取る。
スクリーンショット 2018-03-11 3月11日.03.14.png

2-12.2-11の画面で左上の「戻る」をクリックすると登録されたデバイスが表示される。
スクリーンショット 2018-03-11 3月11日.07.10.png

2-13.デバイス名(ここではsampledevice)をクリックして開き「状態」や「ログ」タブを開くと状態、ログを確認できる。(デバイスからデータを送信し、ここで接続確認ができる)
スクリーンショット 2018-03-11 3月11日.08.02.png

3.接続、メッセージのパブリッシュ
3-1.サンプルアプリのコードを以下からGit Cloneする。
・サンプルコード: https://github.com/sesamiK/TestTool4IoTPlatform

3-2.マニフェストファイル(manifest.yml)を開き、「name」と「host」と記載されている項目内容を以下に従って編集して保存、IBM Cloud上にPushする。
※yml形式のファイルではスペースが重要なため、誤ってスペースを削除しないよう注意!
・name=任意のアプリ名に変更
・host=任意のホスト名に変更
スクリーンショット 2018-03-11 3月11日.26.25.png

3-3.IBM Cloud上でpushしたアプリが稼働していることを確認し、「経路」をクリックして表示されたURLにデバイス(iPhoneなど)のブラウザからアクセスする。
スクリーンショット 2018-03-11 3月11日.29.26.png

3-4.テストアプリ画面にて、「2-11」手順でメモを取った内容を入力して「Start」をクリックする。
・組織ID     :組織ID
・デバイス・タイプ:デバイス・タイプ
・デバイスID   :デバイスID
・認証トークン  :認証トークン
・Message    :IoT Platformに送信する任意のメッセージ
・ポート     :443か8883を選択

(↓iphoneでsafariを開き、アドレスバーに3-2の経路をクリックして表示されたURLを打ち込んだ画面例)
IMG_4934.PNG

3-5.「Start」をクリックして下にメッセージ送信のログが表示されていることを確認する。
IMG_4935.PNG

4.接続確認
4-1.Watson IoT Platformのデバイス>参照タブを開き、対象のデバイス名をクリックして、「状態」タブを開くと、送信したメッセージが「値」項目に表示されていることを確認できる。
スクリーンショット 2018-05-21 5月21日.31.12.png

4-2.
同様にして「ログ」タブを開くと接続ログが表示され、接続日時、接続情報などを確認できる。

1
1
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
1
1