ブログ

Armadillo-IoT A6:オムロン環境センサーからUSBで受け取ったデータをMicrosoft AzureのIoT Centralに送信してみた

at_yukari.hara
2021年6月28日 18時02分

Armadillo-IoT A6を使用して、オムロン環境センサーからUSBで受け取ったデータをMicrosoft AzureのIoT Centralに送信してみました。
当ブログはIoT PnP Azure認定デバイスカタログにも登録されているAT_AIoT_GWA6_EnvMonitorのアプリケーションノートの手順で作成しています。

動作イメージ

当ブログの動作イメージとしては、以下の動画をご覧ください。

システムの構成

使用したもの

■機材


■Microsoft Azure関連

     
  • Microsoftアカウント
  •  
  • Azure CLI
  •  
  • Azure サブスクリプション

事前準備

Armadillo-IoT A6のLTE通信設定

Armadillo-IoTゲートウェイ A6 製品マニュアルの6.2.4. LTE の設定を参考に、LTEの設定を行います。
今回SIMはsoracom plan-Dを使用しておりますので、「startup.conf」の設定はArmadillo-IoT A6: startup.conf の設定例 (soracom plan-D)を参考にしています。

手順

※注意事項※
環境構築の手順はダウンロード等で通信量が増える為、有線LANでのインターネット通信をおすすめします。

1.必要なパッケージ/ライブラリのインストール

下記コマンドを実行し、必要なパッケージやライブラリをインストールします。

root@armadillo:~# apt update
root@armadillo:~# apt -y upgrade
root@armadillo:~# apt install -y python3
root@armadillo:~# apt install -y python3-pip
root@armadillo:~# pip3 install azure-iot-device
root@armadillo:~# pip3 install pyserial
root@armadillo:~# pip3 install crcmod
root@armadillo:~# apt install -y git

2.サンプルコードのダウンロード

下記コマンドを実行し、Armadillo用のクラウド接続の為のサンプルコードをインストールします。

root@armadillo:~# mkdir work
root@armadillo:~# cd work
root@armadillo:~# git clone https://github.com/atmark-techno/Azure-IoT-samples.git

3.IoT Centralの作成

クイックスタート - Azure IoT Central アプリケーションを作成するを参考に、IoT Centralアプリケーションを作成します。

4.IoT Centralの接続に必要な情報の取得

IoT Centralの左のメニューから、「管理」→「デバイス接続」→「SAS-IoT-Devices」をクリックして、 「IDスコープ」と「主キー」をメモ帳などにコピーしておきます。

5.デバイス固有キーの作成

Azure CLIでMicrosoft Azureのアカウントにログインして、以下のコマンドを実行します。

> az extension add --name azure-iot
> az iot central device compute-device-key --primary-key <SAS主キー> --device-id <任意のデバイスID>

認証が確認されると、デバイス固有キーが生成されます。

“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX="

こちらのデバイス固有キーもこの後使用する為、メモ帳などにコピーしておきます。

6.設定ファイルの編集

先程取得したIoT CentralのIDスコープ、デバイス固有キー、デバイスIDを使用して、 「work/Azure-IoT-samples/Armadillo-IoT_GW/a6_envmon_config.json」ファイルを以下のように編集します。

{
  "auth": {
   "IOTHUB_DEVICE_DPS_ENDPOINT": "global.azure-devices-provisioning.net",
   “IOTHUB_DEVICE_DPS_ID_SCOPE”: “IDスコープ",
   “IOTHUB_DEVICE_DPS_DEVICE_ID”: “デバイスID",
   “IOTHUB_DEVICE_DPS_DEVICE_KEY”: “デバイス固有キー“
  },
(省略)
}

7.動作確認

「azure_a6_envmon.py」を実行すると、下記ログが表示されます。

Device was assigned
iotc-XXX-XXX-XXX-XXX.azure-devices.net
[デバイスID]
Press Q to quit

こちらのログが表示されたら、IoT Centralへ接続されています。
一定時間ごとに環境センサーのデータが送信され、以下のログが表示されます。

Send message
Send message

IoT Centralを確認すると、先程設定したデバイスIDでデバイスが登録され、 Overviewでは以下のように環境センサーから取得したデータが確認出来ます。

参考情報

自動実行

上記の手順では、Armadilloに電源を投入してアプリケーションを実行するまでIoT Centralにデータは送信されません。
Armadilloに電源を投入した際に、オムロン環境センサーからのデータを自動的にIoT Centralに送信するよう設定したい場合は、systemdを利用してアプリケーションを実行するスクリプトを作成する事で電源投入時にアプリケーションを自動起動する事ができます。
具体的な設定方法はArmadillo-X1, Armadillo-IoT G3/G3L: systemdでアプリを自動起動する方法(その1)をご参照ください。

※終了処理を実行せずに電源を遮断する方法も併せてご検討の際は22.4. ルートファイルシステムへの書き込みと電源断からの保護機能をご参照ください。