Azure IoT は、IoT デバイスを接続、監視、制御するマネージド サービスとプラットフォーム サービスのコレクションです。 Azure IoT は、開発者に包括的なオプション セットを提供します。 オプションには、デバイスプラットフォーム、サポートクラウドサービス、SDK、MQTTサポート、およびデバイス対応クラウドアプリケーションを構築するためのツールが含まれます。
この記事では、Azure IoT の使用を開始する開発者向けのいくつかの重要な考慮事項について概説します。
デバイス開発パス
この記事では、2 つの一般的なデバイス開発パスについて説明します。 各パスには、関連する開発オプションとタスクのセットが含まれています。
一般的なデバイス開発: 最新の開発手法に合わせ、高次言語を対象とし、Windows や Linux などの汎用オペレーティング システム上で実行されます。
注
お使いのデバイスで汎用オペレーティング システムを実行できる場合は、 一般的なデバイス開発 パスに従うことをお勧めします。 これにより、より豊富な開発オプションが提供されます。
組み込みデバイス開発: リソースに制約のあるデバイスを対象とする開発について説明します。 多くの場合、リソースに制約のあるデバイスを使用して、ユニットあたりのコスト、電力消費量、またはデバイスサイズを削減します。 これらのデバイスは、実行するハードウェアプラットフォームを直接制御できます。
一般的なデバイス開発
一部の開発者は、既存の汎用デバイスを適応させてクラウドに接続し、IoT ソリューションに統合します。 これらのデバイスは、C# や Python などの高次言語をサポートでき、多くの場合、Windows や Linux などの堅牢な汎用オペレーティング システムをサポートします。 一般的なターゲットデバイスには、PC、コンテナ、Raspberry Pi、モバイルデバイスなどがあります。
一般的なデバイス開発者は、制約のあるデバイスを大規模に開発するのではなく、クラウド ソリューションに必要な特定の IoT シナリオを実現することに重点を置いています。 一部の開発者は、クラウド ソリューションに制約のあるデバイスでも作業します。 リソースに制約のあるデバイスを使用する開発者は、 組み込みデバイス開発 パスを参照してください。
Von Bedeutung
一般的なデバイス開発に使用する SDK については、 デバイス SDK をご覧ください。
組み込みデバイス開発
組み込み開発は、メモリと処理が限られている制約のあるデバイスを対象としています。 制約のあるデバイスは、従来の開発プラットフォームと比較して達成できることを制限します。
組み込みデバイスは通常、リアルタイムオペレーティングシステム(RTOS)を使用するか、オペレーティングシステムをまったく使用しません。 組み込みデバイスは、汎用オペレーティングシステムがないため、ハードウェアを完全に制御できます。 この事実により、組み込みデバイスはリアルタイムシステムに適した選択肢となっています。
現在の組み込み SDK は C 言語を対象としています。 組み込み SDK は、オペレーティング システムを提供しないか、Eclipse ThreadX をサポートします。 これらは、組み込みターゲットを念頭に置いて設計されています。 設計上の考慮事項には、最小限のフットプリントと、メモリ割り当てのない設計の必要性が含まれます。
Von Bedeutung
組み込みデバイス開発で使用する SDK については、 埋め込みデバイス SDK を参照してください。
ハードウェアの選択
Azure IoT デバイスは、IoT ソリューションの基本的な構成要素であり、環境の監視と対話を担当します。 IoT デバイスにはさまざまな種類があり、存在するデバイスの種類と、それらが開発プロセスにどのように影響するかを理解しておくと役立ちます。
この記事で説明するデバイスの種類の違いの詳細については、「 IoT デバイスの種類について」を参照してください。
SDK の選択
Azure IoT デバイス開発者は、デバイス対応クラウド アプリケーションの構築に役立つさまざまな SDK、プロトコル、ツールのセットを持っています。
デバイスを接続して IoT Hub と通信するには、主に 2 つのオプションがあります。
- Azure IoT SDK を使用します。 ほとんどの場合、MQTT を直接使用するのではなく、Azure IoT SDK を使用することをお勧めします。 SDK は、開発作業を合理化し、デバイスの接続と管理の複雑さを簡素化します。 IoT Hub は MQTT v3.1.1 プロトコルをサポートしており、IoT SDK は MQTT を使用して IoT Hub と通信するプロセスを簡素化します。
- MQTT プロトコルを直接使用します。 MQTT を直接使用する IoT Hub ソリューションを構築することには、いくつかの利点があります。 たとえば、SDK を使用せずに MQTT を直接使用するソリューションは、オープンな MQTT 標準に基づいて構築できます。 標準ベースのアプローチにより、ソリューションの移植性が向上し、デバイスの接続と通信方法をより詳細に制御できます。 ただし、IoT Hub はフル機能の MQTT ブローカーではなく、MQTT v3.1.1 標準で指定されているすべての動作をサポートしているわけではありません。 MQTT v3.1.1 の部分的なサポートにより、開発コストと複雑さが増します。 デバイス開発者は、IoT デバイス SDK を使用する場合と MQTT を直接使用する場合のトレードオフを比較検討する必要があります。 詳細については、「 MQTT プロトコルを使用した IoT ハブとの通信」を参照してください。
デバイス開発用の IoT SDK には、次の 3 つのセットがあります。
- デバイスSDK(高次言語を使用して既存の汎用デバイスをIoTアプリケーションに接続するため)
- 組み込みデバイス SDK (リソースに制約のあるデバイスを IoT アプリケーションに接続するため)
- サービス SDK (デバイスをサービスに接続する Azure IoT ソリューションの構築用)
Azure IoT デバイスまたはサービス SDK の選択の詳細については、「 Azure IoT SDK」を参照してください。
サービスの選択
開発プロセスにおける重要なステップは、デバイスを接続するサービスを選択することです。 デバイスの接続と管理には、IoT Hub と IoT Central の 2 つの主要な Azure IoT サービス オプションがあります。
- Azure IoT Hub。 IoT Hub を使用して、IoT アプリケーションをホストし、デバイスを接続します。 IoT Hub は、IoT アプリケーションと接続されたデバイス間の双方向通信のための中央メッセージ ハブとして機能するサービスとしてのプラットフォーム (PaaS) アプリケーションです。 IoT Hub は、数百万台のデバイスをサポートするようにスケーリングできます。 他の Azure IoT サービスと比較して、IoT Hub はアプリケーション設計に対する最大の制御とカスタマイズを提供します。 また、サービスを操作するための最も多くの開発者ツール オプションを提供しますが、開発と管理の複雑さがいくらか増加します。
- Azure IoT セントラル。 IoT Central は、IoT ソリューションの操作プロセスを簡略化するように設計されています。 これを概念実証として使用して、IoT ソリューションを評価できます。 IoT Central は、アプリケーションの作成、デバイスの接続と管理のタスクを簡略化するための Web UI を提供するサービスとしてのソフトウェア (SaaS) アプリケーションです。 IoT Central では、IoT Hub を使用してアプリケーションを作成および管理しますが、ほとんどの詳細をユーザーに対して透過的に保ちます。
デバイスを接続および管理するためのツール
使用するハードウェアとデバイス SDK を選択したら、開発者ツールのオプションがいくつかあります。 これらのツールを使用して、デバイスを IoT Hub に接続し、管理できます。 次の表は、一般的なツール オプションをまとめたものです。
道具 | ドキュメンテーション | 説明 |
---|---|---|
Azure Portal | Azure portal を使用して IoT ハブを作成する | IoT Hub とデバイス用のブラウザーベースのポータル。 また、IoT Central などの他の Azure リソースとも連携します。 |
Azure IoT エクスプローラー | Azure IoT エクスプローラー | IoT ハブを作成できません。 既存の IoT ハブに接続してデバイスを管理します。 CLIまたはポータルでよく使用されます。 |
Azure CLI(Azure コマンドライン インターフェイス) | CLI を使用して IoT ハブを作成する | IoT アプリケーションを作成および管理するためのコマンドライン インターフェイス。 |
Azure PowerShell | PowerShell を使用して IoT ハブを作成する | IoT アプリケーションを作成および管理するための PowerShell インターフェイス |
VS Code 用の Azure IoT Tools | VS Code のツールで IoT ハブを作成する | IoT Hub アプリケーション用の VS Code 拡張機能。 |
注
前に示したツールに加えて、REST API、AZURE SDK、または Azure Resource Manager テンプレートを使用して、プログラムで IoT アプリケーションを作成および管理できます。 詳細については、IoT Hub サービスのドキュメントを参照してください。
次のステップ
デバイスを Azure IoT に接続するために使用できるデバイス SDK の詳細については、次の記事を参照してください。
ハンズオン デバイス開発を開始するには、使用しているデバイスに関連するデバイス開発チュートリアルを選択します。 次のチュートリアルは、一般的なデバイス開発または組み込みデバイス開発の出発点として適しています。