本アプリケーションノートでは、
-
センサから値を取得する
-
取得した値をクラウドにアップロードする
-
クラウドから Armadillo を制御する
など、開発時に必要になることの多い処理を実装しているシンプルな構成のシステムの例として、 Armadillo 本体に搭載されている温度センサから温度と、モデムデバイスから3G/LTE の電波品質を取得しクラウドとの通信を行う、温度監視システムのサンプルアプリケーションをご紹介します。
本システムの電源投入後からの状態遷移図を以下に示します。
図中の各処理の内容については「各処理のシーケンス図」を参照してください。
「システム全体のフロー」の状態遷移図中の各処理のシーケンス図を以下に示します。
netwrok.json に、有効な 3G/LTE ネットワーク及び無線 LAN の設定情報が記載されており、
設定がされていなければ、各ネットワークの設定を行います。
初回起動時、Things Cloud へデバイス登録を行う際のシーケンス図です。
Things Cloud へシリアル ID をキーにデバイス ID を取得し、デバイス ID 取得出来れば、登録済みとみなします。
存在しなければデバイス登録を行います。
起動時のシーケンス図です。
設定情報とユーザー LED3 の状態を更新します。
起動処理終了後の通常動作のシーケンス図です。
定期的に、Things Cloud からの Operation(制御) 取得と、Things Cloud へ計測情報の通知を行います。
Things Cloud UI から Armadillo IoT ゲートウェイ G3M1 の設定を行うシーケンス図です。
Armadiilo IoT ゲートウェイ G3M1 内でセンサーから計測を行い、計測データを一時格納するシーケンス図です。
温度に関して、設定ファイル parameter.json でアラームの設定がしてあり、条件に合致した場合、アラームの発生・クリアを行います。
Armadillo IoT ゲートウェイ G3M1 から Things Cloud へ計測結果を通知するシーケンス図です。
Measurement で生成した Report をThings Cloud へ通知します。
通知する Report が複数存在する場合、最大 20 までまとめて送信を行います。
また、アラーム発生・クリア条件に一致した場合、アラームの発行も行います。
本システムのデータストア仕様を以下の表に示します。
1.4.2. 変更可能データ(parameter.json)
数値以外の値が設定されている、0 以下の値が設定されている場合も
パラメーターが存在しない場合と同様の動作を行います。
1.4.3. Things Cloud 接続データ(things_cloud.json)
ホスト名とテナント名は設定必須のパラメーターです。
ユーザー名とパスワードはデバイス登録後に自動設定されますので設定不要です。
1.4.4. ネットワーク設定データ(network.json)
各ネットワーク接続が必要であれば設定します。