はじめに
最近AWSを用いた製造現場のDX化の技術検証に携わっております。
そこで検証した内容をアウトプットのため、他にも同じようなことをしている方のため
簡単にですがまとめたいなーと思いました。
構築手順をサクッとまとめるので、わからんことあったら直接ご連絡ください笑
やること
センサデータを収集してニアリアルタイムで分析するため、IoT SiteWiseを利用しています。
また今回は検証しませんが、将来的にエッジでAWSに送信するデータの加工や取捨をしたいのでGreengrassを使用しています。
SNSの理由は言うまでもなく閾値通知ですね
検証
実際にセンサデータやサーバを用意するわけにはいかないので、その部分はCloud 9で代用していきます。
アーキテクチャ
こんな感じです。
Cloud 9にGreengrassのインストールと、センサデータの代役としてOPC UAサーバを作成しています
データ収集基盤構築、検証
cloud9作成
Cloud 9作成手順は飛ばします。
インスタンスタイプは「t3.small」で問題ないです。
SiteWise Gateway
Greengrass経由でSiteWiseにデータを転送するため、オンプレミスサーバ(検証ではCloud 9)にSiteWise Gatewayをインストールします。
ゲートウェイ名やコアデバイス名は自由でおけ。
「ゲートウェイを作成」をクリックするとデプロイ用のスクリプトがダウンロードできます。
Cloud9にSiteWise Gatewayをデプロイ
Upload Fileから先ほどダウンロードしたスクリプトをアップロードします。
下記コマンドで、スクリプトを実行すると、Cloud9にSiteWise Gatewayがデプロイされます
$ chmod +x {スクリプト名}.deploy.sh
$ sudo ./{スクリプト名}.deploy.sh
「AWS IoT」⇒「Greengrassデバイス」⇒「デプロイ」でゲートウェイ名を確認します。
また、以下コンポーネントがデプロイされています
- aws.iot.SiteWiseEdgeCollectorOpcua
- aws.iot.SiteWiseEdgePublisher
OPC UAサーバの作成
仮想のOPC UAサーバを作成します。
asyncuaライブラリをインストールすると、以下GitHubのサンプルをそのまま利用できます。
単純な数値の並びを送信するだけですが、検証なので問題ないです。
pip install asyncua
モデルの作成
今回は数値の羅列が送られてくるだけなので、「測定」に「count_value」を定義しました。
小数点付きなので、「データ型」はダブルです。
アセットの作成
「データストリーム」からSiteWise Gatewayから送られてくるデータとアセットを紐づけます。
SiteWise側データ受信確認
「最新の値」にデータが表示されていれば成功です。
後は各々S3への保管設定をしてください。
センサデータ監視
SiteWise Monitorを使用すれば、SiteWiseに収集したデータをグラフで確認できます。
設定方法は各々表示させたい情報によって異なると思うので飛ばしやす。
閾値通知検証
SiteWiseに収集したデータを監視し、閾値を超えると通知を送るようにします。
SNSのサブスクリプション作成
今回はメールで通知を行うのでプロトコルはEMAILを使用します。
モデル作成
閾値を超えたときに通知するため、モデルを作成します。
今回は「8」を超えたときに通知しようと思います。
アラーム設定
「モデル」⇒「アラーム」から通知の設定をします。
「IoT Events」をアラームタイプとし、SNSを使用する設定にします。
これで閾値を超えた時、SNSに通知が届きます
おわり
IoTはAWSだけでなくいろんなことを理解しないといけないのが難しいですね、、
最近は業務でAWSに触れる機会が増えたので、ブログ更新できていませんでしたが
たまにはここにもアウトプットしようと思います。