教學課程:連線 在 Linux 或 Windows 上執行的範例 IoT 隨插即用 裝置應用程式,以 IoT 中樞
本教學課程說明如何建置範例 IoT 隨插即用 裝置應用程式、將其連線至IoT中樞,以及使用 Azure IoT 託管工具來檢視其傳送的遙測。 範例應用程式是以 C 撰寫,並包含在適用於 C 的 Azure IoT 裝置 SDK 中。解決方案建置者可以使用 Azure IoT 總管工具來瞭解 IoT 隨插即用 裝置的功能,而不需要檢視任何裝置程式代碼。
必要條件
繼續之前,請確定您已 設定環境,包括IoT中樞。
您可以在 Linux 或 Windows 上執行本教學課程。 本教學課程中的殼層命令會遵循路徑分隔符 『/
』的 Linux 慣例,如果您遵循 Windows 上的命令,請務必將這些分隔符交換為 『\
』。
必要條件與作業系統不同:
Linux
本教學課程假設您使用UbuntuLinux。 本教學課程中的步驟已使用Ubuntu18.04進行測試。
若要在Linux上完成本教學課程,請在本機Linux環境中安裝下列軟體:
使用 命令安裝 GCC、 Git、 cmake 和所有必要的相依 apt-get
性:
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 環境中安裝下列軟體:
- Visual Studio (Community、Professional 或 Enterprise) - 當您安裝 Visual Studio 時,請務必包含使用 C++ 進行桌面開發工作負載。
- Git。
- CMake。
下載程式碼
在本教學課程中,您會準備可用來複製和建置 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
開啟複製存放庫的根資料夾。 在幾秒鐘之後, Visual Studio 中的 CMake 支援會建立執行和偵錯專案所需的所有專案。
當 Visual Studio 就緒時,在 方案總管 中,流覽至範例 iothub_client/samples/pnp/pnp_simple_thermostat/。
以滑鼠右鍵按兩下 pnp_simple_thermostat.c 檔案,然後選取 [新增偵錯組態]。 選取 [預設值]。
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>" } } ] }
以滑鼠右鍵按兩下 pnp_simple_thermostat.c 檔案,然後選取 [ 設定為啟始專案]。
若要追蹤 Visual Studio 中的程式碼執行,請將斷點新增至
main
pnp_simple_thermostat.c 檔案中的 函式。您現在可以從 [ 偵 錯] 功能表執行和偵錯範例。
裝置現在已準備好接收命令和屬性更新,並開始將遙測數據傳送至中樞。 當您完成後續步驟時,請讓範例保持執行。
使用 cmake 建置程式代碼
您可以使用 cmake 命令列公用程式來建置程式代碼:
在裝置 SDK 的根資料夾中建立 cmake 子目錄,並瀏覽至該資料夾:
cd azure-iot-sdk-c mkdir cmake cd cmake
執行下列命令來建置 SDK 和範例:
cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF .. cmake --build .
執行裝置範例
在 [設定您的環境] 中,您已建立四個環境變數來設定範例,以使用裝置布建服務 (DPS) 連線到 IoT 中樞:
- 具有 值的IOTHUB_DEVICE_SECURITY_TYPE
DPS
- 具有 DPS 識別碼範圍的IOTHUB_DEVICE_DPS_ID_SCOPE 。
- IOTHUB_DEVICE_DPS_DEVICE_ID 值
my-pnp-device
。 - 使用註冊主鍵IOTHUB_DEVICE_DPS_DEVICE_KEY。
- IOTHUB_DEVICE_DPS_ENDPOINT 值
global.azure-devices-provisioning.net
。
若要深入瞭解範例組態,請參閱 範例自述檔。
若要在 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 中的程式代碼執行,請將斷點新增至 main
pnp_simple_thermostat.c 檔案中的 函式。
裝置現在已準備好接收命令和屬性更新,並開始將遙測數據傳送至中樞。 當您完成後續步驟時,請讓範例保持執行。
使用 Azure IoT 總管來驗證程式代碼
裝置用戶端範例啟動之後,請使用 Azure IoT 總管工具來確認其運作正常。
開啟 Azure IoT 總管。
在 [ IoT 中樞] 頁面上,如果您尚未將連線新增至 IoT 中樞,請選取 [+ 新增連線]。 輸入您先前建立的IoT中樞 連接字串,然後選取 [儲存]。
在 [IoT 隨插即用 設定] 頁面上,選取 [+ 新增>本機] 資料夾,然後選取您儲存模型檔案的本機 models 資料夾。
在 [ IoT 中樞] 頁面上,按下您要使用中樞的名稱。 您會看到已註冊至IoT中樞的裝置清單。
按兩下 您先前建立之裝置的 [裝置 標識符]。
左側功能表會顯示適用於裝置的不同信息類型。
選取 IoT 隨插即用元件,以檢視裝置的模型資訊。
您可以檢視裝置的不同元件。 默認元件和任何額外的元件。 選取要使用的元件。
選取 [ 遙測 ] 頁面,然後選取 [ 開始 ] 以檢視裝置為此元件傳送的遙測數據。
選取 [ 屬性] [只讀] 頁面,以檢視針對此元件報告的只讀屬性。
選取 [ 屬性] 頁面,以檢視您可以為此元件更新的可寫入 屬性。
依其 名稱選取屬性、輸入新值,然後選取 [ 更新所需的值]。
若要查看新的值,請選取 [ 重新 整理] 按鈕。
選取 [ 命令] 頁面以檢視此元件的所有命令。
選取您想要測試的命令,如果有的話,請設定 參數。 選取 [ 傳送] 命令 以呼叫裝置上的命令。 您可以在執行範例程式代碼的命令提示字元視窗中看到您的裝置回應命令。
檢閱程式碼
此範例會實作簡單的 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 存放庫的開發環境。
在您選擇的資料夾開啟命令提示字元。 執行下列命令, 將 Microsoft Azure IoT SDK for C# (.NET) 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 總管工具來確認其運作正常。
開啟 Azure IoT 總管。
在 [ IoT 中樞] 頁面上,如果您尚未將連線新增至 IoT 中樞,請選取 [+ 新增連線]。 輸入您先前建立的IoT中樞 連接字串,然後選取 [儲存]。
在 [IoT 隨插即用 設定] 頁面上,選取 [+ 新增>本機] 資料夾,然後選取您儲存模型檔案的本機 models 資料夾。
在 [ IoT 中樞] 頁面上,按下您要使用中樞的名稱。 您會看到已註冊至IoT中樞的裝置清單。
按兩下 您先前建立之裝置的 [裝置 標識符]。
左側功能表會顯示適用於裝置的不同信息類型。
選取 [IoT 隨插即用元件],以檢視裝置的模型資訊。
您可以檢視裝置的不同元件。 默認元件和任何額外的元件。 選取要使用的元件。
選取 [ 遙測 ] 頁面,然後選取 [ 開始 ] 以檢視裝置為此元件傳送的遙測數據。
選取 [ 屬性] [只讀] 頁面,以檢視針對此元件報告的只讀屬性。
選取 [ 屬性] 頁面,以檢視您可以為此元件更新的可寫入 屬性。
依其 名稱選取屬性、輸入新值,然後選取 [ 更新所需的值]。
若要查看新的值,請選取 [ 重新 整理] 按鈕。
選取 [ 命令] 頁面以檢視此元件的所有命令。
選取您想要測試的命令,如果有的話,請設定 參數。 選取 [ 傳送] 命令 以呼叫裝置上的命令。 您可以在執行範例程式代碼的命令提示字元視窗中看到您的裝置回應命令。
檢閱程式碼
此範例會實作簡單的 IoT 隨插即用 控溫器裝置。 此範例實作的模型不會使用 IoT 隨插即用元件。 控溫器裝置的數字對應項定義語言 (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 中樞 Device 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 中樞:
- 具有 值的IOTHUB_DEVICE_SECURITY_TYPE
DPS
- 具有 DPS 識別碼範圍的IOTHUB_DEVICE_DPS_ID_SCOPE 。
- IOTHUB_DEVICE_DPS_DEVICE_ID 值
my-pnp-device
。 - 使用註冊主鍵IOTHUB_DEVICE_DPS_DEVICE_KEY。
- IOTHUB_DEVICE_DPS_ENDPOINT 值
global.azure-devices-provisioning.net
。
若要深入瞭解範例組態,請參閱 範例自述檔。
從 /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 總管工具來確認其運作正常。
開啟 Azure IoT 總管。
在 [ IoT 中樞] 頁面上,如果您尚未將連線新增至 IoT 中樞,請選取 [+ 新增連線]。 輸入您先前建立的IoT中樞 連接字串,然後選取 [儲存]。
在 [IoT 隨插即用 設定] 頁面上,選取 [+ 新增>本機] 資料夾,然後選取您儲存模型檔案的本機 models 資料夾。
在 [ IoT 中樞] 頁面上,按下您要使用中樞的名稱。 您會看到已註冊至IoT中樞的裝置清單。
按兩下 您先前建立之裝置的 [裝置 標識符]。
左側功能表會顯示適用於裝置的不同信息類型。
選取 [IoT 隨插即用元件],以檢視裝置的模型資訊。
您可以檢視裝置的不同元件。 默認元件和任何額外的元件。 選取要使用的元件。
選取 [ 遙測 ] 頁面,然後選取 [ 開始 ] 以檢視裝置為此元件傳送的遙測數據。
選取 [ 屬性] [只讀] 頁面,以檢視針對此元件報告的只讀屬性。
選取 [ 屬性] 頁面,以檢視您可以為此元件更新的可寫入 屬性。
依其 名稱選取屬性、輸入新值,然後選取 [ 更新所需的值]。
若要查看新的值,請選取 [ 重新 整理] 按鈕。
選取 [ 命令] 頁面以檢視此元件的所有命令。
選取您想要測試的命令,如果有的話,請設定 參數。 選取 [ 傳送] 命令 以呼叫裝置上的命令。 您可以在執行範例程式代碼的命令提示字元視窗中看到您的裝置回應命令。
檢閱程式碼
此範例會實作簡單的 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
下載程式碼
在本教學課程中,您會準備開發環境,以用來複製和建置 Azure IoT 中樞 Device SDK for Node.js。
在您選擇的目錄中開啟命令提示字元。 執行下列命令,將適用於 Node.js GitHub 存放庫的 Microsoft Azure IoT SDK 複製到此位置:
git clone https://github.com/Azure/azure-iot-sdk-node
安裝必要的連結庫
您可以使用裝置 SDK 來建置包含的範例程式代碼。 您建置的應用程式會模擬連線到 IoT 中樞的裝置。 應用程式會傳送遙測和屬性,並接收命令。
在本機終端機視窗中,移至您複製存放庫的資料夾,並流覽至 /azure-iot-sdk-node/device/samples/javascript 資料夾。 然後執行下列命令以安裝必要的連結庫:
npm install
執行範例裝置
此範例會實作簡單的 IoT 隨插即用 控溫器裝置。 此範例實作的模型不會使用 IoT 隨插即用元件。 控溫器裝置的 DTDL 模型檔案會定義裝置所實作的遙測、屬性和命令。
開啟pnp_simple_thermostat.js檔案。 在此檔案中,您可以看到如何:
- 匯入必要的介面。
- 撰寫屬性更新處理程式和命令處理程式。
- 處理所需的屬性修補程式並傳送遙測。
- 選擇性地使用 Azure 裝置布建服務 (DPS) 布建您的裝置。
在 main 函式中,您可以看到這一切如何結合在一起:
- 從您的 連接字串 建立裝置,或使用 DPS 加以布建。
- 使用modelID選項來指定 IoT 隨插即用裝置型號。
- 啟用命令處理程式。
- 將遙測從裝置傳送至中樞。
- 取得裝置對應項並更新報告的屬性。
- 啟用所需的屬性更新處理程式。
在 [設定您的環境] 中,您已建立四個環境變數來設定範例,以使用裝置布建服務 (DPS) 連線到 IoT 中樞:
- 具有 值的IOTHUB_DEVICE_SECURITY_TYPE
DPS
- 具有 DPS 識別碼範圍的IOTHUB_DEVICE_DPS_ID_SCOPE 。
- IOTHUB_DEVICE_DPS_DEVICE_ID 值
my-pnp-device
。 - 使用註冊主鍵IOTHUB_DEVICE_DPS_DEVICE_KEY。
- IOTHUB_DEVICE_DPS_ENDPOINT 值
global.azure-devices-provisioning.net
。
若要深入瞭解範例組態,請參閱 範例自述檔。
執行範例應用程式來模擬將遙測傳送至IoT中樞的 IoT 隨插即用裝置。 若要執行範例應用程式,請使用下列命令:
node pnp_simple_thermostat.js
您會看到下列輸出,指出裝置已開始將遙測數據傳送至中樞,現在已準備好接收命令和屬性更新。
當您完成後續步驟時,請讓範例保持執行。
使用 Azure IoT 總管來驗證程式代碼
裝置用戶端範例啟動之後,請使用 Azure IoT 總管工具來確認其運作正常。
開啟 Azure IoT 總管。
在 [ IoT 中樞] 頁面上,如果您尚未將連線新增至 IoT 中樞,請選取 [+ 新增連線]。 輸入您先前建立的IoT中樞 連接字串,然後選取 [儲存]。
在 [IoT 隨插即用 設定] 頁面上,選取 [+ 新增>本機] 資料夾,然後選取您儲存模型檔案的本機 models 資料夾。
在 [ IoT 中樞] 頁面上,按下您要使用中樞的名稱。 您會看到已註冊至IoT中樞的裝置清單。
按兩下 您先前建立之裝置的 [裝置 標識符]。
左側功能表會顯示適用於裝置的不同信息類型。
選取 [IoT 隨插即用元件] 以檢視裝置的模型資訊。
您可以檢視裝置的不同元件。 默認元件和任何額外的元件。 選取要使用的元件。
選取 [ 遙測 ] 頁面,然後選取 [ 開始 ] 以檢視裝置為此元件傳送的遙測數據。
選取 [ 屬性] [只讀] 頁面,以檢視針對此元件報告的只讀屬性。
選取 [ 屬性] 頁面,以檢視您可以為此元件更新的可寫入 屬性。
依其 名稱選取屬性、輸入新值,然後選取 [ 更新所需的值]。
若要查看新的值,請選取 [ 重新 整理] 按鈕。
選取 [ 命令] 頁面以檢視此元件的所有命令。
選取您想要測試的命令,如果有的話,請設定 參數。 選取 [ 傳送] 命令 以呼叫裝置上的命令。 您可以在執行範例程式代碼的命令提示字元視窗中看到您的裝置回應命令。
清除資源
如果您已完成快速入門和教學課程,請參閱 清除資源。
本教學課程說明如何建置範例 IoT 隨插即用 裝置應用程式、將其連線至IoT中樞,以及使用 Azure IoT 託管工具來檢視其傳送的遙測。 範例應用程式是針對 Python 撰寫,並包含在適用於 Python 的 Azure IoT 中樞 Device SDK 中。 解決方案產生器可以使用 Azure IoT 總管工具來瞭解 IoT 隨插即用 裝置的功能,而不需要檢視任何裝置程式代碼。
必要條件
繼續之前,請確定您已 設定環境,包括IoT中樞。
若要完成本教學課程,您需要在開發計算機上安裝 Python。 請查看 Azure IoT Python SDK 以取得目前的 Python 版本需求。 您可以使用下列命令來檢查 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 檔案。 請注意它的方式:
定義唯一代表 控溫器的單一裝置對應項模型標識碼 (DTMI)。 用戶必須知道 DTMI,而且會因裝置實作的案例而有所不同。 針對目前的範例,模型代表具有與監視溫度相關聯的遙測、屬性和命令的控溫器。
具有可定義命令處理程序實作的函式。 您可以撰寫這些處理程式來定義裝置如何回應命令要求。
具有可定義命令回應的函式。 您可以建立命令回應函式,將回應傳回IoT中樞。
定義輸入鍵盤接聽程式函式,讓您結束應用程式。
具有main函式。 main 函式:
使用裝置 SDK 來建立裝置用戶端,並連線到 IoT 中樞。
更新 屬性。 控溫器模型會
targetTemperature
定義 和maxTempSinceLastReboot
作為控溫器的兩個屬性。 屬性會使用patch_twin_reported_properties
上device_client
定義的 方法來更新。使用 execute_command_listener 函式開始接聽命令要求。 函式會設定 「接聽程式」以接聽來自服務的命令。 當您設定接聽程式時,您會提供
method_name
、user_command_handler
和create_user_response_handler
。- 函
user_command_handler
式會定義裝置在收到命令時應該執行的動作。 - 函
create_user_response_handler
式會在命令成功執行時,建立要傳送至IoT中樞的回應。 您可以在入口網站中檢視此回應。
- 函
開始傳送遙測。 pnp_send_telemetry定義於 pnp_methods.py 檔案中。 範例程式代碼會使用迴圈每隔八秒呼叫此函式。
停用所有接聽程式和工作,並在您按下 Q 或 q 時存在迴圈。
在 [設定您的環境] 中,您已建立四個環境變數來設定範例,以使用裝置布建服務 (DPS) 連線到 IoT 中樞:
- 具有 值的IOTHUB_DEVICE_SECURITY_TYPE
DPS
- 具有 DPS 識別碼範圍的IOTHUB_DEVICE_DPS_ID_SCOPE 。
- IOTHUB_DEVICE_DPS_DEVICE_ID 值
my-pnp-device
。 - 使用註冊主鍵IOTHUB_DEVICE_DPS_DEVICE_KEY。
- IOTHUB_DEVICE_DPS_ENDPOINT 值
global.azure-devices-provisioning.net
。
若要深入瞭解範例組態,請參閱 範例自述檔。
既然您已看到程式代碼,請使用下列命令來執行範例:
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 總管工具來確認其運作正常。
開啟 Azure IoT 總管。
在 [ IoT 中樞] 頁面上,如果您尚未將連線新增至 IoT 中樞,請選取 [+ 新增連線]。 輸入您先前建立的IoT中樞 連接字串,然後選取 [儲存]。
在 [IoT 隨插即用 設定] 頁面上,選取 [+ 新增>本機] 資料夾,然後選取您儲存模型檔案的本機 models 資料夾。
在 [ IoT 中樞] 頁面上,按下您要使用中樞的名稱。 您會看到已註冊至IoT中樞的裝置清單。
按兩下 您先前建立之裝置的 [裝置 標識符]。
左側功能表會顯示適用於裝置的不同信息類型。
選取 [IoT 隨插即用元件],以檢視裝置的模型資訊。
您可以檢視裝置的不同元件。 默認元件和任何額外的元件。 選取要使用的元件。
選取 [ 遙測 ] 頁面,然後選取 [ 開始 ] 以檢視裝置為此元件傳送的遙測數據。
選取 [ 屬性] [只讀] 頁面,以檢視針對此元件報告的只讀屬性。
選取 [ 屬性] 頁面,以檢視您可以為此元件更新的可寫入 屬性。
依其 名稱選取屬性、輸入新值,然後選取 [ 更新所需的值]。
若要查看新的值,請選取 [ 重新 整理] 按鈕。
選取 [ 命令] 頁面以檢視此元件的所有命令。
選取您想要測試的命令,如果有的話,請設定 參數。 選取 [ 傳送] 命令 以呼叫裝置上的命令。 您可以在執行範例程式代碼的命令提示字元視窗中看到您的裝置回應命令。
清除資源
如果您已完成快速入門和教學課程,請參閱 清除資源。
如果您要針對受限制的裝置進行開發,您可以使用 IoT 隨插即用 搭配:
- 適用於內嵌 C IoT 用戶端連結庫的 Azure SDK。
- Eclipse ThreadX..
本文包含這些限制案例的鏈接和資源。
必要條件
下列許多範例都需要特定的硬體裝置,而且每個範例的必要條件都不同。 請遵循相關範例的連結,以取得詳細的必要條件、組態和建置指示。
使用 SDK for Embedded C
SDK for Embedded C 提供輕量型解決方案,將受限裝置連線到 Azure IoT 服務,包括使用 IoT 隨插即用 慣例。 下列連結包含 MCU 型裝置的範例,以及用於教育和偵錯用途。
使用 MCU 型裝置
如需使用 SDK for Embedded C、裝置布建服務和 MCU 上的 IoT 隨插即用 的完整端對端教學課程,請參閱透過 IoT 中樞 裝置佈建服務重新規劃 PIC-IoT Wx 開發面板以 連線 至 Azure。
簡介範例
SDK for Embedded C 存放庫包含數個範例,示範如何使用 IoT 隨插即用:
注意
這些範例會顯示在 Windows 和 Linux 上執行,以供教育及偵錯之用。 在生產案例中,範例僅適用於受限制的裝置。
使用 Eclipse ThreadX
Eclipse ThreadX 包含輕量層,可將原生連線新增至 Azure IoT 雲端服務。 此層提供簡單的機制,可在使用 Eclipse ThreadX 的進階功能時,將限制裝置連線到 Azure IoT。 若要深入瞭解,請參閱 Eclipse ThreadX 概觀。
工具鏈
Eclipse ThreadX 範例會提供不同類型的 IDE 和工具鏈組合,例如:
- IAR:IAR 的 Embedded Workbench IDE
- GCC/CMake:建置在開放原始碼 CMake 建置系統和 GNU Arm Embedded 工具鏈之上。
- MCUExpresso:MCU 的 MCUXpresso IDE
- STM32Cube:STMicroelectronics 的 STM32Cube IDE
- MPLAB:Microchip 的 MPLAB X IDE
範例
下表列出範例,示範如何使用 Eclipse ThreadX 和 IoT 隨插即用 在不同的裝置上開始使用:
製造商 | 裝置 | 範例 |
---|---|---|
晶片 | ATSAME54-XPRO | GCC/CMake • IAR • MPLAB |
MXCHIP | AZ3166 | GCC/CMake |
恩智浦 | MIMXRT1060-EVK | GCC/CMake • IAR • MCUXpresso |
STMicroelectronics | 32F746GDISCOVERY | IAR • STM32Cube |
STMicroelectronics | B-L475E-IOT01 | GCC/CMake • IAR • STM32Cube |
STMicroelectronics | B-L4S5I-IOT01 | GCC/CMake • IAR • STM32Cube |
下一步
在本教學課程中,您已瞭解如何將 IoT 隨插即用 裝置連線到IoT中樞。 若要深入瞭解如何建置與 IoT 隨插即用 裝置互動的解決方案,請參閱: