SmartWorks IoTとAltair Activateの連携


SmartWorks IoTを使用するとログインするだけで、Altair Panopticonによるリアルタイム可視化やMQTT*1ブローカが使用可能です。

また、Altair Activateは1Dモデルを用いたリアルタイムシミュレーションのほか、ArduinoデバイスとのHardware in the loopやHuman in the loopに対応しており、実機を含めた様々なデータを取り扱うことができます。

今回はSmartWorks IoTを使用して、Altair Activateで生成したデータをAltair Panopticonでリアルタイム可視化する手順を紹介します。

*1)MQTTとはHTTPのような通信プロトコルの一種です。Message Queueing Telemetry Transportの略です。ブローカーと呼ばれる通信サーバを介すことで、情報の送受信が可能となります。

SmartWorks IoTへのログイン

下記サイトで登録し、ログインします。

https://idp.swx.altairone.com/auth/registration

Spaceを作成します。今回はdemo-jpというSpaceを作成し、その中で作業します。

 

MQTTブローカのセットアップ

SmartWorks IoTはMQTTブローカを提供しています。これを使用すると、Altair Activateなどの他のソフトからMQTTを利用してSmartWorks IoTにデータを送ることができます。

MQTTを使用してデータを受け取るにはAnythingDBを使用します。

Category名: MQTT

Things名: sin_saw

として、Thingsを作成しました。Activateで生成したサイン波形、のこぎり波形を受け取る予定ですので、sin_sawという名前にしています。

作成したThingsにはidが振られます。

ここで、Category、ThingsはAnythingDBのデータ構造の階層名となります。先に作成したSpace下に

Space / Category / Things のようにデータが格納されます。

SmartWorks IoTのMQTTブローカを使用するには下記hostnameとtopicを使用します。

Hostname: mqtt.swx.altairone.com

Topic: spaces/(space名)/categories/(category名)/things/(uid)/data

Topicの最後を/dataとすることで、publishされた情報を生データのまま格納します。

また、InterfacesタブにてMQTTのUsername、Passwordを設定します。

 

Altair Activateの設定

MQTTを使用して、メッセージと値を送信します。メッセージはJSON*2を使用します。

サイン波とのこぎり波を生成して、1/5sec毎(5Hz)でMQTTで送信するサンプルを作成しました。ダウンロードはこちらです。

*2)JSONとはデータを記述するためのフォーマットです。JavaScript Object Notationの略です。 各種言語でサポートされており、JavaScript <-> Python間など異なる言語間でデータをやり取りするために使用されます。

MQTTPUBブロックのプロパティです。

Portは1883を使用し、Hostname、Username、Password、TopicはSmartWorks IoTで確認したものを入力してください。

Keep Aliveはデフォルト0ですが、10~60程度に設定いただくと送信が安定します。

MessageにてJSONフォーマットにてラベルを記述します。それぞれsin、sawのラベルをつけて値を%%で参照し、以下のように記述します。

{"sin":%%1, "saw":%%2}

リアルタイムで動作させますので、設定よりリアルタイムスケーリング=1としてください。

Activateを実行するとサイン波、のこぎり波のデータがMQTTでSmartWorks IoTに送信されます。

SmartWorks IoT側でRaw Historyをクリックすると受信したデータを確認できます。Activateから正しくデータが送信できていることが確認できます。

以上でActivateの準備は完了です。

 

Real Time Visualization (Altair Panopticon)の設定

Smart Works IoTのReal Time Visualizationを用いることで、インストール不要でAltair Panopticonを使用できます。これを使用して、Activateから送信されたサイン波、のこぎり波をリアルタイム可視化します。

フォルダの中にワークブックを作成することで、ワークブック内に様々なグラフを作成できます。

今回は、Sin Saw Vizualizationという名前で作成しました。

右上の編集をクリックして編集モードに入ります。

 

データテーブルの作成

データテーブルを作成します。名前はsin_sawとしました。

データソースを追加します。名前をMQTTとし、ストリーミングのMQTTを選択します。

またActivate側からの送信が5Hzですので、 更新間隔を200msecとします。

MQTTの設定を行います。

Activateで設定したtopic、username、passwordを設定します。

hostnameのみ冒頭にtcp://を追加し、ブローカURLに入力してください。

ブローカURL: tcp://mqtt.swx.altairone.com

Activateを再度実行し、データが送信されている状態で、列作成をクリックします。

そうすると、JSONで定義したラベルを自動認識して、列が作成されます。

今回はサイン波とのこぎり波の二つのデータに対応したsinとsawが作成されます。

これらのデータをリアルタイムで表示させるための設定を行います。

まずは、下記のリアルタイム設定のID列をsin、sawとし、時間ID列を[Automatic Time ID]、時間ID列名称をAutomatic_Timestamp_Columnとします。

次に、変換設定にて時系列分析を有効化する変換をオンにしてください。

以上でデータの準備は完了です。右上のボタンで保存してください。

画面左下のデータ列のアイコンが時系列アイコンになっていれば成功です。

 

グラフの作成

ダッシュボードをマウスでドラッグすることで、グラフを配置できます。

時系列のグラフを作成する場合は、時系列ビジュアライゼーションからグラフを選択します。まずはニードルを配置してみます。

のこぎり波のグラフを表示するには、データテーブルのsawをドラッグアンドドロップでY軸に設定します。

生値を表示する場合は、集計なしとしてください。

同様に折れ線でサイン波を表示してみます。

Y軸をsinとします。

できましたら、右上の保存、ビューとクリックします。

 

リアルタイム可視化

Activateを実行するとSmartWorks IoT上のPanopticonに リアルタイムでグラフが描画されました。

 

SmartWorks IoTを使用すると、Altair Activateなどの他のソフトからMQTTを利用してSmartWorks IoTにデータを送信し、リアルタイムに可視化できます。

Altair ActivateはArduinoデバイスとのHardware in the loopやHuman in the loopに対応しており、実機を含めた様々なデータを取り扱うことができます。

SmartWorks IoTのPanopticonで様々なダッシュボートを作成してみてください。