教學課程:將遙測從 IoT 隨插即用 裝置傳送至 Azure IoT 中樞
在本快速入門中,您將了解基本的 Azure IoT 應用程式開發工作流程。 您可以使用 Azure CLI 和 IoT 總管來建立 Azure IoT 中樞和裝置。 然後使用 Azure IoT 裝置 SDK 範例來執行溫度控制器、安全地連線至中樞,以及傳送遙測。 溫度控制器範例應用程式會在本機電腦上執行,並產生模擬的感應器資料以傳送至 IoT 中樞。
必要條件
本快速入門可在 Windows、Linux 和 Raspberry Pi 上執行, 並經過下列作業系統和裝置版本的測試:
- Windows 10
- Ubuntu 20.04 LTS
- Raspberry Pi OS (Raspbian) 第 10 版,在 Raspberry Pi 3 模型 B+ 上執行
在您的開發電腦上安裝下列必要條件,但 Raspberry Pi 所指出的情況除外:
- 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶。
- Git。
- Azure IoT 總管:跨平台、GUI 型公用程式,用來監視和管理 Azure IoT。 如果您使用 Raspberry Pi 作為開發平台,建議您在另一部電腦上安裝 IoT 總管。 如果您不想安裝 IoT 總管,則可以使用 Azure CLI 來執行相同的步驟。
- Azure CLI。 在本快速入門中,您有兩個選項可用來執行 Azure CLI 命令:
- 使用 Azure Cloud Shell,這是一種在瀏覽器中執行 CLI 命令的互動式 shell。 建議使用此選項,因為您不需要安裝任何項目。 如果您是第一次使用 Cloud Shell,請登入 Azure 入口網站。 請遵循開始使用 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
命令,安裝 GCC、Git、CMake 和必要的相依性:
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++ 開發所需的元件。
- 若為新使用者,請安裝 Visual Studio (Community、Professional 或 Enterprise) 2022。 下載您要安裝的版本,然後啟動安裝程式。
注意
若為現有的 Visual Studio 2022 使用者,請選取 Windows 的 [開始]、輸入 Visual Studio 安裝程式、執行安裝程式,然後選取 [修改]。
- 在安裝程式的 [工作負載] 索引標籤中,選取 [使用 C++ 的桌面開發] 工作負載。
- 執行安裝。
建立 IoT 中樞
在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。
若要建立 IoT 中樞和資源群組:
啟動 Azure CLI:
- 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell。
- 如果您在本機使用 Azure CLI,請開啟 Windows CMD、PowerShell 或 Bash 等主控台,然後登入 Azure CLI。
若要在此快速入門的其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 Cloud Shell 視窗或 CLI 主控台,然後編輯變數值,再按 Enter。
執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。
az extension add --upgrade --name azure-iot
執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。
注意
您可以選擇性地設定替代位置。 若要查看可用位置,請執行
az account list-locations
。 本教學課程使用 eastus,如範例命令所示。az group create --name MyResourceGroup --location eastus
使用 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 Explorer 是一種 GUI 應用程式,可讓您連線至現有 IoT 中樞,以及新增、管理和監視裝置。 如需詳細資訊,請參閱安裝和使用 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 中樞的連線:
執行 az iot hub connection-string show 命令,以取得 IoT 中樞的連接字串。
az iot hub connection-string show --hub-name {YourIoTHubName}
複製連接字串,而不使用環繞的引號字元。
在 Azure IoT 總管中,選取左側功能表上的 [IoT 中樞],然後選取 [+ 新增連線]。
將連接字串貼到 [連接字串] 方塊中。
選取 [儲存]。
如果連線成功,IoT 總管會切換至 [裝置] 檢視。
若要新增公用模型存放庫:
在 IoT 總管中,選取 [首頁] 以返回首頁檢視。
在左側功能表上,選取 [IoT 隨插即用設定],然後從下拉功能表中選取 [+新增],然後選取 [公用存放庫]。
公用模型存放庫的項目會出現在
https://devicemodels.azure.com
。選取 [儲存]。
註冊裝置
您會在本節中建立新的裝置執行個體,並將其註冊到所建立的 IoT 中樞。 您將會使用新註冊裝置的連線資訊,在稍後的章節中安全地連線裝置。
若要註冊裝置:
從 IoT 總管的首頁檢視中,選取 [IoT 中樞]。
您先前新增的連線應該會出現。 在連線屬性下方選取 [檢視此中樞內的裝置]。
選取 [+ 新增],然後輸入您裝置的裝置識別碼;例如 mydevice。 所有其他屬性保持不變。
選取 建立。
使用 [複製] 按鈕來複製並記下 [主要連接字串] 欄位。 您稍後將需要此連接字串。
執行裝置範例
在本節中,您會使用 C SDK 將訊息從裝置傳送至 IoT 中樞。 您可以執行使用兩個控溫器感應器實作溫度控制器的範例。
建置範例
開啟新的主控台以安裝 Azure IoT C 裝置 SDK,並執行程式碼範例。 若為 Windows,請選取 [開始],輸入 VS 2019 的開發人員命令提示字元,然後開啟主控台。 若為 Linux 和 Raspberry Pi OS,開啟用來執行 Bash 命令的終端。
注意
如果您使用 Azure CLI 的本機安裝,您現在可能會開啟兩個主控台視窗。 請務必在剛才開啟的主控台中輸入本節中的命令,而不是您用於 CLI 的命令的主控台。
瀏覽至您要複製範例存放庫的本機資料夾。
將 Azure IoT C 裝置 SDK 複製到本機電腦:
git clone https://github.com/Azure/azure-iot-sdk-c.git
瀏覽至 SDK 的根資料夾,然後執行下列命令來更新相依性:
cd azure-iot-sdk-c git submodule update --init
此作業需要幾分鐘的時間。
若要建置 SDK 和範例,請執行下列命令:
cmake -Bcmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF cmake --build cmake
設定下列環境變數,讓您的裝置能夠連線到 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"
- 設定稱為
執行程式碼
使用適用於主控台的命令,執行範例程式碼。
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 總管中檢視遙測:
從 IoT 總管中的 IoT 中樞,選取 [檢視此中樞中的裝置],然後從清單中選取您的裝置。
在裝置的左側功能表上,選取 [遙測]。
確認 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
當裝置將訊息傳送至雲端時,檢視遙測。
選取 [停止],以結束接收事件。
若要讀取個別裝置元件所傳送的遙測,您可以使用 IoT 總管中的隨插即用功能。 例如,本快速入門中的溫度控制器有兩個控溫器:thermostat1 和 thermostat2。 若要查看 thermostat1 所報告的溫度:
在 IoT 總管中的裝置上,從左側功能表中選取 [IoT 隨插即用元件]。 然後從元件清單中選取 thermostat1。
在 thermostat1 元件窗格中,從頂端功能表中選取 [遙測]。
在 [遙測] 窗格中,遵循您先前執行的相同步驟。 確定 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
若要使用 Azure CLI 檢視裝置遙測:
執行 az iot hub monitor-events 命令,以監視從裝置傳送到 IoT 中樞的事件。 使用您先前在 Azure IoT 中為您的裝置和 IoT 中樞建立的名稱。
az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
在主控台中檢視連線詳細資料和遙測輸出。
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 裝置 SDK 範例來執行溫度控制器、安全地連線至中樞,以及傳送遙測。 溫度控制器範例應用程式會在本機電腦上執行,並產生模擬的感應器資料以傳送至 IoT 中樞。
必要條件
本快速入門可在 Windows、Linux 和 Raspberry Pi 上執行, 並經過下列作業系統和裝置版本的測試:
- Windows 10
- Ubuntu 20.04 LTS
- Raspberry Pi OS (Raspbian) 第 10 版,在 Raspberry Pi 3 模型 B+ 上執行
在您的開發電腦上安裝下列必要條件,但 Raspberry Pi 所指出的情況除外:
如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶。
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 上,只支援 x64 架構的 .NET SDK 套件管理員安裝。
Azure IoT 總管:跨平台、GUI 型公用程式,用來監視和管理 Azure IoT。 如果您使用 Raspberry Pi 作為開發平台,建議您在另一部電腦上安裝 IoT 總管。 如果您不想安裝 IoT 總管,則可以使用 Azure CLI 來執行相同的步驟。
Azure CLI。 在本快速入門中,您有兩個選項可用來執行 Azure CLI 命令:
- 使用 Azure Cloud Shell,這是一種在瀏覽器中執行 CLI 命令的互動式 shell。 建議使用此選項,因為您不需要安裝任何項目。 如果您是第一次使用 Cloud Shell,請登入 Azure 入口網站。 請遵循開始使用 Azure Cloud Shell 中的步驟來啟動 Cloud Shell 並選取 Bash 環境。
- 或者,在本機電腦上執行 Azure CLI。 如果已安裝 Azure CLI,請執行
az upgrade
以將 CLI 和擴充功能更新為目前的版本。 若要安裝 Azure CLI,請參閱安裝 Azure CLI。 如果您使用 Raspberry Pi 作為開發平台,建議您使用 Azure Cloud Shell 或在另一部電腦上安裝 Azure CLI。
建立 IoT 中樞
在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。
若要建立 IoT 中樞和資源群組:
啟動 Azure CLI:
- 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell。
- 如果您在本機使用 Azure CLI,請開啟 Windows CMD、PowerShell 或 Bash 等主控台,然後登入 Azure CLI。
若要在此快速入門的其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 Cloud Shell 視窗或 CLI 主控台,然後編輯變數值,再按 Enter。
執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。
az extension add --upgrade --name azure-iot
執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。
注意
您可以選擇性地設定替代位置。 若要查看可用位置,請執行
az account list-locations
。 本教學課程使用 eastus,如範例命令所示。az group create --name MyResourceGroup --location eastus
使用 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 Explorer 是一種 GUI 應用程式,可讓您連線至現有 IoT 中樞,以及新增、管理和監視裝置。 如需詳細資訊,請參閱安裝和使用 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 中樞的連線:
執行 az iot hub connection-string show 命令,以取得 IoT 中樞的連接字串。
az iot hub connection-string show --hub-name {YourIoTHubName}
複製連接字串,而不使用環繞的引號字元。
在 Azure IoT 總管中,選取左側功能表上的 [IoT 中樞],然後選取 [+ 新增連線]。
將連接字串貼到 [連接字串] 方塊中。
選取 [儲存]。
如果連線成功,IoT 總管會切換至 [裝置] 檢視。
若要新增公用模型存放庫:
在 IoT 總管中,選取 [首頁] 以返回首頁檢視。
在左側功能表上,選取 [IoT 隨插即用設定],然後從下拉功能表中選取 [+新增],然後選取 [公用存放庫]。
公用模型存放庫的項目會出現在
https://devicemodels.azure.com
。選取 [儲存]。
註冊裝置
您會在本節中建立新的裝置執行個體,並將其註冊到所建立的 IoT 中樞。 您將會使用新註冊裝置的連線資訊,在稍後的章節中安全地連線裝置。
若要註冊裝置:
從 IoT 總管的首頁檢視中,選取 [IoT 中樞]。
您先前新增的連線應該會出現。 在連線屬性下方選取 [檢視此中樞內的裝置]。
選取 [+ 新增],然後輸入您裝置的裝置識別碼;例如 mydevice。 所有其他屬性保持不變。
選取 建立。
使用 [複製] 按鈕來複製並記下 [主要連接字串] 欄位。 您稍後將需要此連接字串。
執行裝置範例
在本節中,您將會使用 C# SDK 將訊息從裝置傳送至 IoT 中樞。 您將執行使用兩個控溫器感應器實作溫度控制器的範例。
開啟新的主控台,例如 Windows CMD、PowerShell 或 Bash。 在下列步驟中,您將使用此主控台來安裝 Node.js SDK,並使用 Node.js 範例程式碼。
注意
如果您使用 Azure CLI 的本機安裝,您現在可能會開啟兩個主控台視窗。 請務必在剛才開啟的主控台中輸入本節中的命令,而不是您用於 CLI 的命令的主控台。
將 Microsoft Azure IoT SDK for C# (.NET) 複製到您的本機電腦:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
瀏覽至範例目錄:
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
安裝 Azure IoT C# SDK 和必要的相依性:
dotnet restore
此命令會安裝 TemperatureController.csproj 檔案中指定的適當相依性。
設定下列兩個環境變數,讓您的裝置能夠連線到 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"
- 設定稱為
執行程式碼範例:
dotnet run
注意
此程式碼範例使用 Azure IoT 隨插即用,可讓您將智慧型手機整合到解決方案中,而不需要任何手動設定。 根據預設,本文件中的大部分範例都會使用 IoT 隨插即用。 若要深入了解 IoT PnP 的優點,以及使用或不使用它的情況,請參閱什麼是 IoT 隨插即用?。
此範例會作為您註冊的裝置安全地連線到 IoT 中樞,並開始傳送遙測訊息。 範例輸出會出現在您的主控台中。
檢視遙測
您可以使用 IoT 總管來檢視裝置遙測。 您可以選擇性地使用 Azure CLI 來檢視遙測。
若要在 Azure IoT 總管中檢視遙測:
從 IoT 總管中的 IoT 中樞,選取 [檢視此中樞中的裝置],然後從清單中選取您的裝置。
在裝置的左側功能表上,選取 [遙測]。
確認 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
當裝置將訊息傳送至雲端時,檢視遙測。
選取 [停止],以結束接收事件。
若要讀取個別裝置元件所傳送的遙測,您可以使用 IoT 總管中的隨插即用功能。 例如,本快速入門中的溫度控制器有兩個控溫器:thermostat1 和 thermostat2。 若要查看 thermostat1 所報告的溫度:
在 IoT 總管中的裝置上,從左側功能表中選取 [IoT 隨插即用元件]。 然後從元件清單中選取 thermostat1。
在 thermostat1 元件窗格中,從頂端功能表中選取 [遙測]。
在 [遙測] 窗格中,遵循您先前執行的相同步驟。 確定 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
若要使用 Azure CLI 檢視裝置遙測:
執行 az iot hub monitor-events 命令,以監視從裝置傳送到 IoT 中樞的事件。 使用您先前在 Azure IoT 中為您的裝置和 IoT 中樞建立的名稱。
az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
在主控台中檢視連線詳細資料和遙測輸出。
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
選取 CTRL+C 來結束監視。
在本快速入門中,您將了解基本的 Azure IoT 應用程式開發工作流程。 您可以使用 Azure CLI 和 IoT 總管來建立 Azure IoT 中樞和裝置。 然後使用 Azure IoT 裝置 SDK 範例來執行溫度控制器、安全地連線至中樞,以及傳送遙測。 溫度控制器範例應用程式會在本機電腦上執行,並產生模擬的感應器資料以傳送至 IoT 中樞。
必要條件
本快速入門可在 Windows、Linux 和 Raspberry Pi 上執行, 並經過下列作業系統和裝置版本的測試:
- Windows 10
- Ubuntu 20.04 LTS
- Raspberry Pi OS (Raspbian) 第 10 版,在 Raspberry Pi 3 模型 B+ 上執行
在您的開發電腦上安裝下列必要條件,但 Raspberry Pi 所指出的情況除外:
- 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶。
- Git。
- Azure IoT 總管:跨平台、GUI 型公用程式,用來監視和管理 Azure IoT。 如果您使用 Raspberry Pi 作為開發平台,建議您在另一部電腦上安裝 IoT 總管。 如果您不想安裝 IoT 總管,則可以使用 Azure CLI 來執行相同的步驟。
- Azure CLI。 在本快速入門中,您有兩個選項可用來執行 Azure CLI 命令:
- 使用 Azure Cloud Shell,這是一種在瀏覽器中執行 CLI 命令的互動式 shell。 建議使用此選項,因為您不需要安裝任何項目。 如果您是第一次使用 Cloud Shell,請登入 Azure 入口網站。 請遵循開始使用 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 開發套件 8 或更新版本。 您可以從下載 OpenJDK 的 Zulu 組建 下載適用於多個平台的 JAVA 8 (LTS) JDK。 在安裝程式中,選取 [新增至路徑] 選項。
Apache Maven 3。 將下載解壓縮至本機資料夾之後,請將 Maven /bin 資料夾的完整路徑新增至 Windows
PATH
環境變數。
Linux 或 Raspberry Pi OS
若要在 Linux 或 Raspberry Pi OS 上完成本快速入門,請安裝下列軟體:
注意
本節中的步驟是以 Linux Ubuntu/Debian 發行版本為基礎。 (Raspberry Pi OS 是以 Debian 為基礎。)如果您使用不同的 Linux 發行版本,則必須據以修改步驟。
OpenJDK (Open JAVA 開發套件) 8 或更新版本。 您可以使用
java -version
命令來確認安裝在系統上的 JAVA 版本。 請確定已安裝 JDK,而不是只有 JAVA 執行階段 (JRE)。若要為您的系統安裝 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
如果您的系統已安裝多個 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
將
JAVA_HOME
環境變數設定為 JDK 安裝的路徑。 (這通常是 /usr/lib/jvm 目錄中的版本設定子目錄。)export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
重要
此命令會在您目前的殼層環境中設定
JAVA_HOME
變數。 建議將此命令新增至~/.bashrc
或/etc/profile
檔案,讓您只要開啟新殼層就可以使用。確認安裝的 JAVA JDK (和 JRE) 版本、您的 JAVA 編譯器版本符合 JDK 版本,以及
JAVA_HOME
環境變數已正確設定。java -version javac -version echo $JAVA_HOME
Apache Maven 3。 您可以使用
mvn --version
命令來確認安裝在系統上的 Maven 版本。若要安裝 Maven,請輸入下列命令:
sudo apt-get update sudo apt-get install maven
輸入下列命令以確認安裝。
mvn --version
建立 IoT 中樞
在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。
若要建立 IoT 中樞和資源群組:
啟動 Azure CLI:
- 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell。
- 如果您在本機使用 Azure CLI,請開啟 Windows CMD、PowerShell 或 Bash 等主控台,然後登入 Azure CLI。
若要在此快速入門的其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 Cloud Shell 視窗或 CLI 主控台,然後編輯變數值,再按 Enter。
執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。
az extension add --upgrade --name azure-iot
執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。
注意
您可以選擇性地設定替代位置。 若要查看可用位置,請執行
az account list-locations
。 本教學課程使用 eastus,如範例命令所示。az group create --name MyResourceGroup --location eastus
使用 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 Explorer 是一種 GUI 應用程式,可讓您連線至現有 IoT 中樞,以及新增、管理和監視裝置。 如需詳細資訊,請參閱安裝和使用 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 中樞的連線:
執行 az iot hub connection-string show 命令,以取得 IoT 中樞的連接字串。
az iot hub connection-string show --hub-name {YourIoTHubName}
複製連接字串,而不使用環繞的引號字元。
在 Azure IoT 總管中,選取左側功能表上的 [IoT 中樞],然後選取 [+ 新增連線]。
將連接字串貼到 [連接字串] 方塊中。
選取 [儲存]。
如果連線成功,IoT 總管會切換至 [裝置] 檢視。
若要新增公用模型存放庫:
在 IoT 總管中,選取 [首頁] 以返回首頁檢視。
在左側功能表上,選取 [IoT 隨插即用設定],然後從下拉功能表中選取 [+新增],然後選取 [公用存放庫]。
公用模型存放庫的項目會出現在
https://devicemodels.azure.com
。選取 [儲存]。
註冊裝置
您會在本節中建立新的裝置執行個體,並將其註冊到所建立的 IoT 中樞。 您將會使用新註冊裝置的連線資訊,在稍後的章節中安全地連線裝置。
若要註冊裝置:
從 IoT 總管的首頁檢視中,選取 [IoT 中樞]。
您先前新增的連線應該會出現。 在連線屬性下方選取 [檢視此中樞內的裝置]。
選取 [+ 新增],然後輸入您裝置的裝置識別碼;例如 mydevice。 所有其他屬性保持不變。
選取 建立。
使用 [複製] 按鈕來複製並記下 [主要連接字串] 欄位。 您稍後將需要此連接字串。
執行裝置範例
在本節中,您會使用 JAVA SDK 將訊息從裝置傳送至 IoT 中樞。 您將執行使用兩個控溫器感應器實作溫度控制器的範例。
開啟主控台以安裝 Azure IoT JAVA 裝置 SDK,建置並執行程式碼範例。 您將在下列步驟中使用此主控台。
注意
如果您使用 Azure CLI 的本機安裝,您現在可能會開啟兩個主控台視窗。 請務必在剛才開啟的主控台中輸入本節中的命令,而不是您用於 CLI 的命令的主控台。
Linux 和 Raspberry Pi OS
確認已設定 JAVA_HOME (
echo $JAVA_HOME
) 環境變數。 如需設定 JAVA_HOME 的相關資訊,請參閱 Linux/Raspberry Pi 必要條件。將 Azure IoT JAVA 裝置 SDK 複製到本機電腦:
git clone https://github.com/Azure/azure-iot-sdk-java.git
瀏覽至 SDK 的根資料夾,然後執行下列命令,以建置 SDK 並更新範例。
cd azure-iot-sdk-java mvn install -T 2C -DskipTests
此作業需要幾分鐘才能完成。
設定下列環境變數,讓您的裝置能夠連線到 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"
- 設定稱為
瀏覽至範例目錄。
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
執行程式碼範例。
java -jar -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.TemperatureController"
注意
此程式碼範例使用 Azure IoT 隨插即用,可讓您將智慧型手機整合到解決方案中,而不需要任何手動設定。 根據預設,本文件中的大部分範例都會使用 IoT 隨插即用。 若要深入了解 IoT PnP 的優點,以及使用或不使用它的情況,請參閱什麼是 IoT 隨插即用?。
此範例會作為您註冊的裝置安全地連線到 IoT 中樞,並開始傳送遙測訊息。 範例輸出會出現在您的主控台中。
檢視遙測
您可以使用 IoT 總管來檢視裝置遙測。 您可以選擇性地使用 Azure CLI 來檢視遙測。
若要在 Azure IoT 總管中檢視遙測:
從 IoT 總管中的 IoT 中樞,選取 [檢視此中樞中的裝置],然後從清單中選取您的裝置。
在裝置的左側功能表上,選取 [遙測]。
確認 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
當裝置將訊息傳送至雲端時,檢視遙測。
選取 [停止],以結束接收事件。
若要讀取個別裝置元件所傳送的遙測,您可以使用 IoT 總管中的隨插即用功能。 例如,本快速入門中的溫度控制器有兩個控溫器:thermostat1 和 thermostat2。 若要查看 thermostat1 所報告的溫度:
在 IoT 總管中的裝置上,從左側功能表中選取 [IoT 隨插即用元件]。 然後從元件清單中選取 thermostat1。
在 thermostat1 元件窗格中,從頂端功能表中選取 [遙測]。
在 [遙測] 窗格中,遵循您先前執行的相同步驟。 確定 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
若要使用 Azure CLI 檢視裝置遙測:
執行 az iot hub monitor-events 命令,以監視從裝置傳送到 IoT 中樞的事件。 使用您先前在 Azure IoT 中為您的裝置和 IoT 中樞建立的名稱。
az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
在主控台中檢視連線詳細資料和遙測輸出。
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 裝置 SDK 範例來執行溫度控制器、安全地連線至中樞,以及傳送遙測。 溫度控制器範例應用程式會在本機電腦上執行,並產生模擬的感應器資料以傳送至 IoT 中樞。
必要條件
本快速入門可在 Windows、Linux 和 Raspberry Pi 上執行, 並經過下列作業系統和裝置版本的測試:
- Windows 10
- Ubuntu 20.04 LTS
- Raspberry Pi OS (Raspbian) 第 10 版,在 Raspberry Pi 3 模型 B+ 上執行
在您的開發電腦上安裝下列必要條件,但 Raspberry Pi 所指出的情況除外:
- 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶。
- Git。
- Node.js 12 版或更新版本。 若要檢查您的節點版本,請執行
node --version
。 - Azure IoT 總管:跨平台、GUI 型公用程式,用來監視和管理 Azure IoT。 如果您使用 Raspberry Pi 作為開發平台,建議您在另一部電腦上安裝 IoT 總管。 如果您不想安裝 IoT 總管,則可以使用 Azure CLI 來執行相同的步驟。
- Azure CLI。 在本快速入門中,您有兩個選項可用來執行 Azure CLI 命令:
- 使用 Azure Cloud Shell,這是一種在瀏覽器中執行 CLI 命令的互動式 shell。 建議使用此選項,因為您不需要安裝任何項目。 如果您是第一次使用 Cloud Shell,請登入 Azure 入口網站。 請遵循開始使用 Azure Cloud Shell 中的步驟來啟動 Cloud Shell 並選取 Bash 環境。
- 或者,在本機電腦上執行 Azure CLI。 如果已安裝 Azure CLI,請執行
az upgrade
以將 CLI 和擴充功能更新為目前的版本。 若要安裝 Azure CLI,請參閱安裝 Azure CLI。 如果您使用 Raspberry Pi 作為開發平台,建議您使用 Azure Cloud Shell 或在另一部電腦上安裝 Azure CLI。
建立 IoT 中樞
在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。
若要建立 IoT 中樞和資源群組:
啟動 Azure CLI:
- 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell。
- 如果您在本機使用 Azure CLI,請開啟 Windows CMD、PowerShell 或 Bash 等主控台,然後登入 Azure CLI。
若要在此快速入門的其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 Cloud Shell 視窗或 CLI 主控台,然後編輯變數值,再按 Enter。
執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。
az extension add --upgrade --name azure-iot
執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。
注意
您可以選擇性地設定替代位置。 若要查看可用位置,請執行
az account list-locations
。 本教學課程使用 eastus,如範例命令所示。az group create --name MyResourceGroup --location eastus
使用 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 Explorer 是一種 GUI 應用程式,可讓您連線至現有 IoT 中樞,以及新增、管理和監視裝置。 如需詳細資訊,請參閱安裝和使用 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 中樞的連線:
執行 az iot hub connection-string show 命令,以取得 IoT 中樞的連接字串。
az iot hub connection-string show --hub-name {YourIoTHubName}
複製連接字串,而不使用環繞的引號字元。
在 Azure IoT 總管中,選取左側功能表上的 [IoT 中樞],然後選取 [+ 新增連線]。
將連接字串貼到 [連接字串] 方塊中。
選取 [儲存]。
如果連線成功,IoT 總管會切換至 [裝置] 檢視。
若要新增公用模型存放庫:
在 IoT 總管中,選取 [首頁] 以返回首頁檢視。
在左側功能表上,選取 [IoT 隨插即用設定],然後從下拉功能表中選取 [+新增],然後選取 [公用存放庫]。
公用模型存放庫的項目會出現在
https://devicemodels.azure.com
。選取 [儲存]。
註冊裝置
您會在本節中建立新的裝置執行個體,並將其註冊到所建立的 IoT 中樞。 您將會使用新註冊裝置的連線資訊,在稍後的章節中安全地連線裝置。
若要註冊裝置:
從 IoT 總管的首頁檢視中,選取 [IoT 中樞]。
您先前新增的連線應該會出現。 在連線屬性下方選取 [檢視此中樞內的裝置]。
選取 [+ 新增],然後輸入您裝置的裝置識別碼;例如 mydevice。 所有其他屬性保持不變。
選取 建立。
使用 [複製] 按鈕來複製並記下 [主要連接字串] 欄位。 您稍後將需要此連接字串。
執行裝置範例
在本節中,您將使用 Node.js SDK,將訊息從裝置傳送至 IoT 中樞。 您將執行使用兩個控溫器感應器實作溫度控制器的範例。
開啟新的主控台,例如 Windows CMD、PowerShell 或 Bash。 在下列步驟中,您將使用此主控台來安裝 Node.js SDK,並使用 Node.js 範例程式碼。
注意
如果您使用 Azure CLI 的本機安裝,您現在可能會開啟兩個主控台視窗。 請務必在剛才開啟的主控台中輸入本節中的命令,而不是您用於 CLI 的命令的主控台。
將 Azure IoT Node.js SDK 裝置範例複製到本機電腦:
git clone https://github.com/Azure/azure-iot-sdk-node
瀏覽至範例目錄:
Windows
cd azure-iot-sdk-node\device\samples\javascript
Linux 或 Raspberry Pi OS
cd azure-iot-sdk-node/device/samples/javascript
安裝 Azure IoT Node.js SDK 和必要的相依性:
npm install
此命令會安裝裝置範例目錄中 package.json 檔案中指定的適當相依性。
設定下列兩個環境變數,讓您的裝置能夠連線到 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"
- 設定稱為
執行下列程式碼範例:
node pnp_temperature_controller.js
注意
此程式碼範例使用 Azure IoT 隨插即用,可讓您將智慧型手機整合到解決方案中,而不需要任何手動設定。 根據預設,本文件中的大部分範例都會使用 IoT 隨插即用。 若要深入了解 IoT PnP 的優點,以及使用或不使用它的情況,請參閱什麼是 IoT 隨插即用?。
此範例會作為您註冊的裝置安全地連線到 IoT 中樞,並開始傳送遙測訊息。 範例輸出會出現在您的主控台中。
檢視遙測
您可以使用 IoT 總管來檢視裝置遙測。 您可以選擇性地使用 Azure CLI 來檢視遙測。
若要在 Azure IoT 總管中檢視遙測:
從 IoT 總管中的 IoT 中樞,選取 [檢視此中樞中的裝置],然後從清單中選取您的裝置。
在裝置的左側功能表上,選取 [遙測]。
確認 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
當裝置將訊息傳送至雲端時,檢視遙測。
選取 [停止],以結束接收事件。
若要讀取個別裝置元件所傳送的遙測,您可以使用 IoT 總管中的隨插即用功能。 例如,本快速入門中的溫度控制器有兩個控溫器:thermostat1 和 thermostat2。 若要查看 thermostat1 所報告的溫度:
在 IoT 總管中的裝置上,從左側功能表中選取 [IoT 隨插即用元件]。 然後從元件清單中選取 thermostat1。
在 thermostat1 元件窗格中,從頂端功能表中選取 [遙測]。
在 [遙測] 窗格中,遵循您先前執行的相同步驟。 確定 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
若要使用 Azure CLI 檢視裝置遙測:
執行 az iot hub monitor-events 命令,以監視從裝置傳送到 IoT 中樞的事件。 使用您先前在 Azure IoT 中為您的裝置和 IoT 中樞建立的名稱。
az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
在主控台中檢視連線詳細資料和遙測輸出。
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 裝置 SDK 範例來執行溫度控制器、安全地連線至中樞,以及傳送遙測。 溫度控制器範例應用程式會在本機電腦上執行,並產生模擬的感應器資料以傳送至 IoT 中樞。
必要條件
本快速入門可在 Windows、Linux 和 Raspberry Pi 上執行, 並經過下列作業系統和裝置版本的測試:
- Windows 10 或 Windows 11
- Ubuntu 20.04 LTS
- Raspberry Pi OS (Raspbian) 第 10 版,在 Raspberry Pi 3 模型 B+ 上執行
在您的開發電腦上安裝下列必要條件,但 Raspberry Pi 所指出的情況除外:
- 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶。
- Git。
- Python 如需目前的 Python 版本需求,請查看 Azure IoT Python SDK。 若要檢查您的 Python 版本,請執行
python3 --version
。 - Azure IoT 總管:跨平台、GUI 型公用程式,用來監視和管理 Azure IoT。 如果您使用 Raspberry Pi 作為開發平台,建議您在另一部電腦上安裝 IoT 總管。 如果您不想安裝 IoT 總管,則可以使用 Azure CLI 來執行相同的步驟。
- Azure CLI。 在本快速入門中,您有兩個選項可用來執行 Azure CLI 命令:
- 使用 Azure Cloud Shell,這是一種在瀏覽器中執行 CLI 命令的互動式 shell。 建議使用此選項,因為您不需要安裝任何項目。 如果您是第一次使用 Cloud Shell,請登入 Azure 入口網站。 請遵循開始使用 Azure Cloud Shell 中的步驟來啟動 Cloud Shell 並選取 Bash 環境。
- 或者,在本機電腦上執行 Azure CLI。 如果已安裝 Azure CLI,請執行
az upgrade
以將 CLI 和擴充功能更新為目前的版本。 若要安裝 Azure CLI,請參閱安裝 Azure CLI。 如果您使用 Raspberry Pi 作為開發平台,建議您使用 Azure Cloud Shell 或在另一部電腦上安裝 Azure CLI。
建立 IoT 中樞
在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。
若要建立 IoT 中樞和資源群組:
啟動 Azure CLI:
- 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell。
- 如果您在本機使用 Azure CLI,請開啟 Windows CMD、PowerShell 或 Bash 等主控台,然後登入 Azure CLI。
若要在此快速入門的其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 Cloud Shell 視窗或 CLI 主控台,然後編輯變數值,再按 Enter。
執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。
az extension add --upgrade --name azure-iot
執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。
注意
您可以選擇性地設定替代位置。 若要查看可用位置,請執行
az account list-locations
。 本教學課程使用 eastus,如範例命令所示。az group create --name MyResourceGroup --location eastus
使用 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 Explorer 是一種 GUI 應用程式,可讓您連線至現有 IoT 中樞,以及新增、管理和監視裝置。 如需詳細資訊,請參閱安裝和使用 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 中樞的連線:
執行 az iot hub connection-string show 命令,以取得 IoT 中樞的連接字串。
az iot hub connection-string show --hub-name {YourIoTHubName}
複製連接字串,而不使用環繞的引號字元。
在 Azure IoT 總管中,選取左側功能表上的 [IoT 中樞],然後選取 [+ 新增連線]。
將連接字串貼到 [連接字串] 方塊中。
選取 [儲存]。
如果連線成功,IoT 總管會切換至 [裝置] 檢視。
若要新增公用模型存放庫:
在 IoT 總管中,選取 [首頁] 以返回首頁檢視。
在左側功能表上,選取 [IoT 隨插即用設定],然後從下拉功能表中選取 [+新增],然後選取 [公用存放庫]。
公用模型存放庫的項目會出現在
https://devicemodels.azure.com
。選取 [儲存]。
註冊裝置
您會在本節中建立新的裝置執行個體,並將其註冊到所建立的 IoT 中樞。 您將會使用新註冊裝置的連線資訊,在稍後的章節中安全地連線裝置。
若要註冊裝置:
從 IoT 總管的首頁檢視中,選取 [IoT 中樞]。
您先前新增的連線應該會出現。 在連線屬性下方選取 [檢視此中樞內的裝置]。
選取 [+ 新增],然後輸入您裝置的裝置識別碼;例如 mydevice。 所有其他屬性保持不變。
選取 建立。
使用 [複製] 按鈕來複製並記下 [主要連接字串] 欄位。 您稍後將需要此連接字串。
執行裝置範例
在本節中,您會使用 Python SDK 將訊息從裝置傳送至 IoT 中樞。 您將執行使用兩個控溫器感應器實作溫度控制器的範例。
開啟新的主控台,例如 Windows CMD、PowerShell 或 Bash。 在下列步驟中,您將使用此主控台來安裝 Python SDK,並使用 Python 範例程式碼。
注意
如果您使用 Azure CLI 的本機安裝,您現在可能會開啟兩個主控台視窗。 請務必在剛才開啟的主控台中輸入本節中的命令,而不是您用於 CLI 的命令的主控台。
將 Azure IoT Python SDK 裝置範例複製到本機電腦:
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
瀏覽至範例目錄:
Windows
cd azure-iot-sdk-python\samples\pnp
Linux 或 Raspberry Pi OS
cd azure-iot-sdk-python/samples/pnp
安裝 Azure IoT Python SDK:
pip3 install azure-iot-device
設定下列環境變數,讓您的裝置能夠連線到 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"
- 設定稱為
執行下列範例檔案的程式碼。
python temp_controller_with_thermostats.py
注意
此程式碼範例使用 Azure IoT 隨插即用,可讓您將智慧型手機整合到解決方案中,而不需要任何手動設定。 根據預設,本文件中的大部分範例都會使用 IoT 隨插即用。 若要深入了解 IoT 隨插即用的優點,以及使用或不使用它的情況,請參閱什麼是 IoT 隨插即用?。
此範例會作為您註冊的裝置安全地連線到 IoT 中樞,並開始傳送遙測訊息。 範例輸出會出現在您的主控台中。
檢視遙測
您可以使用 IoT 總管來檢視裝置遙測。 您可以選擇性地使用 Azure CLI 來檢視遙測。
若要在 Azure IoT 總管中檢視遙測:
從 IoT 總管中的 IoT 中樞,選取 [檢視此中樞中的裝置],然後從清單中選取您的裝置。
在裝置的左側功能表上,選取 [遙測]。
確認 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
當裝置將訊息傳送至雲端時,檢視遙測。
選取 [停止],以結束接收事件。
若要讀取個別裝置元件所傳送的遙測,您可以使用 IoT 總管中的隨插即用功能。 例如,本快速入門中的溫度控制器有兩個控溫器:thermostat1 和 thermostat2。 若要查看 thermostat1 所報告的溫度:
在 IoT 總管中的裝置上,從左側功能表中選取 [IoT 隨插即用元件]。 然後從元件清單中選取 thermostat1。
在 thermostat1 元件窗格中,從頂端功能表中選取 [遙測]。
在 [遙測] 窗格中,遵循您先前執行的相同步驟。 確定 [使用內建事件中樞] 設定為 [是],然後選取 [啟動]。
若要使用 Azure CLI 檢視裝置遙測:
執行 az iot hub monitor-events 命令,以監視從裝置傳送到 IoT 中樞的事件。 使用您先前在 Azure IoT 中為您的裝置和 IoT 中樞建立的名稱。
az iot hub monitor-events --output table --device-id mydevice --hub-name {YourIoTHubName}
在主控台中檢視連線詳細資料和遙測輸出。
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 來刪除它們。
重要
刪除資源群組是無法回復的動作。 資源群組和其中包含的所有資源都將永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。
若要依名稱刪除資源群組:
執行 az group delete 命令。 此命令會移除資源群組、IoT 中樞,和您建立的裝置註冊。
az group delete --name MyResourceGroup
執行 az group list 命令,以確認資源群組已刪除。
az group list
下一步
在本教學課程中,您已瞭解基本的 Azure IoT 應用程式工作流程,以安全地將裝置連線到雲端,以及傳送裝置到雲端遙測。 您已使用 Azure CLI 來建立 Azure IoT 中樞和裝置執行個體。 然後,您已使用 Azure IoT 裝置 SDK 來建立溫度控制器、將其連線到中樞,以及傳送遙測。 您也使用了 Azure CLI 來監視遙測。
在下一個步驟中探索下列文章,以深入了解如何使用 Azure IoT 建置裝置解決方案。