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

コードを参照

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

前提条件

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

  • Windows 10
  • Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS (Raspbian) バージョン 10

Raspberry Pi に関する説明がある場合を除き、開発マシンに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git.
  • Azure IoT エクスプローラー: Azure IoT を監視および管理するための GUI ベースのクロスプラットフォーム ユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT エクスプローラーをインストールすることをお勧めします。 IoT エクスプローラーをインストールしない場合は、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 で完了するには、次のソフトウェアをインストールします。

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

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 をインストールします。 インストールするエディションをダウンロードし、インストーラーを起動します。

    Note

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

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

IoT Hub の作成

このセクションでは、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 という場所に作成します。

    Note

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを使用して IoT ハブとやり取りします。 IoT エクスプローラーは、既存の IoT ハブに接続し、デバイスの追加、管理、監視を行うことができる GUI アプリケーションです。 詳細については、「Azure IoT エクスプローラーをインストールして使用する」を参照してください。 必要に応じて、CLI コマンドを引き続き使用することができます。

IoT エクスプローラーの構成

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

Note

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 エクスプローラーで、左側のメニューの [IoT Hub] を選択し、 [+ 接続の追加] を選択します。

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

  5. [保存] を選択します。

    IoT エクスプローラーでの接続の追加のスクリーンショット

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

パブリック モデル リポジトリを追加するには:

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

  2. 左側のメニューで、 [IoT プラグ アンド プレイの設定] を選択し、 [+ 追加] を選択して、ドロップダウン メニューから [パブリック リポジトリ] を選択します。

  3. https://devicemodels.azure.com に、パブリック モデル リポジトリのエントリが表示されます。

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

  4. [保存] を選択します。

デバイスの登録

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

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

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

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

  3. [+ 新規] を選択し、デバイスのデバイス ID (例: mydevice) を入力します。 他のプロパティはすべてそのままにしておきます。

  4. [作成] を選択します。

    Azure IoT エクスプローラーのデバイス ID のスクリーンショット

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

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

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

サンプルをビルドする

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

    Note

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

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

  3. Azure IoT C device 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
    

    Note

    Windows CMD では、各変数の文字列値を囲む引用符は入力しません。

    Bash

    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
    

    Bash

    cmake/iothub_client/samples/pnp/pnp_temperature_controller/pnp_temperature_controller
    

    Note

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

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

利用統計情報データを表示する

IoT エクスプローラーでは、デバイスのテレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT エクスプローラーでテレメトリを表示するには:

  1. IoT エクスプローラーの IoT ハブから、 [View devices in this hub](このハブのデバイスを表示) を選択し、リストからデバイスを選択します。

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

  3. [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

  4. デバイスからクラウドにメッセージが送信されるときのテレメトリを表示します。

    IoT エクスプローラーのデバイス テレメトリのスクリーンショット

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

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

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

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

  3. [テレメトリ] ペインで、前と同じ手順に従います。 [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

Azure CLI を使用してデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信するイベントをモニターします。 Azure IoT で以前に作成した、デバイスと 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 エクスプローラーを使用して、Azure IoT ハブとデバイスを作成します。 次に Azure IoT device SDK サンプルを使用して、温度コントローラーを実行し、それをハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションはローカル コンピューター上で動作し、センサー データをシミュレートして IoT Hub に送信します。

前提条件

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

  • Windows 10
  • Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS (Raspbian) バージョン 10

Raspberry Pi に関する説明がある場合を除き、開発マシンに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。

  • Git.

  • .NET Core SDK 3.1。 ランタイムだけではなく、.NET SDK も必ずインストールしてください。 マシンにインストールされている .NET SDK とランタイムのバージョンを確認するには、dotnet --info を実行します。

    • Windows と Linux (Raspberry Pi を除く) の場合は、手順に従って、お使いのプラットフォームに .NET Core SDK 3.1 をインストールします。
    • Raspberry Pi の場合は、手順に従って、SDK を手動でインストールする必要があります。 これは、Debian では、.NET SDK のパッケージ マネージャーのインストールが x64 アーキテクチャでのみサポートされているためです。
  • Azure IoT エクスプローラー: Azure IoT を監視および管理するための GUI ベースのクロスプラットフォーム ユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT エクスプローラーをインストールすることをお勧めします。 IoT エクスプローラーをインストールしない場合は、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 Hub の作成

このセクションでは、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 という場所に作成します。

    Note

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを使用して IoT ハブとやり取りします。 IoT エクスプローラーは、既存の IoT ハブに接続し、デバイスの追加、管理、監視を行うことができる GUI アプリケーションです。 詳細については、「Azure IoT エクスプローラーをインストールして使用する」を参照してください。 必要に応じて、CLI コマンドを引き続き使用することができます。

IoT エクスプローラーの構成

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

Note

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 エクスプローラーで、左側のメニューの [IoT Hub] を選択し、 [+ 接続の追加] を選択します。

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

  5. [保存] を選択します。

    IoT エクスプローラーでの接続の追加のスクリーンショット

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

パブリック モデル リポジトリを追加するには:

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

  2. 左側のメニューで、 [IoT プラグ アンド プレイの設定] を選択し、 [+ 追加] を選択して、ドロップダウン メニューから [パブリック リポジトリ] を選択します。

  3. https://devicemodels.azure.com に、パブリック モデル リポジトリのエントリが表示されます。

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

  4. [保存] を選択します。

デバイスの登録

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

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

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

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

  3. [+ 新規] を選択し、デバイスのデバイス ID (例: mydevice) を入力します。 他のプロパティはすべてそのままにしておきます。

  4. [作成] を選択します。

    Azure IoT エクスプローラーのデバイス ID のスクリーンショット

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

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

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

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

    Note

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

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

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

    Windows

    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
    

    Note

    Windows CMD では、各変数の文字列値を囲む引用符は入力しません。

    PowerShell

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

    Bash

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

    dotnet run
    

    Note

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

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

利用統計情報データを表示する

IoT エクスプローラーでは、デバイスのテレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT エクスプローラーでテレメトリを表示するには:

  1. IoT エクスプローラーの IoT ハブから、 [View devices in this hub](このハブのデバイスを表示) を選択し、リストからデバイスを選択します。

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

  3. [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

  4. デバイスからクラウドにメッセージが送信されるときのテレメトリを表示します。

    IoT エクスプローラーのデバイス テレメトリのスクリーンショット

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

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

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

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

  3. [テレメトリ] ペインで、前と同じ手順に従います。 [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

Azure CLI を使用してデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信するイベントをモニターします。 Azure IoT で以前に作成した、デバイスと 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 エクスプローラーを使用して、Azure IoT ハブとデバイスを作成します。 次に Azure IoT device SDK サンプルを使用して、温度コントローラーを実行し、それをハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションはローカル コンピューター上で動作し、センサー データをシミュレートして IoT Hub に送信します。

前提条件

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

  • Windows 10
  • Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS (Raspbian) バージョン 10

Raspberry Pi に関する説明がある場合を除き、開発マシンに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git.
  • Azure IoT エクスプローラー: Azure IoT を監視および管理するための GUI ベースのクロスプラットフォーム ユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT エクスプローラーをインストールすることをお勧めします。 IoT エクスプローラーをインストールしない場合は、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 以降。 複数のプラットフォーム用の Java 8 (LTS) JDK は、「OpenJDK の Zulu ビルドのダウンロード」からダウンロードできます。 インストーラーで、 [Add to Path](パスに追加) オプションを選択します。

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

Linux または Raspberry Pi OS

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

Note

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

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

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

      システムの OpenJDK の既定のバージョン (記事の執筆時点では、Ubuntu 20.04 および Raspberry Pi OS 10 用 OpenJDK 11) をインストールする場合は、次のようにします。

      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. JDK インストールのパスを指すように JAVA_HOME 環境変数を設定する必要があります。 (これは通常、 /usr/lib/jvm ディレクトリ内のバージョン管理されたサブディレクトリです)。

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

      重要

      このコマンドは、 現在のシェル環境で 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 Hub の作成

このセクションでは、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 という場所に作成します。

    Note

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを使用して IoT ハブとやり取りします。 IoT エクスプローラーは、既存の IoT ハブに接続し、デバイスの追加、管理、監視を行うことができる GUI アプリケーションです。 詳細については、「Azure IoT エクスプローラーをインストールして使用する」を参照してください。 必要に応じて、CLI コマンドを引き続き使用することができます。

IoT エクスプローラーの構成

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

Note

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 エクスプローラーで、左側のメニューの [IoT Hub] を選択し、 [+ 接続の追加] を選択します。

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

  5. [保存] を選択します。

    IoT エクスプローラーでの接続の追加のスクリーンショット

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

パブリック モデル リポジトリを追加するには:

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

  2. 左側のメニューで、 [IoT プラグ アンド プレイの設定] を選択し、 [+ 追加] を選択して、ドロップダウン メニューから [パブリック リポジトリ] を選択します。

  3. https://devicemodels.azure.com に、パブリック モデル リポジトリのエントリが表示されます。

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

  4. [保存] を選択します。

デバイスの登録

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

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

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

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

  3. [+ 新規] を選択し、デバイスのデバイス ID (例: mydevice) を入力します。 他のプロパティはすべてそのままにしておきます。

  4. [作成] を選択します。

    Azure IoT エクスプローラーのデバイス ID のスクリーンショット

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

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

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

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

    Note

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

    Linux および Raspberry Pi OS

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

  2. Azure IoT Java device 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
    

    Note

    Windows CMD では、各変数の文字列値を囲む引用符は入力しません。

    Bash

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

    CMD

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

    Bash

    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"
    

    Note

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

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

利用統計情報データを表示する

IoT エクスプローラーでは、デバイスのテレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT エクスプローラーでテレメトリを表示するには:

  1. IoT エクスプローラーの IoT ハブから、 [View devices in this hub](このハブのデバイスを表示) を選択し、リストからデバイスを選択します。

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

  3. [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

  4. デバイスからクラウドにメッセージが送信されるときのテレメトリを表示します。

    IoT エクスプローラーのデバイス テレメトリのスクリーンショット

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

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

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

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

  3. [テレメトリ] ペインで、前と同じ手順に従います。 [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

Azure CLI を使用してデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信するイベントをモニターします。 Azure IoT で以前に作成した、デバイスと 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 エクスプローラーを使用して、Azure IoT ハブとデバイスを作成します。 次に Azure IoT device SDK サンプルを使用して、温度コントローラーを実行し、それをハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションはローカル コンピューター上で動作し、センサー データをシミュレートして IoT Hub に送信します。

前提条件

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

  • Windows 10
  • Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS (Raspbian) バージョン 10

Raspberry Pi に関する説明がある場合を除き、開発マシンに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git.
  • Node.js バージョン 12 以降。 ノードのバージョンを確認するには、node --version を実行します。
  • Azure IoT エクスプローラー: Azure IoT を監視および管理するための GUI ベースのクロスプラットフォーム ユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT エクスプローラーをインストールすることをお勧めします。 IoT エクスプローラーをインストールしない場合は、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 Hub の作成

このセクションでは、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 という場所に作成します。

    Note

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを使用して IoT ハブとやり取りします。 IoT エクスプローラーは、既存の IoT ハブに接続し、デバイスの追加、管理、監視を行うことができる GUI アプリケーションです。 詳細については、「Azure IoT エクスプローラーをインストールして使用する」を参照してください。 必要に応じて、CLI コマンドを引き続き使用することができます。

IoT エクスプローラーの構成

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

Note

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 エクスプローラーで、左側のメニューの [IoT Hub] を選択し、 [+ 接続の追加] を選択します。

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

  5. [保存] を選択します。

    IoT エクスプローラーでの接続の追加のスクリーンショット

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

パブリック モデル リポジトリを追加するには:

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

  2. 左側のメニューで、 [IoT プラグ アンド プレイの設定] を選択し、 [+ 追加] を選択して、ドロップダウン メニューから [パブリック リポジトリ] を選択します。

  3. https://devicemodels.azure.com に、パブリック モデル リポジトリのエントリが表示されます。

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

  4. [保存] を選択します。

デバイスの登録

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

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

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

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

  3. [+ 新規] を選択し、デバイスのデバイス ID (例: mydevice) を入力します。 他のプロパティはすべてそのままにしておきます。

  4. [作成] を選択します。

    Azure IoT エクスプローラーのデバイス ID のスクリーンショット

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

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

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

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

    Note

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

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

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

    Windows

    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 ファイルに指定されている適切な依存関係が device/samples ディレクトリにインストールされます。

  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
    

    Note

    Windows CMD では、各変数の文字列値を囲む引用符は入力しません。

    PowerShell

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

    Bash

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

    node pnp_temperature_controller.js
    

    Note

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

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

利用統計情報データを表示する

IoT エクスプローラーでは、デバイスのテレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT エクスプローラーでテレメトリを表示するには:

  1. IoT エクスプローラーの IoT ハブから、 [View devices in this hub](このハブのデバイスを表示) を選択し、リストからデバイスを選択します。

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

  3. [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

  4. デバイスからクラウドにメッセージが送信されるときのテレメトリを表示します。

    IoT エクスプローラーのデバイス テレメトリのスクリーンショット

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

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

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

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

  3. [テレメトリ] ペインで、前と同じ手順に従います。 [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

Azure CLI を使用してデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信するイベントをモニターします。 Azure IoT で以前に作成した、デバイスと 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 エクスプローラーを使用して、Azure IoT ハブとデバイスを作成します。 次に Azure IoT device SDK サンプルを使用して、温度コントローラーを実行し、それをハブに安全に接続し、テレメトリを送信します。 温度コントローラーのサンプル アプリケーションはローカル コンピューター上で動作し、センサー データをシミュレートして IoT Hub に送信します。

前提条件

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

  • Windows 10 または Windows 11
  • Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS (Raspbian) バージョン 10

Raspberry Pi に関する説明がある場合を除き、開発マシンに次の前提条件をインストールします。

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git.
  • Python。 現在の Python バージョンの要件については、Azure IoT Python SDK を確認してください。 Python のバージョンを確認するには、python3 --version を実行します。
  • Azure IoT エクスプローラー: Azure IoT を監視および管理するための GUI ベースのクロスプラットフォーム ユーティリティ。 開発プラットフォームとして Raspberry Pi を使用している場合は、別のコンピューターに IoT エクスプローラーをインストールすることをお勧めします。 IoT エクスプローラーをインストールしない場合は、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 Hub の作成

このセクションでは、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 という場所に作成します。

    Note

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを使用して IoT ハブとやり取りします。 IoT エクスプローラーは、既存の IoT ハブに接続し、デバイスの追加、管理、監視を行うことができる GUI アプリケーションです。 詳細については、「Azure IoT エクスプローラーをインストールして使用する」を参照してください。 必要に応じて、CLI コマンドを引き続き使用することができます。

IoT エクスプローラーの構成

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

Note

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 エクスプローラーで、左側のメニューの [IoT Hub] を選択し、 [+ 接続の追加] を選択します。

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

  5. [保存] を選択します。

    IoT エクスプローラーでの接続の追加のスクリーンショット

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

パブリック モデル リポジトリを追加するには:

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

  2. 左側のメニューで、 [IoT プラグ アンド プレイの設定] を選択し、 [+ 追加] を選択して、ドロップダウン メニューから [パブリック リポジトリ] を選択します。

  3. https://devicemodels.azure.com に、パブリック モデル リポジトリのエントリが表示されます。

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

  4. [保存] を選択します。

デバイスの登録

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

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

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

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

  3. [+ 新規] を選択し、デバイスのデバイス ID (例: mydevice) を入力します。 他のプロパティはすべてそのままにしておきます。

  4. [作成] を選択します。

    Azure IoT エクスプローラーのデバイス ID のスクリーンショット

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

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

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

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

    Note

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

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

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

    Windows

    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
    

    Note

    Windows CMD では、各変数の文字列値を囲む引用符は入力しません。

    PowerShell

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

    Bash

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

    python temp_controller_with_thermostats.py
    

    Note

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

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

利用統計情報データを表示する

IoT エクスプローラーでは、デバイスのテレメトリを表示できます。 必要に応じて、Azure CLI を使用してテレメトリを表示できます。

Azure IoT エクスプローラーでテレメトリを表示するには:

  1. IoT エクスプローラーの IoT ハブから、 [View devices in this hub](このハブのデバイスを表示) を選択し、リストからデバイスを選択します。

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

  3. [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

  4. デバイスからクラウドにメッセージが送信されるときのテレメトリを表示します。

    IoT エクスプローラーのデバイス テレメトリのスクリーンショット

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

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

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

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

  3. [テレメトリ] ペインで、前と同じ手順に従います。 [Use built-in event hub](組み込みのイベント ハブを使用する)[はい] に設定されていることを確認してから、 [開始] を選択します。

Azure CLI を使用してデバイス テレメトリを表示するには:

  1. az iot hub monitor-events コマンドを実行して、デバイスから IoT ハブに送信するイベントをモニターします。 Azure IoT で以前に作成した、デバイスと 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 を使用して削除できます。

重要

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

名前でリソース グループを削除するには、以下の手順を実行します。

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

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

    az group list
    

次のステップ

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

次の手順では、次の記事を参照して、Azure IoT を使用してデバイス ソリューションを構築する方法について確認します。