次の方法で共有


チュートリアル: IoT プラグ アンド プレイ デバイスから Azure IoT Hub にテレメトリを送信する

コードを参照

このクイック スタートでは、基本的な Azure IoT アプリケーション開発ワークフローについて説明します。 Azure CLI と IoT Explorer を使用して、Azure IoT ハブとデバイスを作成します。 次に、Azure IoT デバイス SDK サンプルを使用して、温度コントローラーを実行し、ハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションは、ローカル コンピューター上で実行され、IoT Hub に送信するシミュレートされたセンサー データを生成します。

[前提条件]

このクイック スタートは、Windows、Linux、Raspberry Pi で実行されます。 これは、次の OS とデバイスのバージョンでテストされています。

  • ウィンドウズ10
  • Ubuntu 20.04 LTS
  • Raspberry Pi OS (Raspbian) バージョン 10(Raspberry Pi 3 モデル B+ で実行)

Raspberry Pi に記載されている場合を除き、開発用コンピューターに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git
  • Azure IoT Explorer: Azure IoT を監視および管理するためのクロスプラットフォームの GUI ベースのユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT Explorer をインストールすることをお勧めします。 IoT Explorer をインストールしない場合は、Azure CLI を使用して同じ手順を実行できます。
  • Azure CLI。 このクイック スタートでは、Azure CLI コマンドを実行するための 2 つのオプションがあります。
    • ブラウザーで CLI コマンドを実行する対話型シェルである Azure Cloud Shell を使用します。 何もインストールする必要がないため、このオプションをお勧めします。 Cloud Shell を初めて使用する場合は、 Azure portal にサインインします。 「Azure Cloud Shell の概要」の手順に従って Cloud Shell を起動し、Bash 環境を選択します
    • 必要に応じて、ローカル コンピューターで Azure CLI を実行します。 Azure CLI が既にインストールされている場合は、 az upgrade を実行して、CLI と拡張機能を現在のバージョンにアップグレードします。 Azure CLI をインストールするには、 Azure CLI のインストールに関するページを参照してください。 開発プラットフォームとして Raspberry Pi を使用している場合は、Azure Cloud Shell を使用するか、別のコンピューターに Azure CLI をインストールすることをお勧めします。

オペレーティング システムの残りの前提条件をインストールします。

Linux または Raspberry Pi OS

Linux または Raspberry Pi OS でこのクイック スタートを完了するには、次のソフトウェアをインストールします。

コマンドを使用して、GCCGitapt-get、および必要な依存関係をインストールします。

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

CMake のバージョンが 3.13 以上で、 GCC のバージョンが 4.4.7 以上であることを確認します。

cmake --version
gcc --version

Windows

Windows でこのクイック スタートを完了するには、Visual Studio 2022 をインストールし、C および C++ 開発に必要なコンポーネントを追加します。

  1. 新しいユーザーの場合は、 Visual Studio (Community、Professional、または Enterprise) 2022 をインストールします。 インストールするエディションをダウンロードし、インストーラーを起動します。

    既存の Visual Studio 2022 ユーザーの場合は、[Windows スタート] を選択し、「 Visual Studio インストーラー」と入力してインストーラーを実行し、[ 変更] を選択します。

  2. インストーラーの [ ワークロード ] タブ で、[C++ によるデスクトップ開発 ] ワークロードを選択します。
  3. インストールを実行します。

IoT ハブを作成する

このセクションでは、Azure CLI を使用して IoT ハブとリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 IoT ハブは、IoT アプリケーションとデバイス間の双方向通信のための中央メッセージ ハブとして機能します。

IoT ハブとリソース グループを作成するには、次のようにします。

  1. Azure CLI を起動します。

    • Cloud Shell を使用する場合は、CLI コマンドの [Try It](試してみる) ボタンを選択すると、分割されたブラウザー ウィンドウで Cloud Shell が起動します。 また、別のブラウザー タブで Cloud Shell を開くこともできます。
    • Azure CLI をローカルで使用している場合は、Windows CMD、PowerShell、Bash などのコンソールを開き、 Azure CLI にサインインします

    このクイックスタートの残りの部分で CLI コマンドを実行するには、コマンド構文をコピーし、Cloud Shell ウィンドウまたは CLI コンソールに貼り付け、変数値を編集して Enter キーを押します。

  2. az extension add を実行して、azure-iot 拡張機能をインストールするか、最新バージョンにアップグレードします。

    az extension add --upgrade --name azure-iot
    
  3. az group create コマンドを実行してリソース グループを作成します。 次のコマンドは、myResourceGroup という名前のリソース グループを eastus という場所に作成します。

    必要に応じて、別の場所を設定できます。 選択できる場所を確認するには、az account list-locations を実行します。 このチュートリアルでは、コマンド例に示すように eastus を使用します。

    az group create --name MyResourceGroup --location eastus
    
  4. az iot hub create コマンドを実行して、IoT ハブを作成します。 IoT ハブの作成には数分かかることがあります。

    YourIotHubName。 以下のコマンドでは、選択した IoT ハブの名前に合わせて、プレースホルダーとそれを囲む中かっこを置き換えます。 IoT ハブ名は Azure でグローバルに一意である必要があります。 以降、このクイックスタートに出現しているプレースホルダーにはすべて、実際の IoT ハブの名前を使用してください。

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

    ヒント

    IoT ハブを作成したら、Azure IoT Explorer を使用して、このクイックスタートの残りの部分で IoT ハブと対話します。 IoT Explorer は、既存の IoT Hub に接続し、デバイスを追加、管理、監視できる GUI アプリケーションです。 詳細については、「 Azure IoT エクスプローラーのインストールと使用」を参照してください。 必要に応じて、引き続き CLI コマンドを使用できます。

IoT Explorer の構成

このクイックスタートの残りの部分では、IoT Explorer を使用してデバイスを IoT ハブに登録し、デバイス テレメトリを表示します。 このセクションでは、IoT Explorer を構成して、作成した IoT ハブに接続し、パブリック モデル リポジトリからプラグ アンド プレイ モデルを読み取ります。

Azure CLI を使用してデバイスを登録することもできます。 az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用して新しいデバイスを登録し、az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用してデバイスのプライマリ接続文字列を取得します。 デバイス接続文字列をメモしたら、「 デバイスサンプルを実行する」に進むことができます。

IoT ハブに接続を追加するには:

  1. az iot hub connection-string show コマンドを実行して、IoT ハブの接続文字列を取得します。

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. 引用符を囲まずに接続文字列をコピーします。

  3. Azure IoT Explorer で、左側のメニューで [IoT Hubs ] を選択し、[ + 接続の追加] を選択します。

  4. 接続文字列を [ 接続文字列] ボックス に貼り付けます。

  5. 保存 を選択します。

    IoT Explorer での接続の追加のスクリーンショット

  6. 接続が成功すると、IoT Explorer は [デバイス ] ビューに切り替わります。

パブリック モデル リポジトリの設定を表示します。

  1. IoT エクスプローラーで、[ ホーム ] を選択してホーム ビューに戻ります。

  2. 左側のメニューで、[IoT プラグ アンド プレイの設定] を選択します。

  3. パブリック モデル リポジトリのエントリが https://devicemodels.azure.comに存在することがわかります。

    IoT Explorer でのパブリック モデル リポジトリの追加のスクリーンショット

デバイスの登録

このセクションでは、新しいデバイス インスタンスを作成し、作成した IoT ハブに登録します。 新しく登録されたデバイスの接続情報を使用して、後のセクションでデバイスを安全に接続します。

デバイスを登録するには:

  1. IoT Explorer のホーム ビューで、 IoT ハブを選択します

  2. 前に追加した接続が表示されます。 接続プロパティ の下にある [このハブ内のデバイスの表示 ] を選択します。

  3. [ + 新規] を選択し、デバイスのデバイス ID を入力します。たとえば、 mydevice です。 その他のプロパティはすべて変更しません。

  4. を選択してを作成します。

    Azure IoT Explorer デバイス ID のスクリーンショット

  5. [プライマリ接続文字列] フィールドの値をコピーしてメモします。 この接続文字列は後で必要になります。

デバイス サンプルを実行する

このセクションでは、C SDK を使用して、デバイスから IoT ハブにメッセージを送信します。 2 つのサーモスタット センサーを備えた温度コントローラーを実装するサンプルを実行します。

サンプルをビルドする

  1. 新しいコンソールを開いて Azure IoT C デバイス SDK をインストールし、コード サンプルを実行します。 Windows の場合は、[ スタート] を選択し、「 VS 2019 の開発者コマンド プロンプト」と入力して、コンソールを開きます。 Linux および Raspberry Pi OS の場合は、Bash コマンドのターミナルを開きます。

    Azure CLI のローカル インストールを使用している場合は、2 つのコンソール ウィンドウが開いている可能性があります。 CLI に使用しているコマンドではなく、先ほど開いたコンソールで、このセクションのコマンドを必ず入力してください。

  2. サンプル リポジトリを複製するローカル フォルダーに移動します。

  3. Azure IoT C デバイス SDK をローカル コンピューターに複製します。

    git clone https://github.com/Azure/azure-iot-sdk-c.git
    
  4. SDK のルート フォルダーに移動し、次のコマンドを実行して依存関係を更新します。

    cd azure-iot-sdk-c
    git submodule update --init
    

    この操作には数分かかります。

  5. SDK とサンプルをビルドするには、次のコマンドを実行します。

    cmake -Bcmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF
    cmake --build cmake
    
  6. デバイスが Azure IoT に接続できるように、次の環境変数を設定します。

    • IOTHUB_DEVICE_CONNECTION_STRINGという環境変数を設定します。 変数の値には、前のセクションで保存したデバイス接続文字列を使用します。
    • IOTHUB_DEVICE_SECURITY_TYPEという環境変数を設定します。 変数には、リテラル文字列値 connectionString使用します。

    CMD

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Windows CMD の場合、各変数の文字列値を囲む引用符はありません。

    バッシュ

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    

コードの実行

  1. コンソールに適したコマンドを使用して、サンプル コードを実行します。

    CMD

    cmake\iothub_client\samples\pnp\pnp_temperature_controller\Debug\pnp_temperature_controller.exe
    

    バッシュ

    cmake/iothub_client/samples/pnp/pnp_temperature_controller/pnp_temperature_controller
    

    このコード サンプルでは、Azure IoT プラグ アンド プレイを使用します。これにより、手動で構成しなくても、スマート デバイスをソリューションに統合できます。 既定では、このドキュメントのほとんどのサンプルでは IoT プラグ アンド プレイが使用されています。 IoT PnP の利点と、IoT PnP を使用する場合と使用しない場合の詳細については、「 IoT プラグ アンド プレイとは」を参照してください。

このサンプルでは、登録したデバイスとして IoT ハブに安全に接続し、テレメトリ メッセージの送信を開始します。 サンプル出力がコンソールに表示されます。

テレメトリを表示する

IoT Explorer を使用してデバイス テレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT Explorer でテレメトリを表示するには:

  1. IoT Explorer の IoT ハブで、[ このハブ内のデバイスの表示] を選択し、一覧からデバイスを選択します。

  2. デバイスの左側のメニューで、[ テレメトリ] を選択します。

  3. [組み込みのイベント ハブを使用する] が [はい] に設定されていることを確認し、[開始] を選択します

  4. デバイスがクラウドにメッセージを送信する場合にテレメトリを表示します。

    IoT Explorer のデバイス テレメトリのスクリーンショット

  5. [ 停止] を選択してイベントの受信を終了します。

個々のデバイス コンポーネントから送信されたテレメトリを読み取るために、IoT Explorer のプラグ アンド プレイ機能を使用できます。 たとえば、このクイック スタートの温度コントローラーには、thermostat1 と thermostat2 という 2 つのサーモスタットがあります。 thermostat1 によって報告された温度を確認するには:

  1. IoT Explorer のデバイスで、左側のメニューから IoT プラグ アンド プレイ コンポーネント を選択します。 次に、コンポーネントの一覧から thermostat1 を選択します。

  2. thermostat1 コンポーネント ウィンドウで、上部のメニューから [テレメトリ] を選択します。

  3. [ テレメトリ ] ウィンドウで、前に行ったのと同じ手順に従います。 [ 組み込みのイベント ハブを使用 する] が [ はい ] に設定されていることを確認し、[開始] を選択 します

Azure CLI でデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信されたイベントを監視します。 デバイスと IoT ハブ用に Azure IoT で以前に作成した名前を使用します。

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. コンソールで接続の詳細とテレメトリの出力を表示します。

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: ''
      interface: dtmi:com:example:TemperatureController;1
      module: ''
      origin: mydevice
      payload: '{"workingSet":1251}'
    
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;1
      module: ''
      origin: mydevice
      payload: '{"temperature":22.00}'
    

コードを参照

このクイック スタートでは、基本的な Azure IoT アプリケーション開発ワークフローについて説明します。 Azure CLI と IoT Explorer を使用して、Azure IoT ハブとデバイスを作成します。 次に、Azure IoT デバイス SDK サンプルを使用して、温度コントローラーを実行し、ハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションは、ローカル コンピューター上で実行され、IoT Hub に送信するシミュレートされたセンサー データを生成します。

[前提条件]

このクイック スタートは、Windows、Linux、Raspberry Pi で実行されます。 これは、次の OS とデバイスのバージョンでテストされています。

  • ウィンドウズ10
  • Ubuntu 20.04 LTS
  • Raspberry Pi OS (Raspbian) バージョン 10(Raspberry Pi 3 モデル B+ で実行)

Raspberry Pi に記載されている場合を除き、開発用コンピューターに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git
  • .NET 6.0 SDK。 ランタイムだけでなく、必ず .NET SDK をインストールしてください。 コンピューターにインストールされている .NET SDK とランタイムのバージョンを確認するには、 dotnet --info実行します。
  • Azure IoT Explorer: Azure IoT を監視および管理するためのクロスプラットフォームの GUI ベースのユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT Explorer をインストールすることをお勧めします。 IoT Explorer をインストールしない場合は、Azure CLI を使用して同じ手順を実行できます。
  • Azure CLI。 このクイック スタートでは、Azure CLI コマンドを実行するための 2 つのオプションがあります。
    • ブラウザーで CLI コマンドを実行する対話型シェルである Azure Cloud Shell を使用します。 何もインストールする必要がないため、このオプションをお勧めします。 Cloud Shell を初めて使用する場合は、 Azure portal にサインインします。 「Azure Cloud Shell の概要」の手順に従って Cloud Shell を起動し、Bash 環境を選択します
    • 必要に応じて、ローカル コンピューターで Azure CLI を実行します。 Azure CLI が既にインストールされている場合は、 az upgrade を実行して、CLI と拡張機能を現在のバージョンにアップグレードします。 Azure CLI をインストールするには、 Azure CLI のインストールに関するページを参照してください。 開発プラットフォームとして Raspberry Pi を使用している場合は、Azure Cloud Shell を使用するか、別のコンピューターに Azure CLI をインストールすることをお勧めします。

Important

このクイック スタートでは、.NET 6.0 SDK を使用して C# サンプル コードをビルドして実行する必要があります。 このサンプルは現在、新しいバージョンの SDK では機能しません。

IoT ハブを作成する

このセクションでは、Azure CLI を使用して IoT ハブとリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 IoT ハブは、IoT アプリケーションとデバイス間の双方向通信のための中央メッセージ ハブとして機能します。

IoT ハブとリソース グループを作成するには、次のようにします。

  1. Azure CLI を起動します。

    • Cloud Shell を使用する場合は、CLI コマンドの [Try It](試してみる) ボタンを選択すると、分割されたブラウザー ウィンドウで Cloud Shell が起動します。 また、別のブラウザー タブで Cloud Shell を開くこともできます。
    • Azure CLI をローカルで使用している場合は、Windows CMD、PowerShell、Bash などのコンソールを開き、 Azure CLI にサインインします

    このクイックスタートの残りの部分で CLI コマンドを実行するには、コマンド構文をコピーし、Cloud Shell ウィンドウまたは CLI コンソールに貼り付け、変数値を編集して Enter キーを押します。

  2. az extension add を実行して、azure-iot 拡張機能をインストールするか、最新バージョンにアップグレードします。

    az extension add --upgrade --name azure-iot
    
  3. az group create コマンドを実行してリソース グループを作成します。 次のコマンドは、myResourceGroup という名前のリソース グループを eastus という場所に作成します。

    必要に応じて、別の場所を設定できます。 選択できる場所を確認するには、az account list-locations を実行します。 このチュートリアルでは、コマンド例に示すように eastus を使用します。

    az group create --name MyResourceGroup --location eastus
    
  4. az iot hub create コマンドを実行して、IoT ハブを作成します。 IoT ハブの作成には数分かかることがあります。

    YourIotHubName。 以下のコマンドでは、選択した IoT ハブの名前に合わせて、プレースホルダーとそれを囲む中かっこを置き換えます。 IoT ハブ名は Azure でグローバルに一意である必要があります。 以降、このクイックスタートに出現しているプレースホルダーにはすべて、実際の IoT ハブの名前を使用してください。

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

    ヒント

    IoT ハブを作成したら、Azure IoT Explorer を使用して、このクイックスタートの残りの部分で IoT ハブと対話します。 IoT Explorer は、既存の IoT Hub に接続し、デバイスを追加、管理、監視できる GUI アプリケーションです。 詳細については、「 Azure IoT エクスプローラーのインストールと使用」を参照してください。 必要に応じて、引き続き CLI コマンドを使用できます。

IoT Explorer の構成

このクイックスタートの残りの部分では、IoT Explorer を使用してデバイスを IoT ハブに登録し、デバイス テレメトリを表示します。 このセクションでは、IoT Explorer を構成して、作成した IoT ハブに接続し、パブリック モデル リポジトリからプラグ アンド プレイ モデルを読み取ります。

Azure CLI を使用してデバイスを登録することもできます。 az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用して新しいデバイスを登録し、az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用してデバイスのプライマリ接続文字列を取得します。 デバイス接続文字列をメモしたら、「 デバイスサンプルを実行する」に進むことができます。

IoT ハブに接続を追加するには:

  1. az iot hub connection-string show コマンドを実行して、IoT ハブの接続文字列を取得します。

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. 引用符を囲まずに接続文字列をコピーします。

  3. Azure IoT Explorer で、左側のメニューで [IoT Hubs ] を選択し、[ + 接続の追加] を選択します。

  4. 接続文字列を [ 接続文字列] ボックス に貼り付けます。

  5. 保存 を選択します。

    IoT Explorer での接続の追加のスクリーンショット

  6. 接続が成功すると、IoT Explorer は [デバイス ] ビューに切り替わります。

パブリック モデル リポジトリの設定を表示します。

  1. IoT エクスプローラーで、[ ホーム ] を選択してホーム ビューに戻ります。

  2. 左側のメニューで、[IoT プラグ アンド プレイの設定] を選択します。

  3. パブリック モデル リポジトリのエントリが https://devicemodels.azure.comに存在することがわかります。

    IoT Explorer でのパブリック モデル リポジトリの追加のスクリーンショット

デバイスの登録

このセクションでは、新しいデバイス インスタンスを作成し、作成した IoT ハブに登録します。 新しく登録されたデバイスの接続情報を使用して、後のセクションでデバイスを安全に接続します。

デバイスを登録するには:

  1. IoT Explorer のホーム ビューで、 IoT ハブを選択します

  2. 前に追加した接続が表示されます。 接続プロパティ の下にある [このハブ内のデバイスの表示 ] を選択します。

  3. [ + 新規] を選択し、デバイスのデバイス ID を入力します。たとえば、 mydevice です。 その他のプロパティはすべて変更しません。

  4. を選択してを作成します。

    Azure IoT Explorer デバイス ID のスクリーンショット

  5. [プライマリ接続文字列] フィールドの値をコピーしてメモします。 この接続文字列は後で必要になります。

デバイス サンプルを実行する

このセクションでは、C# SDK を使用して、デバイスから IoT ハブにメッセージを送信します。 2 つのサーモスタット センサーを備えた温度コントローラーを実装するサンプルを実行します。

  1. Windows CMD、PowerShell、Bash などの新しいコンソールを開きます。 次の手順では、このコンソールを使用して .NET SDK をインストールし、C# サンプル コードを操作します。

    Azure CLI のローカル インストールを使用している場合は、2 つのコンソール ウィンドウが開いている可能性があります。 CLI に使用しているコマンドではなく、先ほど開いたコンソールで、このセクションのコマンドを必ず入力してください。

  2. Microsoft Azure IoT SDK for C# (.NET) をローカル コンピューターに複製します。

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  3. サンプル ディレクトリに移動します。

    ウィンドウズ

    cd azure-iot-sdk-csharp\iothub\device\samples\solutions\PnpDeviceSamples\TemperatureController
    

    Linux または Raspberry Pi OS

    cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/TemperatureController
    
  4. Azure IoT C# SDK と必要な依存関係をインストールします。

    dotnet restore
    

    このコマンドは、 TemperatureController.csproj ファイルで指定されている適切な依存関係をインストールします。

  5. デバイスが Azure IoT に接続できるようにするには、次の環境変数の両方を設定します。

    • IOTHUB_DEVICE_CONNECTION_STRINGという環境変数を設定します。 変数の値には、前のセクションで保存したデバイス接続文字列を使用します。
    • IOTHUB_DEVICE_SECURITY_TYPEという環境変数を設定します。 変数には、リテラル文字列値 connectionString使用します。

    CMD (Windows)

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Windows CMD の場合、各変数の文字列値を囲む引用符はありません。

    PowerShell

    $env:IOTHUB_DEVICE_CONNECTION_STRING='<your connection string here>'
    $env:IOTHUB_DEVICE_SECURITY_TYPE='connectionString'
    

    バッシュ

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  6. コード サンプルを実行します。

    dotnet run
    

    このコード サンプルでは、Azure IoT プラグ アンド プレイを使用します。これにより、手動で構成しなくても、スマート デバイスをソリューションに統合できます。 既定では、このドキュメントのほとんどのサンプルでは IoT プラグ アンド プレイが使用されています。 IoT PnP の利点と、IoT PnP を使用する場合と使用しない場合の詳細については、「 IoT プラグ アンド プレイとは」を参照してください。

このサンプルでは、登録したデバイスとして IoT ハブに安全に接続し、テレメトリ メッセージの送信を開始します。 サンプル出力がコンソールに表示されます。

テレメトリを表示する

IoT Explorer を使用してデバイス テレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT Explorer でテレメトリを表示するには:

  1. IoT Explorer の IoT ハブで、[ このハブ内のデバイスの表示] を選択し、一覧からデバイスを選択します。

  2. デバイスの左側のメニューで、[ テレメトリ] を選択します。

  3. [組み込みのイベント ハブを使用する] が [はい] に設定されていることを確認し、[開始] を選択します

  4. デバイスがクラウドにメッセージを送信する場合にテレメトリを表示します。

    IoT Explorer のデバイス テレメトリのスクリーンショット

  5. [ 停止] を選択してイベントの受信を終了します。

個々のデバイス コンポーネントから送信されたテレメトリを読み取るために、IoT Explorer のプラグ アンド プレイ機能を使用できます。 たとえば、このクイック スタートの温度コントローラーには、thermostat1 と thermostat2 という 2 つのサーモスタットがあります。 thermostat1 によって報告された温度を確認するには:

  1. IoT Explorer のデバイスで、左側のメニューから IoT プラグ アンド プレイ コンポーネント を選択します。 次に、コンポーネントの一覧から thermostat1 を選択します。

  2. thermostat1 コンポーネント ウィンドウで、上部のメニューから [テレメトリ] を選択します。

  3. [ テレメトリ ] ウィンドウで、前に行ったのと同じ手順に従います。 [ 組み込みのイベント ハブを使用 する] が [ はい ] に設定されていることを確認し、[開始] を選択 します

Azure CLI でデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信されたイベントを監視します。 デバイスと IoT ハブ用に Azure IoT で以前に作成した名前を使用します。

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. コンソールで接続の詳細とテレメトリの出力を表示します。

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 39.8
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 36.7
    
  3. Ctrl + C キーを押して監視を終了します。

コードを参照

このクイック スタートでは、基本的な Azure IoT アプリケーション開発ワークフローについて説明します。 Azure CLI と IoT Explorer を使用して、Azure IoT ハブとデバイスを作成します。 次に、Azure IoT デバイス SDK サンプルを使用して、温度コントローラーを実行し、ハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションは、ローカル コンピューター上で実行され、IoT Hub に送信するシミュレートされたセンサー データを生成します。

[前提条件]

このクイック スタートは、Windows、Linux、Raspberry Pi で実行されます。 これは、次の OS とデバイスのバージョンでテストされています。

  • ウィンドウズ10
  • Ubuntu 20.04 LTS
  • Raspberry Pi OS (Raspbian) バージョン 10(Raspberry Pi 3 モデル B+ で実行)

Raspberry Pi に記載されている場合を除き、開発用コンピューターに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git
  • Azure IoT Explorer: Azure IoT を監視および管理するためのクロスプラットフォームの GUI ベースのユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT Explorer をインストールすることをお勧めします。 IoT Explorer をインストールしない場合は、Azure CLI を使用して同じ手順を実行できます。
  • Azure CLI。 このクイック スタートでは、Azure CLI コマンドを実行するための 2 つのオプションがあります。
    • ブラウザーで CLI コマンドを実行する対話型シェルである Azure Cloud Shell を使用します。 何もインストールする必要がないため、このオプションをお勧めします。 Cloud Shell を初めて使用する場合は、 Azure portal にサインインします。 「Azure Cloud Shell の概要」の手順に従って Cloud Shell を起動し、Bash 環境を選択します
    • 必要に応じて、ローカル コンピューターで Azure CLI を実行します。 Azure CLI が既にインストールされている場合は、 az upgrade を実行して、CLI と拡張機能を現在のバージョンにアップグレードします。 Azure CLI をインストールするには、 Azure CLI のインストールに関するページを参照してください。 開発プラットフォームとして Raspberry Pi を使用している場合は、Azure Cloud Shell を使用するか、別のコンピューターに Azure CLI をインストールすることをお勧めします。

オペレーティング システムの残りの前提条件をインストールします。

Windows

Windows でこのクイック スタートを完了するには、次のソフトウェアをインストールします。

  • Java SE Development Kit 8 以降。 OpenJDK の Zulu ビルドのダウンロードから、複数のプラットフォーム用の Java 8 (LTS) JDK をダウンロードできます。 インストーラーで、[ パスに追加 ] オプションを選択します。

  • Apache Maven 3。 ダウンロードをローカル フォルダーに展開した後、Maven /bin フォルダーへの完全なパスを Windows PATH 環境変数に追加します。

Linux または Raspberry Pi OS

Linux または Raspberry Pi OS でこのクイック スタートを完了するには、次のソフトウェアをインストールします。

このセクションの手順は、Linux Ubuntu/Debian ディストリビューションに基づいています。 (Raspberry Pi OS は Debian に基づいています)。別の Linux ディストリビューションを使用している場合は、それに応じて手順を変更する必要があります。

  • OpenJDK (Open Java Development Kit) 8 以降。 java -version コマンドを使用して、システムにインストールされている Java のバージョンを確認できます。 Java ランタイム (JRE) だけでなく、JDK がインストールされていることを確認します。

    1. システムの OpenJDK をインストールするには、次のコマンドを入力します。

      ご使用のシステム用に OpenJDK の既定のバージョンをインストールするには (書き込み時に、Ubuntu 20.04 用の OpenJDK 11 と Raspberry Pi OS 10)。

      sudo apt update
      sudo apt install default-jdk
      

      または、インストールする JDK のバージョンを指定することもできます。 例えば次が挙げられます。

      sudo apt update
      sudo apt install openjdk-8-jdk
      
    2. システムに複数のバージョンの Java がインストールされている場合は、次のコマンドを使用して、Java と Java コンパイラの既定の (自動) バージョンを構成できます。

      update-java-alternatives --list          #list the Java versions installed
      sudo update-alternatives --config java   #set the default Java version
      sudo  update-alternatives --config javac #set the default Java compiler version
      
    3. JAVA_HOME環境変数を JDK インストールのパスに設定します。 (これは通常、 /usr/lib/jvm ディレクトリ内のバージョン管理されたサブディレクトリです)。

      export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
      

      Important

      このコマンドは、現在のシェル環境で JAVA_HOME 変数を設定します。 コマンドを ~/.bashrc または /etc/profile ファイルに追加して、新しいシェルを開くたびに使用できるようにすることをお勧めします。

    4. インストールされている Java JDK (および JRE) のバージョン、Java コンパイラのバージョンが JDK のバージョンと一致していること、および JAVA_HOME 環境変数が正しく設定されていることを確認します。

      java -version
      javac -version
      echo $JAVA_HOME
      
  • Apache Maven 3。 mvn --version コマンドを使用して、システムにインストールされている Maven のバージョンを確認できます。

    1. Maven をインストールするには、次のコマンドを入力します。

      sudo apt-get update
      sudo apt-get install maven
      
    2. 次のコマンドを入力して、インストールを確認します。

      mvn --version
      

IoT ハブを作成する

このセクションでは、Azure CLI を使用して IoT ハブとリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 IoT ハブは、IoT アプリケーションとデバイス間の双方向通信のための中央メッセージ ハブとして機能します。

IoT ハブとリソース グループを作成するには、次のようにします。

  1. Azure CLI を起動します。

    • Cloud Shell を使用する場合は、CLI コマンドの [Try It](試してみる) ボタンを選択すると、分割されたブラウザー ウィンドウで Cloud Shell が起動します。 また、別のブラウザー タブで Cloud Shell を開くこともできます。
    • Azure CLI をローカルで使用している場合は、Windows CMD、PowerShell、Bash などのコンソールを開き、 Azure CLI にサインインします

    このクイックスタートの残りの部分で CLI コマンドを実行するには、コマンド構文をコピーし、Cloud Shell ウィンドウまたは CLI コンソールに貼り付け、変数値を編集して Enter キーを押します。

  2. az extension add を実行して、azure-iot 拡張機能をインストールするか、最新バージョンにアップグレードします。

    az extension add --upgrade --name azure-iot
    
  3. az group create コマンドを実行してリソース グループを作成します。 次のコマンドは、myResourceGroup という名前のリソース グループを eastus という場所に作成します。

    必要に応じて、別の場所を設定できます。 選択できる場所を確認するには、az account list-locations を実行します。 このチュートリアルでは、コマンド例に示すように eastus を使用します。

    az group create --name MyResourceGroup --location eastus
    
  4. az iot hub create コマンドを実行して、IoT ハブを作成します。 IoT ハブの作成には数分かかることがあります。

    YourIotHubName。 以下のコマンドでは、選択した IoT ハブの名前に合わせて、プレースホルダーとそれを囲む中かっこを置き換えます。 IoT ハブ名は Azure でグローバルに一意である必要があります。 以降、このクイックスタートに出現しているプレースホルダーにはすべて、実際の IoT ハブの名前を使用してください。

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

    ヒント

    IoT ハブを作成したら、Azure IoT Explorer を使用して、このクイックスタートの残りの部分で IoT ハブと対話します。 IoT Explorer は、既存の IoT Hub に接続し、デバイスを追加、管理、監視できる GUI アプリケーションです。 詳細については、「 Azure IoT エクスプローラーのインストールと使用」を参照してください。 必要に応じて、引き続き CLI コマンドを使用できます。

IoT Explorer の構成

このクイックスタートの残りの部分では、IoT Explorer を使用してデバイスを IoT ハブに登録し、デバイス テレメトリを表示します。 このセクションでは、IoT Explorer を構成して、作成した IoT ハブに接続し、パブリック モデル リポジトリからプラグ アンド プレイ モデルを読み取ります。

Azure CLI を使用してデバイスを登録することもできます。 az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用して新しいデバイスを登録し、az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用してデバイスのプライマリ接続文字列を取得します。 デバイス接続文字列をメモしたら、「 デバイスサンプルを実行する」に進むことができます。

IoT ハブに接続を追加するには:

  1. az iot hub connection-string show コマンドを実行して、IoT ハブの接続文字列を取得します。

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. 引用符を囲まずに接続文字列をコピーします。

  3. Azure IoT Explorer で、左側のメニューで [IoT Hubs ] を選択し、[ + 接続の追加] を選択します。

  4. 接続文字列を [ 接続文字列] ボックス に貼り付けます。

  5. 保存 を選択します。

    IoT Explorer での接続の追加のスクリーンショット

  6. 接続が成功すると、IoT Explorer は [デバイス ] ビューに切り替わります。

パブリック モデル リポジトリの設定を表示します。

  1. IoT エクスプローラーで、[ ホーム ] を選択してホーム ビューに戻ります。

  2. 左側のメニューで、[IoT プラグ アンド プレイの設定] を選択します。

  3. パブリック モデル リポジトリのエントリが https://devicemodels.azure.comに存在することがわかります。

    IoT Explorer でのパブリック モデル リポジトリの追加のスクリーンショット

デバイスの登録

このセクションでは、新しいデバイス インスタンスを作成し、作成した IoT ハブに登録します。 新しく登録されたデバイスの接続情報を使用して、後のセクションでデバイスを安全に接続します。

デバイスを登録するには:

  1. IoT Explorer のホーム ビューで、 IoT ハブを選択します

  2. 前に追加した接続が表示されます。 接続プロパティ の下にある [このハブ内のデバイスの表示 ] を選択します。

  3. [ + 新規] を選択し、デバイスのデバイス ID を入力します。たとえば、 mydevice です。 その他のプロパティはすべて変更しません。

  4. を選択してを作成します。

    Azure IoT Explorer デバイス ID のスクリーンショット

  5. [プライマリ接続文字列] フィールドの値をコピーしてメモします。 この接続文字列は後で必要になります。

デバイス サンプルを実行する

このセクションでは、Java SDK を使用して、デバイスから IoT ハブにメッセージを送信します。 2 つのサーモスタット センサーを備えた温度コントローラーを実装するサンプルを実行します。

  1. コンソールを開いて Azure IoT Java デバイス SDK をインストールし、コード サンプルをビルドして実行します。 このコンソールは、次の手順で使用します。

    Azure CLI のローカル インストールを使用している場合は、2 つのコンソール ウィンドウが開いている可能性があります。 CLI に使用しているコマンドではなく、先ほど開いたコンソールで、このセクションのコマンドを必ず入力してください。

    Linux および Raspberry Pi OS

    JAVA_HOME (echo $JAVA_HOME) 環境変数が設定されていることを確認します。 JAVA_HOMEの設定の詳細については、「 Linux/Raspberry Pi の前提条件」を参照してください。

  2. Azure IoT Java デバイス SDK をローカル コンピューターに複製します。

    git clone https://github.com/Azure/azure-iot-sdk-java.git
    
  3. SDK のルート フォルダーに移動し、次のコマンドを実行して SDK をビルドし、サンプルを更新します。

    cd azure-iot-sdk-java
    mvn install -T 2C -DskipTests
    

    この操作には数分かかります。

  4. デバイスが Azure IoT に接続できるように、次の環境変数を設定します。

    • IOTHUB_DEVICE_CONNECTION_STRINGという環境変数を設定します。 変数の値には、前のセクションで保存したデバイス接続文字列を使用します。
    • IOTHUB_DEVICE_SECURITY_TYPEという環境変数を設定します。 変数には、リテラル文字列値 connectionString使用します。

    CMD

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Windows CMD の場合、各変数の文字列値を囲む引用符はありません。

    バッシュ

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  5. サンプル ディレクトリに移動します。

    CMD

    cd device\iot-device-samples\pnp-device-sample\temperature-controller-device-sample
    

    バッシュ

    cd device/iot-device-samples/pnp-device-sample/temperature-controller-device-sample
    
  6. コード サンプルを実行します。

    java -jar -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.TemperatureController"
    

    このコード サンプルでは、Azure IoT プラグ アンド プレイを使用します。これにより、手動で構成しなくても、スマート デバイスをソリューションに統合できます。 既定では、このドキュメントのほとんどのサンプルでは IoT プラグ アンド プレイが使用されています。 IoT PnP の利点と、IoT PnP を使用する場合と使用しない場合の詳細については、「 IoT プラグ アンド プレイとは」を参照してください。

このサンプルでは、登録したデバイスとして IoT ハブに安全に接続し、テレメトリ メッセージの送信を開始します。 サンプル出力がコンソールに表示されます。

テレメトリを表示する

IoT Explorer を使用してデバイス テレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT Explorer でテレメトリを表示するには:

  1. IoT Explorer の IoT ハブで、[ このハブ内のデバイスの表示] を選択し、一覧からデバイスを選択します。

  2. デバイスの左側のメニューで、[ テレメトリ] を選択します。

  3. [組み込みのイベント ハブを使用する] が [はい] に設定されていることを確認し、[開始] を選択します

  4. デバイスがクラウドにメッセージを送信する場合にテレメトリを表示します。

    IoT Explorer のデバイス テレメトリのスクリーンショット

  5. [ 停止] を選択してイベントの受信を終了します。

個々のデバイス コンポーネントから送信されたテレメトリを読み取るために、IoT Explorer のプラグ アンド プレイ機能を使用できます。 たとえば、このクイック スタートの温度コントローラーには、thermostat1 と thermostat2 という 2 つのサーモスタットがあります。 thermostat1 によって報告された温度を確認するには:

  1. IoT Explorer のデバイスで、左側のメニューから IoT プラグ アンド プレイ コンポーネント を選択します。 次に、コンポーネントの一覧から thermostat1 を選択します。

  2. thermostat1 コンポーネント ウィンドウで、上部のメニューから [テレメトリ] を選択します。

  3. [ テレメトリ ] ウィンドウで、前に行ったのと同じ手順に従います。 [ 組み込みのイベント ハブを使用 する] が [ はい ] に設定されていることを確認し、[開始] を選択 します

Azure CLI でデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信されたイベントを監視します。 デバイスと IoT ハブ用に Azure IoT で以前に作成した名前を使用します。

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. コンソールで接続の詳細とテレメトリの出力を表示します。

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 24.1
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 33.3
    

コードを参照

このクイック スタートでは、基本的な Azure IoT アプリケーション開発ワークフローについて説明します。 Azure CLI と IoT Explorer を使用して、Azure IoT ハブとデバイスを作成します。 次に、Azure IoT デバイス SDK サンプルを使用して、温度コントローラーを実行し、ハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションは、ローカル コンピューター上で実行され、IoT Hub に送信するシミュレートされたセンサー データを生成します。

[前提条件]

このクイック スタートは、Windows、Linux、Raspberry Pi で実行されます。 これは、次の OS とデバイスのバージョンでテストされています。

  • ウィンドウズ10
  • Ubuntu 20.04 LTS
  • Raspberry Pi OS (Raspbian) バージョン 10(Raspberry Pi 3 モデル B+ で実行)

Raspberry Pi に記載されている場合を除き、開発用コンピューターに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git
  • Node.js バージョン12以降。 ノードのバージョンを確認するには、 node --versionを実行します。
  • Azure IoT Explorer: Azure IoT を監視および管理するためのクロスプラットフォームの GUI ベースのユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT Explorer をインストールすることをお勧めします。 IoT Explorer をインストールしない場合は、Azure CLI を使用して同じ手順を実行できます。
  • Azure CLI。 このクイック スタートでは、Azure CLI コマンドを実行するための 2 つのオプションがあります。
    • ブラウザーで CLI コマンドを実行する対話型シェルである Azure Cloud Shell を使用します。 何もインストールする必要がないため、このオプションをお勧めします。 Cloud Shell を初めて使用する場合は、 Azure portal にサインインします。 「Azure Cloud Shell の概要」の手順に従って Cloud Shell を起動し、Bash 環境を選択します
    • 必要に応じて、ローカル コンピューターで Azure CLI を実行します。 Azure CLI が既にインストールされている場合は、 az upgrade を実行して、CLI と拡張機能を現在のバージョンにアップグレードします。 Azure CLI をインストールするには、 Azure CLI のインストールに関するページを参照してください。 開発プラットフォームとして Raspberry Pi を使用している場合は、Azure Cloud Shell を使用するか、別のコンピューターに Azure CLI をインストールすることをお勧めします。

IoT ハブを作成する

このセクションでは、Azure CLI を使用して IoT ハブとリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 IoT ハブは、IoT アプリケーションとデバイス間の双方向通信のための中央メッセージ ハブとして機能します。

IoT ハブとリソース グループを作成するには、次のようにします。

  1. Azure CLI を起動します。

    • Cloud Shell を使用する場合は、CLI コマンドの [Try It](試してみる) ボタンを選択すると、分割されたブラウザー ウィンドウで Cloud Shell が起動します。 また、別のブラウザー タブで Cloud Shell を開くこともできます。
    • Azure CLI をローカルで使用している場合は、Windows CMD、PowerShell、Bash などのコンソールを開き、 Azure CLI にサインインします

    このクイックスタートの残りの部分で CLI コマンドを実行するには、コマンド構文をコピーし、Cloud Shell ウィンドウまたは CLI コンソールに貼り付け、変数値を編集して Enter キーを押します。

  2. az extension add を実行して、azure-iot 拡張機能をインストールするか、最新バージョンにアップグレードします。

    az extension add --upgrade --name azure-iot
    
  3. az group create コマンドを実行してリソース グループを作成します。 次のコマンドは、myResourceGroup という名前のリソース グループを eastus という場所に作成します。

    必要に応じて、別の場所を設定できます。 選択できる場所を確認するには、az account list-locations を実行します。 このチュートリアルでは、コマンド例に示すように eastus を使用します。

    az group create --name MyResourceGroup --location eastus
    
  4. az iot hub create コマンドを実行して、IoT ハブを作成します。 IoT ハブの作成には数分かかることがあります。

    YourIotHubName。 以下のコマンドでは、選択した IoT ハブの名前に合わせて、プレースホルダーとそれを囲む中かっこを置き換えます。 IoT ハブ名は Azure でグローバルに一意である必要があります。 以降、このクイックスタートに出現しているプレースホルダーにはすべて、実際の IoT ハブの名前を使用してください。

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

    ヒント

    IoT ハブを作成したら、Azure IoT Explorer を使用して、このクイックスタートの残りの部分で IoT ハブと対話します。 IoT Explorer は、既存の IoT Hub に接続し、デバイスを追加、管理、監視できる GUI アプリケーションです。 詳細については、「 Azure IoT エクスプローラーのインストールと使用」を参照してください。 必要に応じて、引き続き CLI コマンドを使用できます。

IoT Explorer の構成

このクイックスタートの残りの部分では、IoT Explorer を使用してデバイスを IoT ハブに登録し、デバイス テレメトリを表示します。 このセクションでは、IoT Explorer を構成して、作成した IoT ハブに接続し、パブリック モデル リポジトリからプラグ アンド プレイ モデルを読み取ります。

Azure CLI を使用してデバイスを登録することもできます。 az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用して新しいデバイスを登録し、az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用してデバイスのプライマリ接続文字列を取得します。 デバイス接続文字列をメモしたら、「 デバイスサンプルを実行する」に進むことができます。

IoT ハブに接続を追加するには:

  1. az iot hub connection-string show コマンドを実行して、IoT ハブの接続文字列を取得します。

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. 引用符を囲まずに接続文字列をコピーします。

  3. Azure IoT Explorer で、左側のメニューで [IoT Hubs ] を選択し、[ + 接続の追加] を選択します。

  4. 接続文字列を [ 接続文字列] ボックス に貼り付けます。

  5. 保存 を選択します。

    IoT Explorer での接続の追加のスクリーンショット

  6. 接続が成功すると、IoT Explorer は [デバイス ] ビューに切り替わります。

パブリック モデル リポジトリの設定を表示します。

  1. IoT エクスプローラーで、[ ホーム ] を選択してホーム ビューに戻ります。

  2. 左側のメニューで、[IoT プラグ アンド プレイの設定] を選択します。

  3. パブリック モデル リポジトリのエントリが https://devicemodels.azure.comに存在することがわかります。

    IoT Explorer でのパブリック モデル リポジトリの追加のスクリーンショット

デバイスの登録

このセクションでは、新しいデバイス インスタンスを作成し、作成した IoT ハブに登録します。 新しく登録されたデバイスの接続情報を使用して、後のセクションでデバイスを安全に接続します。

デバイスを登録するには:

  1. IoT Explorer のホーム ビューで、 IoT ハブを選択します

  2. 前に追加した接続が表示されます。 接続プロパティ の下にある [このハブ内のデバイスの表示 ] を選択します。

  3. [ + 新規] を選択し、デバイスのデバイス ID を入力します。たとえば、 mydevice です。 その他のプロパティはすべて変更しません。

  4. を選択してを作成します。

    Azure IoT Explorer デバイス ID のスクリーンショット

  5. [プライマリ接続文字列] フィールドの値をコピーしてメモします。 この接続文字列は後で必要になります。

デバイス サンプルを実行する

このセクションでは、Node.js SDK を使用して、デバイスから IoT ハブにメッセージを送信します。 2 つのサーモスタット センサーを備えた温度コントローラーを実装するサンプルを実行します。

  1. Windows CMD、PowerShell、Bash などの新しいコンソールを開きます。 次の手順では、このコンソールを使用して Node.js SDK をインストールし、Node.js サンプル コードを操作します。

    Azure CLI のローカル インストールを使用している場合は、2 つのコンソール ウィンドウが開いている可能性があります。 CLI に使用しているコマンドではなく、先ほど開いたコンソールで、このセクションのコマンドを必ず入力してください。

  2. Azure IoT Node.js SDK デバイスのサンプルをローカル コンピューターに複製します。

    git clone https://github.com/Azure/azure-iot-sdk-node
    
  3. サンプル ディレクトリに移動します。

    ウィンドウズ

    cd azure-iot-sdk-node\device\samples\javascript
    

    Linux または Raspberry Pi OS

    cd azure-iot-sdk-node/device/samples/javascript
    
  4. Azure IoT Node.js SDK と必要な依存関係をインストールします。

    npm install
    

    このコマンドは、デバイス サンプル ディレクトリの package.json ファイルで指定されている適切な依存関係をインストールします。

  5. デバイスが Azure IoT に接続できるようにするには、次の環境変数の両方を設定します。

    • IOTHUB_DEVICE_CONNECTION_STRINGという環境変数を設定します。 変数の値には、前のセクションで保存したデバイス接続文字列を使用します。
    • IOTHUB_DEVICE_SECURITY_TYPEという環境変数を設定します。 変数には、リテラル文字列値 connectionString使用します。

    CMD (Windows)

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Windows CMD の場合、各変数の文字列値を囲む引用符はありません。

    PowerShell

    $env:IOTHUB_DEVICE_CONNECTION_STRING='<your connection string here>'
    $env:IOTHUB_DEVICE_SECURITY_TYPE='connectionString'
    

    バッシュ

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  6. 次のコード サンプルを実行します。

    node pnp_temperature_controller.js
    

    このコード サンプルでは、Azure IoT プラグ アンド プレイを使用します。これにより、手動で構成しなくても、スマート デバイスをソリューションに統合できます。 既定では、このドキュメントのほとんどのサンプルでは IoT プラグ アンド プレイが使用されています。 IoT PnP の利点と、IoT PnP を使用する場合と使用しない場合の詳細については、「 IoT プラグ アンド プレイとは」を参照してください。

このサンプルでは、登録したデバイスとして IoT ハブに安全に接続し、テレメトリ メッセージの送信を開始します。 サンプル出力がコンソールに表示されます。

テレメトリを表示する

IoT Explorer を使用してデバイス テレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT Explorer でテレメトリを表示するには:

  1. IoT Explorer の IoT ハブで、[ このハブ内のデバイスの表示] を選択し、一覧からデバイスを選択します。

  2. デバイスの左側のメニューで、[ テレメトリ] を選択します。

  3. [組み込みのイベント ハブを使用する] が [はい] に設定されていることを確認し、[開始] を選択します

  4. デバイスがクラウドにメッセージを送信する場合にテレメトリを表示します。

    IoT Explorer のデバイス テレメトリのスクリーンショット

  5. [ 停止] を選択してイベントの受信を終了します。

個々のデバイス コンポーネントから送信されたテレメトリを読み取るために、IoT Explorer のプラグ アンド プレイ機能を使用できます。 たとえば、このクイック スタートの温度コントローラーには、thermostat1 と thermostat2 という 2 つのサーモスタットがあります。 thermostat1 によって報告された温度を確認するには:

  1. IoT Explorer のデバイスで、左側のメニューから IoT プラグ アンド プレイ コンポーネント を選択します。 次に、コンポーネントの一覧から thermostat1 を選択します。

  2. thermostat1 コンポーネント ウィンドウで、上部のメニューから [テレメトリ] を選択します。

  3. [ テレメトリ ] ウィンドウで、前に行ったのと同じ手順に従います。 [ 組み込みのイベント ハブを使用 する] が [ はい ] に設定されていることを確認し、[開始] を選択 します

Azure CLI でデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信されたイベントを監視します。 デバイスと IoT ハブ用に Azure IoT で以前に作成した名前を使用します。

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. コンソールで接続の詳細とテレメトリの出力を表示します。

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 70.5897683228018
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 52.87582619316418
    

コードを参照

このクイック スタートでは、基本的な Azure IoT アプリケーション開発ワークフローについて説明します。 Azure CLI と IoT Explorer を使用して、Azure IoT ハブとデバイスを作成します。 次に、Azure IoT デバイス SDK サンプルを使用して、温度コントローラーを実行し、ハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションは、ローカル コンピューター上で実行され、IoT Hub に送信するシミュレートされたセンサー データを生成します。

[前提条件]

このクイック スタートは、Windows、Linux、Raspberry Pi で実行されます。 これは、次の OS とデバイスのバージョンでテストされています。

  • Windows 10またはWindows 11
  • Ubuntu 20.04 LTS
  • Raspberry Pi OS (Raspbian) バージョン 10(Raspberry Pi 3 モデル B+ で実行)

Raspberry Pi に記載されている場合を除き、開発用コンピューターに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git
  • Python。 現在の Python バージョンの要件については、Azure IoT Python SDK を確認してください。 Python のバージョンを確認するには、 python3 --versionを実行します。
  • Azure IoT Explorer: Azure IoT を監視および管理するためのクロスプラットフォームの GUI ベースのユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT Explorer をインストールすることをお勧めします。 IoT Explorer をインストールしない場合は、Azure CLI を使用して同じ手順を実行できます。
  • Azure CLI。 このクイック スタートでは、Azure CLI コマンドを実行するための 2 つのオプションがあります。
    • ブラウザーで CLI コマンドを実行する対話型シェルである Azure Cloud Shell を使用します。 何もインストールする必要がないため、このオプションをお勧めします。 Cloud Shell を初めて使用する場合は、 Azure portal にサインインします。 「Azure Cloud Shell の概要」の手順に従って Cloud Shell を起動し、Bash 環境を選択します
    • 必要に応じて、ローカル コンピューターで Azure CLI を実行します。 Azure CLI が既にインストールされている場合は、 az upgrade を実行して、CLI と拡張機能を現在のバージョンにアップグレードします。 Azure CLI をインストールするには、 Azure CLI のインストールに関するページを参照してください。 開発プラットフォームとして Raspberry Pi を使用している場合は、Azure Cloud Shell を使用するか、別のコンピューターに Azure CLI をインストールすることをお勧めします。

IoT ハブを作成する

このセクションでは、Azure CLI を使用して IoT ハブとリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 IoT ハブは、IoT アプリケーションとデバイス間の双方向通信のための中央メッセージ ハブとして機能します。

IoT ハブとリソース グループを作成するには、次のようにします。

  1. Azure CLI を起動します。

    • Cloud Shell を使用する場合は、CLI コマンドの [Try It](試してみる) ボタンを選択すると、分割されたブラウザー ウィンドウで Cloud Shell が起動します。 また、別のブラウザー タブで Cloud Shell を開くこともできます。
    • Azure CLI をローカルで使用している場合は、Windows CMD、PowerShell、Bash などのコンソールを開き、 Azure CLI にサインインします

    このクイックスタートの残りの部分で CLI コマンドを実行するには、コマンド構文をコピーし、Cloud Shell ウィンドウまたは CLI コンソールに貼り付け、変数値を編集して Enter キーを押します。

  2. az extension add を実行して、azure-iot 拡張機能をインストールするか、最新バージョンにアップグレードします。

    az extension add --upgrade --name azure-iot
    
  3. az group create コマンドを実行してリソース グループを作成します。 次のコマンドは、myResourceGroup という名前のリソース グループを eastus という場所に作成します。

    必要に応じて、別の場所を設定できます。 選択できる場所を確認するには、az account list-locations を実行します。 このチュートリアルでは、コマンド例に示すように eastus を使用します。

    az group create --name MyResourceGroup --location eastus
    
  4. az iot hub create コマンドを実行して、IoT ハブを作成します。 IoT ハブの作成には数分かかることがあります。

    YourIotHubName。 以下のコマンドでは、選択した IoT ハブの名前に合わせて、プレースホルダーとそれを囲む中かっこを置き換えます。 IoT ハブ名は Azure でグローバルに一意である必要があります。 以降、このクイックスタートに出現しているプレースホルダーにはすべて、実際の IoT ハブの名前を使用してください。

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

    ヒント

    IoT ハブを作成したら、Azure IoT Explorer を使用して、このクイックスタートの残りの部分で IoT ハブと対話します。 IoT Explorer は、既存の IoT Hub に接続し、デバイスを追加、管理、監視できる GUI アプリケーションです。 詳細については、「 Azure IoT エクスプローラーのインストールと使用」を参照してください。 必要に応じて、引き続き CLI コマンドを使用できます。

IoT Explorer の構成

このクイックスタートの残りの部分では、IoT Explorer を使用してデバイスを IoT ハブに登録し、デバイス テレメトリを表示します。 このセクションでは、IoT Explorer を構成して、作成した IoT ハブに接続し、パブリック モデル リポジトリからプラグ アンド プレイ モデルを読み取ります。

Azure CLI を使用してデバイスを登録することもできます。 az iot hub device-identity create --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用して新しいデバイスを登録し、az iot hub device-identity connection-string show --device-id mydevice --hub-name {YourIoTHubName} コマンドを使用してデバイスのプライマリ接続文字列を取得します。 デバイス接続文字列をメモしたら、「 デバイスサンプルを実行する」に進むことができます。

IoT ハブに接続を追加するには:

  1. az iot hub connection-string show コマンドを実行して、IoT ハブの接続文字列を取得します。

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  2. 引用符を囲まずに接続文字列をコピーします。

  3. Azure IoT Explorer で、左側のメニューで [IoT Hubs ] を選択し、[ + 接続の追加] を選択します。

  4. 接続文字列を [ 接続文字列] ボックス に貼り付けます。

  5. 保存 を選択します。

    IoT Explorer での接続の追加のスクリーンショット

  6. 接続が成功すると、IoT Explorer は [デバイス ] ビューに切り替わります。

パブリック モデル リポジトリの設定を表示します。

  1. IoT エクスプローラーで、[ ホーム ] を選択してホーム ビューに戻ります。

  2. 左側のメニューで、[IoT プラグ アンド プレイの設定] を選択します。

  3. パブリック モデル リポジトリのエントリが https://devicemodels.azure.comに存在することがわかります。

    IoT Explorer でのパブリック モデル リポジトリの追加のスクリーンショット

デバイスの登録

このセクションでは、新しいデバイス インスタンスを作成し、作成した IoT ハブに登録します。 新しく登録されたデバイスの接続情報を使用して、後のセクションでデバイスを安全に接続します。

デバイスを登録するには:

  1. IoT Explorer のホーム ビューで、 IoT ハブを選択します

  2. 前に追加した接続が表示されます。 接続プロパティ の下にある [このハブ内のデバイスの表示 ] を選択します。

  3. [ + 新規] を選択し、デバイスのデバイス ID を入力します。たとえば、 mydevice です。 その他のプロパティはすべて変更しません。

  4. を選択してを作成します。

    Azure IoT Explorer デバイス ID のスクリーンショット

  5. [プライマリ接続文字列] フィールドの値をコピーしてメモします。 この接続文字列は後で必要になります。

デバイス サンプルを実行する

このセクションでは、Python SDK を使用して、デバイスから IoT ハブにメッセージを送信します。 2 つのサーモスタット センサーを備えた温度コントローラーを実装するサンプルを実行します。

  1. Windows CMD、PowerShell、Bash などの新しいコンソールを開きます。 次の手順では、このコンソールを使用して Python SDK をインストールし、Python サンプル コードを操作します。

    Azure CLI のローカル インストールを使用している場合は、2 つのコンソール ウィンドウが開いている可能性があります。 CLI に使用しているコマンドではなく、先ほど開いたコンソールで、このセクションのコマンドを必ず入力してください。

  2. Azure IoT Python SDK デバイス サンプルをローカル コンピューターに複製します。

    git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
    
  3. サンプル ディレクトリに移動します。

    ウィンドウズ

    cd azure-iot-sdk-python\samples\pnp
    

    Linux または Raspberry Pi OS

    cd azure-iot-sdk-python/samples/pnp
    
  4. Azure IoT Python SDK をインストールします。

    pip3 install azure-iot-device
    
  5. デバイスが Azure IoT に接続できるように、次の環境変数を設定します。

    • IOTHUB_DEVICE_CONNECTION_STRINGという環境変数を設定します。 変数の値には、前のセクションで保存したデバイス接続文字列を使用します。
    • IOTHUB_DEVICE_SECURITY_TYPEという環境変数を設定します。 変数には、リテラル文字列値 connectionString使用します。

    CMD (Windows)

    set IOTHUB_DEVICE_CONNECTION_STRING=<your connection string here>
    set IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    

    Windows CMD の場合、各変数の文字列値を囲む引用符はありません。

    PowerShell

    $env:IOTHUB_DEVICE_CONNECTION_STRING='<your connection string here>'
    $env:IOTHUB_DEVICE_SECURITY_TYPE='connectionString'
    

    バッシュ

    export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"
    export IOTHUB_DEVICE_SECURITY_TYPE="connectionString"
    
  6. 次のサンプル ファイルのコードを実行します。

    python temp_controller_with_thermostats.py
    

    このコード サンプルでは、Azure IoT プラグ アンド プレイを使用します。これにより、手動で構成しなくても、スマート デバイスをソリューションに統合できます。 既定では、このドキュメントのほとんどのサンプルでは IoT プラグ アンド プレイが使用されています。 IoT プラグ アンド プレイの利点と、IoT プラグ アンド プレイを使用する場合と使用しない場合の詳細については、「 IoT プラグ アンド プレイとは」を参照してください。

このサンプルでは、登録したデバイスとして IoT ハブに安全に接続し、テレメトリ メッセージの送信を開始します。 サンプル出力がコンソールに表示されます。

テレメトリを表示する

IoT Explorer を使用してデバイス テレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT Explorer でテレメトリを表示するには:

  1. IoT Explorer の IoT ハブで、[ このハブ内のデバイスの表示] を選択し、一覧からデバイスを選択します。

  2. デバイスの左側のメニューで、[ テレメトリ] を選択します。

  3. [組み込みのイベント ハブを使用する] が [はい] に設定されていることを確認し、[開始] を選択します

  4. デバイスがクラウドにメッセージを送信する場合にテレメトリを表示します。

    IoT Explorer のデバイス テレメトリのスクリーンショット

  5. [ 停止] を選択してイベントの受信を終了します。

個々のデバイス コンポーネントから送信されたテレメトリを読み取るために、IoT Explorer のプラグ アンド プレイ機能を使用できます。 たとえば、このクイック スタートの温度コントローラーには、thermostat1 と thermostat2 という 2 つのサーモスタットがあります。 thermostat1 によって報告された温度を確認するには:

  1. IoT Explorer のデバイスで、左側のメニューから IoT プラグ アンド プレイ コンポーネント を選択します。 次に、コンポーネントの一覧から thermostat1 を選択します。

  2. thermostat1 コンポーネント ウィンドウで、上部のメニューから [テレメトリ] を選択します。

  3. [ テレメトリ ] ウィンドウで、前に行ったのと同じ手順に従います。 [ 組み込みのイベント ハブを使用 する] が [ はい ] に設定されていることを確認し、[開始] を選択 します

Azure CLI でデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信されたイベントを監視します。 デバイスと IoT ハブ用に Azure IoT で以前に作成した名前を使用します。

    az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
    
  2. コンソールで接続の詳細とテレメトリの出力を表示します。

    Starting event monitor, filtering on device: mydevice, use ctrl-c to stop...
    event:
      component: thermostat1
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 28
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 10
    

リソースをクリーンアップする

このチュートリアルで作成した Azure リソースが不要になった場合は、Azure CLI を使用してそれらを削除できます。

Important

リソース グループを削除すると、元に戻すことができません。 リソース グループとそこに含まれるすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。

リソース グループを名前で削除するには:

  1. az group delete コマンドを実行します。 このコマンドを実行すると、作成したリソース グループ、IoT Hub、およびデバイス登録が削除されます。

    az group delete --name MyResourceGroup
    
  2. az group list コマンドを実行して、リソース グループが削除されたことを確認します。

    az group list
    

次のステップ

このチュートリアルでは、デバイスをクラウドに安全に接続し、デバイスからクラウドへのテレメトリを送信するための基本的な Azure IoT アプリケーション ワークフローについて説明しました。 Azure CLI を使用して、Azure IoT ハブとデバイス インスタンスを作成しました。 次に、Azure IoT デバイス SDK を使用して温度コントローラーを作成し、ハブに接続してテレメトリを送信しました。 また、Azure CLI を使用してテレメトリを監視しました。

次の手順として、Azure IoT を使用したデバイス ソリューションの構築の詳細については、次の記事を参照してください。