共用方式為


教學課程:將在 Linux 或 Windows 上執行的範例 IoT 隨插即用裝置應用程式連線至 IoT 中樞

此教學課程示範如何建置範例 IoT 隨插即用裝置應用程式、將其連線至 IoT 中樞,然後使用 Azure IoT 總管工具檢視其傳送的遙測資料。 範例應用程式以 C 撰寫,並且包含在適用於 C 的 Azure IoT 裝置 SDK 中。解決方案建立器可使用 Azure IoT 檔案總管工具直接了解 IoT 隨插即用裝置的功能,而不需檢視任何裝置程式碼。

瀏覽程式碼

必要條件

在繼續之前,請確定您已設定環境,包括您的 IoT 中樞。

您可以在 Linux 或 Windows 上執行本教學課程。 本教學課程中的殼層命令會遵循路徑分隔符號 '/' 的 Linux 慣例,如果您在 Windows 上遵循,請務必針對 '\' 交換這些分隔符號。

必要條件會因作業系統而有所不同:

Linux

本教學課程假設您使用 Ubuntu Linux。 本教學課程中的步驟已使用 Ubuntu 18.04 進行測試。

若要在 Linux 上完成本教學課程,您必須在本機 Linux 環境上安裝下列軟體:

使用 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 上完成此教學課程,請在本機 Windows 環境中安裝下列軟體:

下載程式碼

在此教學課程中,您會準備可用來複製及建置 Azure IoT 中樞裝置 C SDK 的開發環境。

在您選擇的目錄中開啟命令提示字元。 執行下列命令,將 Azure IoT C SDK 和程式庫 GitHub 存放庫複製到下列位置:

git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

預期此作業需要幾分鐘的時間才能完成。

建置程式碼

您可以使用 Visual Studio 或在命令列上使用 cmake,來建立和執行程式碼。

使用 Visual Studio

  1. 開啟所複製存放庫的根資料夾。 幾秒後,Visual Studio 中的 CMake 支援就會建立執行和偵錯專案所需的所有項目。

  2. 當 Visual Studio 準備就緒時,在方案總管中,瀏覽至範例 iothub_client/samples/pnp/pnp_simple_thermostat/

  3. 以滑鼠右鍵按一下 pnp_simple_thermostat.c 檔案,然後選取 [新增偵錯設定]。 選取 [預設]

  4. Visual Studio 會開啟 launch.vs.json 檔案。 編輯此檔案,以下列程式碼片段所示的方式,設定必要的環境變數。 當您完成下列程序後,您會記下範圍識別碼和註冊主要金鑰:設定 IoT 隨插即用的環境快速入門和教學課程

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c",
          "projectTarget": "",
          "name": "pnp_simple_thermostat.c",
          "env": {
            "IOTHUB_DEVICE_SECURITY_TYPE": "DPS",
            "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>",
            "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device",
            "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>"
          }
        }
      ]
    }
    
  5. 以滑鼠右鍵按一下 pnp_simple_thermostat.c 檔案,然後選取 [設定為啟動項目]

  6. 若要在 Visual Studio 中追蹤程式碼執行,請在 pnp_simple_thermostat.c 檔案的 main 函式新增中斷點。

  7. 您現在可以從 [偵錯] 功能表中執行和偵錯範例。

裝置現在已可接收命令和屬性更新,並已開始將遙測資料傳送至中樞。 完成後續步驟後,請讓範例保持執行狀態。

使用 cmake 建置程式碼

您可以使用 cmake 命令列公用程式建置程式碼:

  1. 在裝置 SDK 根資料夾中建立 cmake 子目錄,並瀏覽至該資料夾:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. 執行下列命令,以建置 SDK 和範例:

    cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF ..
    cmake --build .
    

執行裝置範例

設定您的環境中,您建立了四個環境變數,以將範例設定為使用裝置佈建服務 (DPS) 來連線到您的 IoT 中樞:

  • 值為 DPSIOTHUB_DEVICE_SECURITY_TYPE
  • 使用 DPS 識別碼範圍的 IOTHUB_DEVICE_DPS_ID_SCOPE
  • 使用值 my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID
  • 使用註冊主要金鑰的 IOTHUB_DEVICE_DPS_DEVICE_KEY
  • 使用值 global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT

若要深入了解範例設定,請參閱範例讀我檔案

若要在 SDK 中執行範例應用程式,以模擬將遙測傳送到 IoT 中樞的 IoT 隨插即用裝置:

cmake 資料夾瀏覽至包含可執行檔的資料夾並且執行:

# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe

提示

若要在 Windows 上 Visual Studio 追蹤程式碼執行,請在 pnp_simple_thermostat.c 檔案中新增 main 函式的中斷點。

裝置現在已可接收命令和屬性更新,並已開始將遙測資料傳送至中樞。 完成後續步驟後,請讓範例保持執行狀態。

使用 Azure IoT 總管來驗證程式碼

當裝置用戶端範例啟動之後,請使用 Azure IoT 總管工具來驗證其是否正確運作。

  1. 開啟 Azure IoT 檔案總管。

  2. 在 [IoT 中樞] 頁面上,如果您尚未新增與 IoT 中樞的連線,請選取 [+ 新增連線]。 針對您先前建立的 IoT 中樞輸入連接字串,然後選取 [儲存]

  3. 在 [IoT 隨插即用設定] 頁面上,選取 [+ 新增] > [本機資料夾],然後選取您用來儲存模型檔案的本機 models 資料夾。

  4. 在 [IoT 中樞] 頁面上,按一下您想要使用的中樞名稱。 您將會看見已向 IoT 中樞註冊的裝置清單。

  5. 按一下您先前建立之裝置的裝置識別碼

  6. 左側功能表會顯示裝置可用的不同類型資訊。

  7. 選取 [IoT 隨插即用元件] 來檢視裝置的模型資訊。

  8. 您可以檢視裝置的不同元件。 預設元件和任何其他元件。 選取要使用的元件。

  9. 選取 [遙測] 頁面,然後選取 [啟動],以檢視裝置針對此元件傳送的遙測資料。

  10. 選取 [屬性 (唯讀)] 頁面,以檢視針對此元件回報的唯讀屬性。

  11. 選取 [屬性 (可寫入)] 頁面,檢視您可針對此元件更新的可寫入屬性。

  12. 名稱選取屬性、為其輸入新的值,然後選取 [更新需要的值]

  13. 若要看見新值顯示,請選取 [重新整理] 按鈕。

  14. 選取 [命令] 頁面,以檢視此元件的所有命令。

  15. 選取您想要測試的命令,並設定參數 (如果有的話)。 選取 [傳送命令],以便在裝置上呼叫命令。 在範例程式碼執行所在的命令提示字元視窗中,您可以看到您的裝置回應命令。

檢閱程式碼

此範例會實作一個簡單的 IoT 隨插即用控溫器裝置。 控溫器模型不會使用 IoT 隨插即用元件適用於控溫器裝置的 DTDL 模型檔案 \(英文\) 會定義裝置所實作的遙測、屬性和命令。

裝置程式碼會使用標準的函式連線到您的 IoT 中樞:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

裝置會在連線要求中,傳送其實作之 DTDL 模型的模型識別碼。 傳送模型識別碼的裝置是 IoT 隨插即用裝置:

static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

更新屬性、處理命令及傳送遙測資料的程式碼,與不使用 IoT 隨插即用慣例的裝置程式碼相同。

此程式碼會使用 Parson 程式庫來剖析從您的 IoT 中樞所傳送承載中的 JSON 物件:

// JSON parser
#include "parson.h"

清除資源

如果您已完成快速入門和教學課程,請參閱清除資源

此教學課程示範如何建置範例 IoT 隨插即用裝置應用程式、將其連線至 IoT 中樞,然後使用 Azure IoT 總管工具檢視其傳送的遙測資料。 範例應用程式是以 C# 撰寫而成,隨附於適用於 C# 的 Azure IoT SDK 中。 解決方案建置人員可以使用 Azure IoT 總管工具來了解 IoT 隨插即用裝置的功能,而不需檢視任何裝置程式碼。

瀏覽程式碼

必要條件

在繼續之前,請確定您已設定環境,包括您的 IoT 中樞。

您可以在 Linux 或 Windows 上執行本教學課程。 本教學課程中的殼層命令會遵循路徑分隔符號 '/' 的 Linux 慣例,如果您在 Windows 上遵循,請務必針對 '\' 交換這些分隔符號。

下載程式碼

在此教學課程中,您會準備可用來複製及建置適用於 C# 的 Azure IoT SDK 存放庫的開發環境。

在您選擇的資料夾中開啟命令提示字元。 請執行下列命令,將適用於 C# (.NET) 的 Microsoft Azure IoT SDK GitHub 存放庫複製到下列位置:

git clone  https://github.com/Azure/azure-iot-sdk-csharp

建置程式碼

您現在可以建置範例並加以執行。 執行下列命令以建置範例:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

執行裝置範例

若要執行範例,請執行下列命令:

dotnet run

裝置現在已可接收命令和屬性更新,並已開始將遙測資料傳送至中樞。 完成後續步驟後,請讓範例保持執行狀態。

使用 Azure IoT 總管來驗證程式碼

當裝置用戶端範例啟動之後,請使用 Azure IoT 總管工具來驗證其是否正確運作。

  1. 開啟 Azure IoT 檔案總管。

  2. 在 [IoT 中樞] 頁面上,如果您尚未新增與 IoT 中樞的連線,請選取 [+ 新增連線]。 針對您先前建立的 IoT 中樞輸入連接字串,然後選取 [儲存]

  3. 在 [IoT 隨插即用設定] 頁面上,選取 [+ 新增] > [本機資料夾],然後選取您用來儲存模型檔案的本機 models 資料夾。

  4. 在 [IoT 中樞] 頁面上,按一下您想要使用的中樞名稱。 您將會看見已向 IoT 中樞註冊的裝置清單。

  5. 按一下您先前建立之裝置的裝置識別碼

  6. 左側功能表會顯示裝置可用的不同類型資訊。

  7. 選取 [IoT 隨插即用元件] 來檢視裝置的模型資訊。

  8. 您可以檢視裝置的不同元件。 預設元件和任何其他元件。 選取要使用的元件。

  9. 選取 [遙測] 頁面,然後選取 [啟動],以檢視裝置針對此元件傳送的遙測資料。

  10. 選取 [屬性 (唯讀)] 頁面,以檢視針對此元件回報的唯讀屬性。

  11. 選取 [屬性 (可寫入)] 頁面,檢視您可針對此元件更新的可寫入屬性。

  12. 名稱選取屬性、為其輸入新的值,然後選取 [更新需要的值]

  13. 若要看見新值顯示,請選取 [重新整理] 按鈕。

  14. 選取 [命令] 頁面,以檢視此元件的所有命令。

  15. 選取您想要測試的命令,並設定參數 (如果有的話)。 選取 [傳送命令],以便在裝置上呼叫命令。 在範例程式碼執行所在的命令提示字元視窗中,您可以看到您的裝置回應命令。

檢閱程式碼

此範例會實作一個簡單的 IoT 隨插即用控溫器裝置。 此範例實作的模型不會使用 IoT 隨插即用元件適用於控溫器裝置的 Digital Twins 定義語言 (DTDL) 模型檔案會定義裝置所實作的遙測、屬性和命令。

裝置程式碼會使用標準 CreateFromConnectionString 方法連線到您的 IoT 中樞。 裝置會在連線要求中,傳送其實作之 DTDL 模型的模型識別碼。 傳送模型識別碼的裝置是 IoT 隨插即用裝置:

private static void InitializeDeviceClientAsync()
{
  var options = new ClientOptions
  {
    ModelId = ModelId,
  };
  s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
  s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
  {
     s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
  });
}

模型識別碼會儲存於程式碼中,如下列程式碼片段所示:

private const string ModelId = "dtmi:com:example:Thermostat;1";

更新屬性、處理命令及傳送遙測資料的程式碼,與不使用 IoT 隨插即用慣例的裝置程式碼相同。

此範例會使用 JSON 程式庫來剖析從您的 IoT 中樞傳送的承載中的 JSON 物件:

using Newtonsoft.Json;

...

DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);

清除資源

如果您已完成快速入門和教學課程,請參閱清除資源

此教學課程示範如何建置範例 IoT 隨插即用裝置應用程式、將其連線至 IoT 中樞,然後使用 Azure IoT 總管工具檢視其傳送的遙測資料。 範例應用程式是以 Java 撰寫的,並隨附於適用於 Java 的 Azure IoT 裝置 SDK 中。 解決方案建置人員可以使用 Azure IoT 總管工具來了解 IoT 隨插即用裝置的功能,而不需檢視任何裝置程式碼。

瀏覽程式碼

必要條件

在繼續之前,請確定您已設定環境,包括您的 IoT 中樞。

您可以在 Linux 或 Windows 上執行本教學課程。 本教學課程中的殼層命令會遵循路徑分隔符號 '/' 的 Linux 慣例,如果您在 Windows 上遵循,請務必針對 '\' 交換這些分隔符號。

若要完成本教學課程,請在本機開發環境中安裝下列軟體:

下載程式碼

在此教學課程中,您會準備可用來複製及建置 Azure IoT 中樞裝置 Java SDK 的開發環境。

在您選擇的目錄中開啟命令提示字元。 執行下列命令,將 Azure IoT Java SDK 和程式庫 \(英文\) GitHub 存放庫複製到此位置:

git clone https://github.com/Azure/azure-iot-sdk-java.git

建置程式碼

在所複製 JAVA SDK 存放庫中,瀏覽至控溫器範例的根資料夾,並加以建置:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

執行裝置範例

設定您的環境中,您建立了四個環境變數,以將範例設定為使用裝置佈建服務 (DPS) 來連線到您的 IoT 中樞:

  • 值為 DPSIOTHUB_DEVICE_SECURITY_TYPE
  • 使用 DPS 識別碼範圍的 IOTHUB_DEVICE_DPS_ID_SCOPE
  • 使用值 my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID
  • 使用註冊主要金鑰的 IOTHUB_DEVICE_DPS_DEVICE_KEY
  • 使用值 global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT

若要深入了解範例設定,請參閱範例讀我檔案

/device/iot-device-samples/pnp-device-sample/thermostat-device-sample 資料夾,執行應用程式:

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

裝置現在已可接收命令和屬性更新,並已開始將遙測資料傳送至中樞。 完成後續步驟後,請讓範例保持執行狀態。

使用 Azure IoT 總管來驗證程式碼

當裝置用戶端範例啟動之後,請使用 Azure IoT 總管工具來驗證其是否正確運作。

  1. 開啟 Azure IoT 檔案總管。

  2. 在 [IoT 中樞] 頁面上,如果您尚未新增與 IoT 中樞的連線,請選取 [+ 新增連線]。 針對您先前建立的 IoT 中樞輸入連接字串,然後選取 [儲存]

  3. 在 [IoT 隨插即用設定] 頁面上,選取 [+ 新增] > [本機資料夾],然後選取您用來儲存模型檔案的本機 models 資料夾。

  4. 在 [IoT 中樞] 頁面上,按一下您想要使用的中樞名稱。 您將會看見已向 IoT 中樞註冊的裝置清單。

  5. 按一下您先前建立之裝置的裝置識別碼

  6. 左側功能表會顯示裝置可用的不同類型資訊。

  7. 選取 [IoT 隨插即用元件] 來檢視裝置的模型資訊。

  8. 您可以檢視裝置的不同元件。 預設元件和任何其他元件。 選取要使用的元件。

  9. 選取 [遙測] 頁面,然後選取 [啟動],以檢視裝置針對此元件傳送的遙測資料。

  10. 選取 [屬性 (唯讀)] 頁面,以檢視針對此元件回報的唯讀屬性。

  11. 選取 [屬性 (可寫入)] 頁面,檢視您可針對此元件更新的可寫入屬性。

  12. 名稱選取屬性、為其輸入新的值,然後選取 [更新需要的值]

  13. 若要看見新值顯示,請選取 [重新整理] 按鈕。

  14. 選取 [命令] 頁面,以檢視此元件的所有命令。

  15. 選取您想要測試的命令,並設定參數 (如果有的話)。 選取 [傳送命令],以便在裝置上呼叫命令。 在範例程式碼執行所在的命令提示字元視窗中,您可以看到您的裝置回應命令。

檢閱程式碼

此範例會實作一個簡單的 IoT 隨插即用控溫器裝置。 此範例實作的模型不會使用 IoT 隨插即用元件適用於控溫器裝置的 DTDL 模型檔案 \(英文\) 會定義裝置所實作的遙測、屬性和命令。

裝置程式碼會使用標準的 DeviceClient 類別連線到您的 IoT 中樞。 裝置會在連線要求中,傳送其實作之 DTDL 模型的模型識別碼。 傳送模型識別碼的裝置是 IoT 隨插即用裝置:

private static void initializeDeviceClient() throws URISyntaxException, IOException {
    ClientOptions options = new ClientOptions();
    options.setModelId(MODEL_ID);
    deviceClient = new DeviceClient(deviceConnectionString, protocol, options);

    deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
        log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);

        if (throwable != null) {
            log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
            throwable.printStackTrace();
        }
    }, deviceClient);

    deviceClient.open();
}

模型識別碼會儲存於程式碼中,如下列程式碼片段所示:

private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";

更新屬性、處理命令及傳送遙測資料的程式碼,與不使用 IoT 隨插即用慣例的裝置程式碼相同。

此範例會使用 JSON 程式庫來剖析從您的 IoT 中樞傳送的承載中的 JSON 物件:

import com.google.gson.Gson;

...

Date since = new Gson().fromJson(jsonRequest, Date.class);

清除資源

如果您已完成快速入門和教學課程,請參閱清除資源

此教學課程示範如何建置範例 IoT 隨插即用裝置應用程式、將其連線至 IoT 中樞,然後使用 Azure IoT 總管工具檢視其傳送的遙測資料。 範例應用程式是專為 Node.js 所撰寫的,並且包含在適用於 Node.js 的 Azure IoT 裝置 SDK 中。 解決方案建置人員可以使用 Azure IoT 總管工具來了解 IoT 隨插即用裝置的功能,而不需檢視任何裝置程式碼。

瀏覽程式碼

必要條件

在繼續之前,請確定您已設定環境,包括您的 IoT 中樞。

您可以在 Linux 或 Windows 上執行本教學課程。 本教學課程中的殼層命令會遵循路徑分隔符號 '/' 的 Linux 慣例,如果您在 Windows 上遵循,請務必針對 '\' 交換這些分隔符號。

若要完成本教學課程,您的開發電腦上必須要有 Node.js。 您可以從 nodejs.org 下載多個平台的最新建議版本。

您可以使用下列命令,以確認開發電腦上目前的 Node.js 版本:

node --version

下載程式碼

您會在本教學課程中準備開發環境,以用來複製及建置適用於 Node.js 的 Azure IoT 中樞裝置 SDK。

在您選擇的目錄中開啟命令提示字元。 執行下列命令,將適用於 Node.js 的 Microsoft Azure IoT SDK GitHub 存放庫複製到下列位置:

git clone https://github.com/Azure/azure-iot-sdk-node

安裝必要的程式庫

您可以使用裝置 SDK 建置包含的範例程式碼。 您所建置的應用程式會模擬連線至 IoT 中樞的裝置。 應用程式會傳送遙測資料和屬性,並接收命令。

  1. 在本機終端機視窗中,移至您複製的存放庫資料夾,然後瀏覽至 /azure-iot-sdk-node/device/samples/javascript 資料夾。 然後執行下列命令來安裝必要的程式庫:

    npm install
    

執行範例裝置

此範例會實作一個簡單的 IoT 隨插即用控溫器裝置。 此範例實作的模型不會使用 IoT 隨插即用元件適用於控溫器裝置的 DTDL 模型檔案 \(英文\) 會定義裝置所實作的遙測、屬性和命令。

開啟 pnp_simple_thermostat.js 檔案。 在此檔案中,您可以了解如何:

  1. 匯入必要的介面。
  2. 撰寫屬性更新處理常式和命令處理常式。
  3. 處理所需的屬性修補程式並傳送遙測。
  4. 選擇性地使用 Azure 裝置佈建服務 (DPS) 佈建您的裝置。

在 main 函式中,您可以看到其如何彙整在一起:

  1. 從您的連接字串建立裝置,或使用 DPS 進行佈建。)
  2. 使用 modelID 選項來指定 IoT 隨插即用裝置模型。
  3. 啟用命令處理常式。
  4. 將遙測資料從裝置傳送到您的中樞。
  5. 取得裝置對應項,並更新報告的屬性。
  6. 啟用所需的屬性更新處理常式。

設定您的環境中,您建立了四個環境變數,以將範例設定為使用裝置佈建服務 (DPS) 來連線到您的 IoT 中樞:

  • 值為 DPSIOTHUB_DEVICE_SECURITY_TYPE
  • 使用 DPS 識別碼範圍的 IOTHUB_DEVICE_DPS_ID_SCOPE
  • 使用值 my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID
  • 使用註冊主要金鑰的 IOTHUB_DEVICE_DPS_DEVICE_KEY
  • 使用值 global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT

若要深入了解範例設定,請參閱範例讀我檔案

執行範例應用程式,以模擬將遙測傳送到 IoT 中樞的 IoT 隨插即用裝置。 若要執行範例應用程式,請使用下列命令:

node pnp_simple_thermostat.js

您會看到下列輸出,這表示裝置已開始將遙測資料傳送至中樞,且已可接收命令和屬性更新。

裝置確認訊息

完成後續步驟後,請讓範例保持執行狀態。

使用 Azure IoT 總管來驗證程式碼

當裝置用戶端範例啟動之後,請使用 Azure IoT 總管工具來驗證其是否正確運作。

  1. 開啟 Azure IoT 檔案總管。

  2. 在 [IoT 中樞] 頁面上,如果您尚未新增與 IoT 中樞的連線,請選取 [+ 新增連線]。 針對您先前建立的 IoT 中樞輸入連接字串,然後選取 [儲存]

  3. 在 [IoT 隨插即用設定] 頁面上,選取 [+ 新增] > [本機資料夾],然後選取您用來儲存模型檔案的本機 models 資料夾。

  4. 在 [IoT 中樞] 頁面上,按一下您想要使用的中樞名稱。 您將會看見已向 IoT 中樞註冊的裝置清單。

  5. 按一下您先前建立之裝置的裝置識別碼

  6. 左側功能表會顯示裝置可用的不同類型資訊。

  7. 選取 [IoT 隨插即用元件] 來檢視裝置的模型資訊。

  8. 您可以檢視裝置的不同元件。 預設元件和任何其他元件。 選取要使用的元件。

  9. 選取 [遙測] 頁面,然後選取 [啟動],以檢視裝置針對此元件傳送的遙測資料。

  10. 選取 [屬性 (唯讀)] 頁面,以檢視針對此元件回報的唯讀屬性。

  11. 選取 [屬性 (可寫入)] 頁面,檢視您可針對此元件更新的可寫入屬性。

  12. 名稱選取屬性、為其輸入新的值,然後選取 [更新需要的值]

  13. 若要看見新值顯示,請選取 [重新整理] 按鈕。

  14. 選取 [命令] 頁面,以檢視此元件的所有命令。

  15. 選取您想要測試的命令,並設定參數 (如果有的話)。 選取 [傳送命令],以便在裝置上呼叫命令。 在範例程式碼執行所在的命令提示字元視窗中,您可以看到您的裝置回應命令。

清除資源

如果您已完成快速入門和教學課程,請參閱清除資源

此教學課程示範如何建置範例 IoT 隨插即用裝置應用程式、將其連線至 IoT 中樞,然後使用 Azure IoT 總管工具檢視其傳送的遙測資料。 範例應用程式是以 Python 撰寫的,並隨附於適用於 Python 的 Azure IoT 中樞裝置 SDK 中。 解決方案建置人員可以使用 Azure IoT 總管工具來了解 IoT 隨插即用裝置的功能,而不需檢視任何裝置程式碼。

瀏覽程式碼

必要條件

在繼續之前,請確定您已設定環境,包括您的 IoT 中樞。

若要完成本教學課程,您必須在開發機器上安裝 Python。 如需目前的 Python 版本需求,請查看 Azure IoT Python SDK (英文)。 您可以使用下列命令來檢查 Python 版本:

python --version

您可以從 python.org \(英文\) 下載適用於多個平台的最新建議版本。

在本機 Python 環境中安裝套件,如下所示:

pip install azure-iot-device

複製 Python SDK IoT 存放庫:

git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python

執行範例裝置

azure-iot-sdk-python/samples/pnp 資料夾包含適用於 IoT 隨插即用裝置的範例程式碼。 本教學課程使用 simple_thermostat.py 檔案。 此範例程式碼會實作與 IoT 隨插即用相容的裝置,並使用 Azure IoT Python 裝置用戶端程式庫。

在文字編輯器中開啟 simple_thermostat.py 檔案。 請注意該檔案如何:

  1. 定義唯一代表控溫器的單一裝置對應項模型識別碼 (DTMI)。 使用者必須知道 DTMI,並取決於裝置實作的案例。 針對目前的範例,此模型代表控溫器,具有與監視溫度相關聯的遙測、屬性和命令。

  2. 具有函式可定義命令處理常式實作。 您可以撰寫這些處理常式來定義裝置回應命令要求的方式。

  3. 具有函式可定義命令回應。 您會建立命令回應函式,以將回應傳回給您的 IoT 中樞。

  4. 定義輸入鍵盤接聽程式函式以讓您結束應用程式。

  5. 具有 main 函式。 main 函式:

    1. 使用裝置 SDK 來建立裝置用戶端,並連線到您的 IoT 中樞。

    2. 更新屬性。 控溫器模型將 targetTemperaturemaxTempSinceLastReboot 定義為控溫器的兩個屬性。 屬性會使用 device_client 上定義的 patch_twin_reported_properties 方法進行更新。

    3. 使用 execute_command_listener 函式開始接聽命令要求。 此函式會針對來自服務的命令設定接聽程式進行接聽。 設定接聽程式時,您會提供 method_nameuser_command_handlercreate_user_response_handler

      • user_command_handler 函式會定義裝置收到命令時應執行的動作。
      • create_user_response_handler 函式會建立要在命令成功執行時傳送至 IoT 中樞的回應。 您可以在入口網站中檢視此回應。
    4. 開始傳送遙測。 pnp_send_telemetry 是在 pnp_methods.py 檔案中定義。 範例程式碼會使用迴圈,每 8 秒呼叫此函式。

    5. 停用所有接聽程式和工作,並且在您按下 Qq 時結束迴圈。

設定您的環境中,您建立了四個環境變數,以將範例設定為使用裝置佈建服務 (DPS) 來連線到您的 IoT 中樞:

  • 值為 DPSIOTHUB_DEVICE_SECURITY_TYPE
  • 使用 DPS 識別碼範圍的 IOTHUB_DEVICE_DPS_ID_SCOPE
  • 使用值 my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID
  • 使用註冊主要金鑰的 IOTHUB_DEVICE_DPS_DEVICE_KEY
  • 使用值 global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT

若要深入了解範例設定,請參閱範例讀我檔案

現在您已看過程式碼,請使用下列命令來執行範例:

python simple_thermostat.py

您會看到下列輸出,這表示裝置正在將遙測資料傳送至中樞,且現在已可接收命令和屬性更新:

Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message

完成後續步驟後,請讓範例保持執行狀態。

使用 Azure IoT 總管來驗證程式碼

當裝置用戶端範例啟動之後,請使用 Azure IoT 總管工具來驗證其是否正確運作。

  1. 開啟 Azure IoT 檔案總管。

  2. 在 [IoT 中樞] 頁面上,如果您尚未新增與 IoT 中樞的連線,請選取 [+ 新增連線]。 針對您先前建立的 IoT 中樞輸入連接字串,然後選取 [儲存]

  3. 在 [IoT 隨插即用設定] 頁面上,選取 [+ 新增] > [本機資料夾],然後選取您用來儲存模型檔案的本機 models 資料夾。

  4. 在 [IoT 中樞] 頁面上,按一下您想要使用的中樞名稱。 您將會看見已向 IoT 中樞註冊的裝置清單。

  5. 按一下您先前建立之裝置的裝置識別碼

  6. 左側功能表會顯示裝置可用的不同類型資訊。

  7. 選取 [IoT 隨插即用元件] 來檢視裝置的模型資訊。

  8. 您可以檢視裝置的不同元件。 預設元件和任何其他元件。 選取要使用的元件。

  9. 選取 [遙測] 頁面,然後選取 [啟動],以檢視裝置針對此元件傳送的遙測資料。

  10. 選取 [屬性 (唯讀)] 頁面,以檢視針對此元件回報的唯讀屬性。

  11. 選取 [屬性 (可寫入)] 頁面,檢視您可針對此元件更新的可寫入屬性。

  12. 名稱選取屬性、為其輸入新的值,然後選取 [更新需要的值]

  13. 若要看見新值顯示,請選取 [重新整理] 按鈕。

  14. 選取 [命令] 頁面,以檢視此元件的所有命令。

  15. 選取您想要測試的命令,並設定參數 (如果有的話)。 選取 [傳送命令],以便在裝置上呼叫命令。 在範例程式碼執行所在的命令提示字元視窗中,您可以看到您的裝置回應命令。

清除資源

如果您已完成快速入門和教學課程,請參閱清除資源

如果要開發「受限裝置」,則可以使用 IoT 隨插即用搭配以下項目:

本文包含這些受限案例的連結和資源。

必要條件

下列許多範例都需要特定的硬體裝置,而且每個範例的必要條件都不同。 請遵循相關範例的連結以取得詳細的必要條件、設定和建置指示。

使用適用於內嵌 C 的 SDK

適用於內嵌 C 的 SDK 提供輕量型解決方案,包括使用 IoT 隨插即用慣例,以將受限裝置連線至 Azure IoT 服務。 下列連結包含 MCU 型裝置的範例,可作為教育及偵錯之用。

使用 MCU 型裝置

如需使用適用於內嵌 C 的 SDK、裝置佈建服務和 MCU 上 IoT 隨插即用的完整端對端教學課程,請參閱重新規劃 PIC-IoT Wx 開發面,以透過 IoT 中樞裝置佈建服務連線至 Azure

簡介範例

適用於內嵌 C 的 SDK 存放庫包含數個範例,示範如何使用 IoT 隨插即用:

注意

這些範例會示範在 Windows 和 Linux 上執行,作為教育及偵錯之用。 在生產案例中,範例僅適用於受限裝置。

使用 Eclipse ThreadX

Eclipse ThreadX 包含輕量層,可將原生連線新增至 Azure IoT 雲端服務。 此層提供簡單的機制,可在使用 Eclipse ThreadX 的進階功能時,將限制裝置連線到 Azure IoT。 若要深入瞭解,請參閱 Eclipse ThreadX 概觀

工具鏈

Eclipse ThreadX 範例會提供不同類型的 IDE 和工具鏈組合,例如:

範例

下表列出示範如何使用 Eclipse ThreadX 和 IoT 隨插即用 在不同的裝置上開始使用的範例:

製造商 裝置 範例
Microchip ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

下一步

在本教學課程中,您已了解如何將 IoT 隨插即用裝置連線至 IoT 中樞。 若要深入了解如何建置與 IoT 隨插即用裝置互動的解決方案,請參閱: