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」サービスを選択する。
1-2.サービス名、デプロイする地域/ロケーション、組織、スペースを選択し、「作成」をクリックする。
2.デバイスの登録
・接続のためには「デバイス・タイプ」「デバイス」の登録が必要。
・以下の手順で「デバイス・タイプ」「デバイス」を登録する。
2-1.起動をクリックする。
2-2.IoT Platformのダッシュボードが開いたら左側タブの「デバイス」をクリックする。
2-3.デバイス・タイプを登録する。「デバイス・タイプ」タブを開き「デバイス・タイプの追加」をクリックする。
2-4.「名前」部分に任意のデバイス・タイプ名を入力して「次へ」をクリックする。
2-5.デフォルトのまま「完了」をクリックする。(デバイスの詳細情報は必要があれば後から追加することが可能。)
2-6.引き続きデバイスを登録する。「デバイスの登録」をクリックする。
2-7.「既存のデバイスタイプの選択」で先に登録したデバイス・タイプを選択し、「デバイスID」に任意のデバイスIDを入力、「次へ」をクリックする。
2-8.「デバイス情報」「グループに追加」のページではデフォルトのまま「次へ」をクリックする。
2-9.デバイスからIoT Platformに接続を行う際に認証トークンが必要になる。このトークンを自分で決める場合はここに記入する。自動生成する場合は「認証トークン」欄は空欄のまま「次へ」をクリックする。(ここでは自動生成手順を示す。)
2-10.内容を確認して「完了」をクリックする。(自動生成の場合のトークンは次画面で表示)
2-11.この画面で表示される以下の情報を使って接続するため、内容を全てメモする。
※特に認証トークンは復旧不可で、この画面でしか表示されないため、必ずメモを取る。
2-12.2-11の画面で左上の「戻る」をクリックすると登録されたデバイスが表示される。
2-13.デバイス名(ここではsampledevice)をクリックして開き「状態」や「ログ」タブを開くと状態、ログを確認できる。(デバイスからデータを送信し、ここで接続確認ができる)
3.接続、メッセージのパブリッシュ
3-1.サンプルアプリのコードを以下からGit Cloneする。
・サンプルコード: https://github.com/sesamiK/TestTool4IoTPlatform
3-2.マニフェストファイル(manifest.yml)を開き、「name」と「host」と記載されている項目内容を以下に従って編集して保存、IBM Cloud上にPushする。
※yml形式のファイルではスペースが重要なため、誤ってスペースを削除しないよう注意!
・name=任意のアプリ名に変更
・host=任意のホスト名に変更
3-3.IBM Cloud上でpushしたアプリが稼働していることを確認し、「経路」をクリックして表示されたURLにデバイス(iPhoneなど)のブラウザからアクセスする。
3-4.テストアプリ画面にて、「2-11」手順でメモを取った内容を入力して「Start」をクリックする。
・組織ID :組織ID
・デバイス・タイプ:デバイス・タイプ
・デバイスID :デバイスID
・認証トークン :認証トークン
・Message :IoT Platformに送信する任意のメッセージ
・ポート :443か8883を選択
(↓iphoneでsafariを開き、アドレスバーに3-2の経路をクリックして表示されたURLを打ち込んだ画面例)
3-5.「Start」をクリックして下にメッセージ送信のログが表示されていることを確認する。
4.接続確認
4-1.Watson IoT Platformのデバイス>参照タブを開き、対象のデバイス名をクリックして、「状態」タブを開くと、送信したメッセージが「値」項目に表示されていることを確認できる。
4-2.
同様にして「ログ」タブを開くと接続ログが表示され、接続日時、接続情報などを確認できる。