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

適用対象: デバイス アプリケーション開発者

コードを参照

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

前提条件

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

  • Windows 10
  • Linux 用 Windows サブシステム (WSL) で実行されている Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS バージョン 10 (Raspian)

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 にログインします。 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 のバージョンが 2.8.12 より大きく、GCC のバージョンが 4.4.7 より大きいことを確認します。

cmake --version
gcc --version

Windows

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

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

    注意

    既存の Visual Studio 2019 ユーザーの場合は、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 という場所に作成します。

    注意

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを構成します。

注意

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 コマンドのターミナルを開きます。

    注意

    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
    

    注意

    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
    

    注意

    このコード サンプルでは、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 サンプルを使用して、シミュレートされた温度コントローラーを実行し、それをハブに安全に接続して、テレメトリを送信します。

前提条件

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

  • Windows 10
  • Linux 用 Windows サブシステム (WSL) で実行されている Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS バージョン 10 (Raspian)

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 にログインします。 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 という場所に作成します。

    注意

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを構成します。

注意

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 のサンプル コードを操作します。

    注意

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

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

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

    Windows

    cd azure-iot-samples-csharp\iot-hub\Samples\device\PnpDeviceSamples\TemperatureController
    

    Linux または Raspberry Pi OS

    cd azure-iot-samples-csharp/iot-hub/Samples/device/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'
    

    Bash

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

    dotnet run
    

    注意

    このコード サンプルでは、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 サンプルを使用して、シミュレートされた温度コントローラーを実行し、それをハブに安全に接続して、テレメトリを送信します。

前提条件

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git.
  • Java SE Development Kit 8 以降がインストールされた開発マシン。 複数のプラットフォーム用の Java 8 (LTS) JDK は、「OpenJDK の Zulu ビルドのダウンロード」からダウンロードできます。 インストーラーで、 [Add to Path](パスに追加) オプションを選択します。
  • Apache Maven 3。 ダウンロードをローカル フォルダーに抽出した後、Maven /bin フォルダーへの完全なパスを Windows PATH 変数に追加します。
  • Azure IoT エクスプローラー: Azure IoT を監視および管理するための GUI ベースのクロスプラットフォーム ユーティリティ。
  • Azure CLI。 このクイックスタートで Azure CLI コマンドを実行するには、2 つのオプションがあります。
    • ブラウザーで CLI コマンドを実行する対話型シェルである Azure Cloud Shell を使用します。 何もインストールする必要がないため、このオプションをお勧めします。 Cloud Shell を初めて使用する場合は、Azure portal にログインします。 Cloud Shell のクイックスタートの手順に従って、Cloud Shell を起動 し、Bash 環境を選択 します。
    • 必要に応じて、お使いのローカル コンピューターで Azure CLI を実行します。 Azure CLI が既にインストールされている場合は、az upgrade を実行して、CLI と拡張機能を最新バージョンにアップグレードします。 Azure CLI のインストール方法については、「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 という場所に作成します。

    注意

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを構成します。

注意

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 をインストールし、コード サンプルをビルドして実行します。 このコンソールは次の手順で使用します。

    注意

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

  2. シミュレートされたデバイスを 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 では、各変数の文字列値を囲む引用符は入力しません。

    Bash

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

サンプルをビルドする

  1. Azure IoT Java device SDK を、お使いのローカル コンピューターにクローンします。
    git clone https://github.com/Azure/azure-iot-sdk-java.git
    
  2. SDK のルート フォルダーに移動し、次のコマンドを実行して、SDK をビルドし、サンプルを更新します。
    cd azure-iot-sdk-java
    mvn install -T 2C -DskipTests
    
    この操作は数分かかります。

コードの実行

  1. samples ディレクトリに移動します。

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

    mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.TemperatureController"
    

    注意

    このコード サンプルでは、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 サンプルを使用して、シミュレートされた温度コントローラーを実行し、それをハブに安全に接続して、テレメトリを送信します。

前提条件

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

  • Windows 10
  • Linux 用 Windows サブシステム (WSL) で実行されている Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS バージョン 10 (Raspian)

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

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git.
  • Node.js バージョン 10 以降。 ノードのバージョンを確認するには、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 にログインします。 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 という場所に作成します。

    注意

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを構成します。

注意

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 ハブにメッセージを送信します。 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. sample ディレクトリに移動します。

    Windows

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

    Linux または Raspberry Pi OS

    cd azure-iot-sdk-node/device/samples/javascript/pnp
    
  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
    

    注意

    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 pnpTemperatureController.js
    

    注意

    このコード サンプルでは、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 サンプルを使用して、シミュレートされた温度コントローラーを実行し、それをハブに安全に接続して、テレメトリを送信します。

前提条件

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

  • Windows 10
  • Linux 用 Windows サブシステム (WSL) で実行されている Ubuntu 20.04 LTS
  • Raspberry Pi 3 Model B+ で実行されている Raspberry Pi OS バージョン 10 (Raspian)

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

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料でアカウントを 1 つ作成してください。
  • Git.
  • Python バージョン 3.7 以降。 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 にログインします。 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 という場所に作成します。

    注意

    必要に応じて、別の場所を設定することもできます。 選択できる場所を確認するには、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 エクスプローラーを構成します。

注意

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 ハブにメッセージを送信します。 2 つのサーモスタット センサーを備えた温度コントローラーを実装するサンプルを実行します。

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

    注意

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

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

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

    Windows

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

    Linux または Raspberry Pi OS

    cd azure-iot-sdk-python/azure-iot-device/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'
    

    Bash

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

    python3 temp_controller_with_thermostats.py
    

    注意

    このコード サンプルでは、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: 29
    
    event:
      component: thermostat2
      interface: dtmi:com:example:TemperatureController;2
      module: ''
      origin: mydevice
      payload:
        temperature: 48
    

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

このクイックスタートで作成した 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 portal を使用して、テレメトリを監視しました。

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