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で様々なダッシュボートを作成してみてください。