次の方法で共有


IoT のアセットとデバイスの開発

この概要では、一般的な Azure IoT ソリューションに接続するアセットとデバイスの開発に関する主要な概念について説明します。 各セクションには、追加の詳細とガイダンスを提供するコンテンツへのリンクが含まれています。 通常、デバイスは IoT Hub などのクラウドベースのサービスに直接接続するのに対し、アセットは Azure IoT Operations などの環境内のエッジ ベースのサービスに接続します。 この記事には、アセットとデバイスの両方に関する情報が含まれます。

次の図は、一般的なエッジ ベースの IoT ソリューションでのコンポーネントの概要を示したものです。 この記事では、図に示されているアセットとコネクタについて重点的に説明します。

アセットの接続範囲が強調されている、IoT ソリューション アーキテクチャの概要を示す図。

通常、アセットには標準プロトコルを実装するファームウェアが組み込まれています。 たとえば、ロボット アームが OPC UA クライアントである場合や、セキュリティ ビデオ カメラが ONVIF を実装している場合があります。 Azure IoT Operations に含まれるさまざまなコネクタは、これらのプロトコルを使ってアセットと通信し、アセットからのメッセージを MQTT メッセージに変換できます。 一部のアセットは、ユーザーがそれに対して次のような操作を実行できるメッセージを受信できます。

  • セキュリティ カメラをパンしたり傾けたりします。
  • ロボット アームでのログ レベルを変更します。
  • ファームウェアの更新を開始します。

ユーザーは、独自のカスタム コネクタを作成し、Azure IoT Operations によってネイティブにサポートされていないプロトコルを使用するアセットに接続できます。

アセットとデバイスの種類

IoT ソリューションには、多くの種類のアセットデバイスを含めることができます。 通常、デバイスはクラウドベースのソリューションに含まれ、アセットはエッジ ベースのソリューションに含まれます。 デバイスとアセットの両方を含むハイブリッド ソリューションを作成することもできます。

次に示すのは、エッジ ベースのソリューションでのアセットの例です。

  • ロボットアーム、コンベヤベルト、エレベーター。
  • 産業用 CNC 機械、旋盤、のこぎり、ドリル。
  • 医療診断用イメージングマシン。
  • セキュリティ ビデオ カメラ。
  • ソフトウェアまたはソフトウェア コンポーネント
  • プログラマブル ロジック コントローラー。

通常、これらのアセットには標準プロトコルを実装するファームウェアが組み込まれています。 たとえば、ロボット アームが OPC UA クライアントである場合や、セキュリティ ビデオ カメラが ONVIF プロトコルを実装している場合があります。 エッジ ベースのソリューションでは、特殊なコネクタを使ってアセットに接続し、それらからのメッセージを共通の形式に変換します。

アセットの場合、デバイス開発者ロールに直接相当するものはありません。 代わりに、オペレーターがアセットに接続するようにコネクタを構成できます。 ただし、エッジ ベースのソリューションでネイティブにサポートされていないプロトコルを使うアセットに接続するには、カスタム コネクタの開発が必要になる場合があります。

モデリングとスキーマ

デバイスとアセットのモデルでは、デバイスとアセットがクラウドと交換するデータを定義します。 モデルによって、デバイスとアセットを IoT ソリューションと統合するための、ロー コードまたはノー コードのさまざまなシナリオが可能になります。

エッジ ベースのソリューションでは、オペレーターがアセットに接続するようにコネクタを構成します。 この構成には、アセットのデータとクラウドのスキーマの間のマッピングが含まれます。 たとえば、OPC UA コネクタでは、オペレーターは、OPC UA のノード ID を、MQTT ブローカーと交換される JSON メッセージのタグとイベントにマップできます。 次のスクリーンショットは、アセットに対するそのようなマッピングが 2 つ定義されているデジタル操作エクスペリエンス Web UI の例を示したものです。

アセットの定義の例を示すスクリーンショット。

オペレーターは、OPC UA ノード ID の詳細を知らなくても、ソリューション内の他の場所で、タグ TemperatureTag 10 を直接参照できます。

コンテナー詰め

コンテナ化は、軽量の分離された環境にコードをパッケージ化して実行する方法です。 コンテナーは移植可能であり、コンテナー ランタイムをサポートする任意のプラットフォームで実行できます。 コンテナーは、コードに一貫したランタイム環境を提供するので、コードをパッケージ化してデプロイするのによい方法です。 ランタイム環境には、通常、コードの実行に必要なサービス、ライブラリ、パッケージが含まれます。

Azure IoT Operations は、エッジで実行されるすべてのコネクタ、ブローカー、その他のコンポーネントをコンテナ化します。 Azure IoT Operations は、コンテナー オーケストレーション プラットフォームである Kubernetes クラスターにデプロイします。 ユーザーが作成したカスタム コネクタまたは他のコンポーネントを、Kubernetes クラスターにデプロイします。

IoT Hub へのエッジ ベースのゲートウェイとして Azure IoT Edge を使うソリューションは、エッジ ベースとクラウドベース両方のソリューションの要素を含むハイブリッド ソリューションと見なすことができます。

デバイス開発ツール

次の表で示すのは、使用可能な IoT デバイス開発ツールの一部です。

ツール 説明
Azure IoT Hub (VS Code 拡張機能) この VS Code 拡張機能を使用すると、VS Code 内から IoT Hub リソースとデバイスを管理できます。
Azure IoT エクスプローラー このクロスプラットフォーム ツールを使用すると、デスクトップ アプリケーションから IoT Hub リソースとデバイスを管理できます。
Azure CLI 用 Azure IoT 拡張機能 この CLI 拡張機能には、デバイスとの対話をテストするのに役立つ az iot device simulateaz iot device c2d-messageaz iot hub monitor-events などのコマンドが含まれています。