はじめに
IoT 化が進み、様々な企業でエッジとクラウドを使ったシステム構築が行われております。弊社にもお客様より「簡単にエッジクラウド間の通信を行いたい」というお声を頂戴いたします。
今回はそんなエッジクラウド間転送において Microsoft 社のクラウド環境 Azure を使用して簡単にそして早期での環境構築を行い、テンプレートを編集して自分のデータをどうやってクラウドに転送するかを紹介したいと思います。
Azure Certified Device
Azure Certified Device プログラムは Azure 上で実行できるよう IoT デバイスの認定プログラムを通じてソリューション構築の方法などを示してくれています。すでに Azure との接続性の確認や方法を資料でまとめておいてくれているためソリューションの構築が容易になり時間短縮することができます。
もしそんなエッジデバイスをお探しの際には弊社で扱っている ADLINK 社や IEI 社のデバイスも認定済みのデバイスがありますのでこちらを選択いただくとすぐにクラウドに接続するシステムを構築することが可能です。
ポイント:IEI 社デバイス https://devicecatalog.azure.com/devices?searchTerm=IEI
IEI 社 FLEX-BX200 のカタログを使用してみた
では実際に用意されているカタログを使用して動作を見ていきます。今回は弊社で扱っている IEI 社 FLEX-BX200 を使用して環境構築を行います。OS は Windows 10 で行います。
ポイント : IEI 社 FLEX-BX200:https://www.macnica.co.jp/business/semiconductor/manufacturers/iei_integration/products/134169/
上記の FLEX-BX200 の Azure Certified Device Catalog のページはこちらです。
ポイント : Azure Certified Device : IEI 社 FLEX-BX200
https://devicecatalog.azure.com/devices/69919c86-ed84-4bc0-b248-615e32c963ce
基本的には上記ページの Get started guide のページをそのままたどれば実行は可能です。ただクラウドでデータを閲覧する際に一部修正が必要な点があったので記載しておきます。
メモ:
Git Hub からダウンロードする下記の main.py の L.24 目の windows_device_info_component_name を空欄にします。
デフォルト)
↓
修正後)
実行すると以下のようになります。
Github 上に記載のあるWindows で対応している項目のうち、 Property が初回通信時に、そして Telemetry の項目が更新されている(デフォルト2秒)ことがわかります。
ポイント : Github About Azure PnP in this project
https://devicecatalog.azure.com/devices/69919c86-ed84-4bc0-b248-615e32c963ce
転送するデータ項目を追加する
デバイスカタログを使用して様々なデータを転送することができました。では自分のデータを同じように送信したい場合にはどうすればいいでしょうか?こちらも先ほどのデバイスカタログを編集することで簡単に行うことができます。編集項目は大きく2点のみで非常に簡単に追加することができます。
-
エッジデバイスのソースコードを変更し自分のデータを転送する
用意されている main.py に転送したいデータを追加します -
Azure IoT Central 側で表示できるようにデバイステンプレートを編集する
用意されているデバイステンプレートの項目に転送するデータを登録し表示できるようにします
ではそれぞれを見てみましょう。
1.エッジデバイスのソースコードを変更し自分のデータを転送する
データを追加したい場合に main.py で編集するのは Property ( 初回転送時のみ) か Telemetry (定期的に転送)かどちらに含ませたいかに依存します。
- L.45 - 174 : Property の項目
- L.176 - 213 : Telemetry の項目
ここでは Telemetry の項目に追加することを考えます。
必要な編集は2か所です。
① 転送するデータを取得します。L.179 - L.184 にデフォルトのデータ取得項目があるのでここに追加するデータを記載します。
② 転送するデータを JSON に追加します。L.193 - L.198 に転送用の JSON に追加している個所があるのでそちらに JSON への追加項目として登録します。
デバイス側のアプリケーションとしては以上です。これでクラウドへ転送される情報(JSON)に追加した項目が含まれるようになります。ただこれだけだとクラウド側では表示される項目が追加されていないため追加した項目をクラウド側で表示できるように編集することが必要となります。次の項目でクラウド側の表示項目に転送するデータの項目を追加します。
ヒント:更新間隔は main.py の L.28 の period で変更可能です
2. Azure IoT Central 側で表示できるようにデバイステンプレートを編集する
アプリケーション側からデータ転送される項目をクラウド側で表示するためにデバイステンプレートを編集します。Azure IoT Central のページのデバイステンプレートにある ”機能の追加”で項目を追加することができます。
クラウド側での表示名、取得するデータ項目(1で追加した JSON の項目名)、機能の種類(Property, Telemetry)の大きく3つの項目を入力するだけです。
おわりに
以上のように Azure Certified Device を使って簡単にエッジクラウド間の転送とデータ転送項目の追加を行うことができました。この記事では Azure へのデータ転送のみでしたが転送したデータを Azure のプラットフォームを使用して分析するなど実際のビジネスで使用するケースにも適用可能かと思います。
Azure Certified Device の紹介も可能ですので是非弊社にお声がけください。
お問い合わせ
株式会社マクニカ アルティマ カンパニー
プロダクトマーケティング部 e-Mail:alt-pm@macnica.co.jp