(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Watson/IoT】シミュレーターを利用して仮想のデバイスからデータを取得する

スポンサーリンク

はじめに

IBM CloudにおけるInternet of Things Platformを利用するとIoTデバイスを一元的に管理できます。
同サービスの中でWatson IoT Platformにて、デバイスとデバイス・データをシミュレートすることで実デバイスの用意なしにIoTを体験してみました。

環境情報
  • Watson IoT Platform v7.0.28

環境準備

IBM Cloudの管理画面にてInternet of Things Platformをオーダーします。
するとリソースリストから同サービスが確認でき、その管理画面から以下のように”Watson IoT Platform”が起動できます。

f:id:mtiit:20211023170431p:plain
Iot/Watson

起動ボタンを押下すると新たにアカウントのIDが採番されて以下URLに遷移し

https://XXXX.internetofthings.ibmcloud.com/

以下のようにデバイスが一元的に管理できます。

f:id:mtiit:20211023170704p:plain
デバイス一覧画面

今回はシミュレータを利用するので”一般設定”からデバイス・シミュレーターをアクティブにします。

デバイス/シミュレーターの作成

各デバイスを登録/作成する前に「デバイス・タイプ」と呼ばれるオブジェクトを新規作成します。
入力する値としてはデバイス名だけでもよく、それに紐づくデバイスのテンプレートとして利用するので機種だけではなくロケーション毎に分けるなどを想定しています。

デバイスタイプができると「デバイスの参照」から”X個のシミュレータが稼働しています”と表示されている箇所があるのでそこをクリックするとシミューレーターが作成できます。

先程用意したデバイスタイプ毎にイベントタイプが用意でき、そこに

  • 分間隔
  • イベントの式

が格納できるので、例えば1分毎にして式をデフォルトの以下とすれば

{
  "randomNumber": random(0, 100)
}

そのデバイスタイプからできたシミューレーターは1分毎に1~100の値をランダムで送信します。

試しに1つデバイスを用意すると以下のように実体は存在しないのに「接続済」となっています。

f:id:mtiit:20211023171703p:plain
接続済となる

作成したデバイスの詳細を見ると”最近のイベント"という箇所に以下のような値が確認できます。

イベント	値	フォーマット	最終受信
event_1	{"randomNumber":74}	json	数秒前

終わりに

デバイスは新規作成しても状況は「切断済み」になってしまいますがシミューレーターは同ダッシュボードを起動する度に仮想的に接続がされます。実際にデバイスを用意したりデバイスに仮想的に接続してイベントを発生させることなく、自動的にイベントを発生させてくれるシミューレーターは動作検証におすすめです。