分享方式:


快速入門:控制連線到 IoT 中樞的裝置

在此快速入門中,您會使用直接方法來控制連線到您 IoT 中樞的模擬裝置。 IoT 中樞是一項 Azure 服務,可讓您從雲端管理您的 IoT 裝置,並將大量的裝置遙測擷取至雲端以進行儲存或處理。 您可以使用直接方法,遠端變更連線至 IoT 中樞的裝置行為。

快速入門會使用兩個預先撰寫的 .NET 應用程式:

  • 可回應服務應用程式直接方法呼叫的模擬裝置應用程式。 為了接收直接方法呼叫,此應用程式會連線到 IoT 中樞上的特定裝置端點。

  • 在模擬裝置上呼叫直接方法的服務應用程式。 為了在裝置上呼叫直接方法,此應用程式會連線到 IoT 中樞上的服務端端點。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立一個

  • 您在此快速入門中執行的兩個範例應用程式是使用 C# 所撰寫的。 您的開發機器需要 .NET SDK 6.0 或以上版本。

    您可以從 .NET 下載適用於多種平台的 .NET Core SDK。

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

    dotnet --version
    
  • 從 GitHub 複製或下載 Azure IoT C# SDK

  • 請確定您的防火牆已開啟連接埠 8883。 本快速入門中的裝置範例會使用 MQTT 通訊協定,其會透過連接埠 8883 進行通訊。 某些公司和教育網路環境可能會封鎖此連接埠。 如需此問題的詳細資訊和解決方法,請參閱連線至 IoT 中樞 (MQTT)

注意

本文使用最新版的 Azure IoT 擴充功能,稱為 azure-iot。 舊版則稱為 azure-cli-iot-ext。您一次只能安裝一個版本。 您可以使用 az extension list 命令來驗證目前安裝的延伸模組。

使用 az extension remove --name azure-cli-iot-ext 移除舊版的擴充功能。

使用 az extension add --name azure-iot 新增新版的擴充功能。

若要查看您已安裝的擴充功能,請使用 az extension list

在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    注意

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 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 {your_iot_hub_name}
    

擷取服務連接字串

您也需要 IoT 中樞「服務連接字串」,以讓服務應用程式能夠連線至中樞並擷取訊息。 服務連接字串適用於整個 IoT 中樞,而且與您在上節中所擷取的裝置連接字串不同。

下列命令可擷取 IoT 中樞的服務連接字串:

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

記下服務連接字串,它看起來如下:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。

模擬裝置

模擬裝置應用程式會連線到 IoT 中樞上的特定裝置端點、傳送模擬的遙測,並接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬的裝置在執行直接方法後,會將通知傳送回您的中樞。

  1. 在本機終端機視窗中,瀏覽至範例 C# 專案的根資料夾。 然後瀏覽至 iothub\device\samples\getting started\SimulatedDeviceWithCommand 資料夾。

  2. 執行下列命令,以安裝模擬裝置應用程式所需的套件:

    dotnet restore
    
  3. 執行下列命令,以建置並執行模擬裝置應用程式。

    {DeviceConnectionString}:將此預留位置取代為您先前所記下的裝置連接字串。

    dotnet run -- -c "{DeviceConnectionString}"
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    Run the simulated device

呼叫直接方法

服務應用程式會連線到 IoT 中樞上的服務端端點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞服務應用程式通常會在雲端中執行。

  1. 在另一個終端機視窗中,瀏覽至範例 C# 專案的根資料夾。 然後瀏覽至 iothub\service\samples\getting started\InvokeDeviceMethod 資料夾。

  2. 在本機終端機視窗中,執行下列命令以安裝服務應用程式所需的程式庫:

    dotnet build
    
  3. 在本機終端機視窗中,執行下列命令以建置並執行服務應用程式。

    {ServiceConnectionString}:將此預留位置取代為您先前所記下的 IoT 中樞服務連接字串。

    {DeviceName}:將此預留位置取代為您已註冊的裝置名稱。

    dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
    

    下列螢幕擷取畫面顯示應用程式對裝置進行直接方法呼叫並接收通知時的輸出:

    Run the service application

    執行服務應用程式之後,在執行模擬裝置的主控台視窗中將會出現一則訊息,且它傳送訊息的速率也會變更:

    Change in simulated client

此快速入門使用兩個 Java 應用程式:

  • 可回應後端應用程式直接方法呼叫的模擬裝置應用程式。
  • 模擬裝置上呼叫直接方法的服務應用程式。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立一個

  • Java SE 開發套件 8。 在 Azure 和 Azure Stack 的 Java 長期支援中,選取 [長期支援] 下的 [Java 8]

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

    java -version
    
  • Apache Maven 3

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

    mvn --version
    
  • 從 GitHub 複製或下載 Azure IoT Java 範例

  • 請確定您的防火牆中已開啟連接埠 8883。 本快速入門中的裝置範例會使用 MQTT 通訊協定,其會透過連接埠 8883 進行通訊。 某些公司和教育網路環境可能會封鎖此連接埠。 如需此問題的詳細資訊和解決方法,請參閱連線至 IoT 中樞 (MQTT)

注意

本文使用最新版的 Azure IoT 擴充功能,稱為 azure-iot。 舊版則稱為 azure-cli-iot-ext。您一次只能安裝一個版本。 您可以使用 az extension list 命令來驗證目前安裝的延伸模組。

使用 az extension remove --name azure-cli-iot-ext 移除舊版的擴充功能。

使用 az extension add --name azure-iot 新增新版的擴充功能。

若要查看您已安裝的擴充功能,請使用 az extension list

建立 IoT 中樞

在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    注意

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 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 {your_iot_hub_name}
    

註冊裝置

裝置必須向您的 IoT 中樞註冊,才能進行連線。 在本節中,您會使用 Azure CLI 來建立裝置身分識別。

如果您已在 IoT 中樞內註冊裝置,則可以略過本節。

若要建立裝置身分識別:

  1. 在 CLI 殼層中,執行 az iot hub device-identity create 命令。 此命令會建立裝置身分識別。

    your_iot_hub_name. 以您為 IoT 中樞選擇的名稱取代此預留位置。

    myDevice。 您可以針對本文中的裝置識別碼使用此名稱,或提供不同的裝置名稱。

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. 執行 az iot hub device-identity connection-string show 命令。

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    連接字串輸出的格式如下:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. 將連接字串儲存至安全的位置。

注意

將您的 CLI 應用程式保持開啟。 您將在稍後的步驟中用到此名稱。

擷取服務連接字串

您也需要服務連接字串,讓後端應用程式能夠連線到您的 IoT 中樞並擷取訊息。 下列命令可擷取 IoT 中樞的服務連接字串:

YourIoTHubName:以您為 IoT 中樞選擇的名稱取代此預留位置。

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

記下服務連接字串,它看起來如下:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。 服務連接字符串與您在上一個步驟中記下的裝置連接字串不同。

模擬裝置

模擬裝置應用程式會連線到 IoT 中樞上的特定裝置端點、傳送模擬的遙測,並接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬的裝置在執行直接方法後,會將通知傳送回您的中樞。

  1. 在本機終端機視窗中,瀏覽至範例 Java 專案的根資料夾。 然後瀏覽至 iot-hub\Quickstarts\simulated-device-2 資料夾。

  2. 在您選擇的文字編輯器中開啟 src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java 檔案。

    使用您稍早所記錄的裝置連接字串來取代 connString 變數的值。 然後將變更儲存到 SimulatedDevice.java

  3. 在本機終端機視窗中,執行下列命令以安裝模擬裝置應用程式所需的程式庫,並建置模擬裝置應用程式:

    mvn clean package
    
  4. 在本機終端機視窗中,執行下列命令以執行模擬裝置應用程式:

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    Output from the telemetry sent by the device to your IoT hub

呼叫直接方法

後端應用程式會連線到 IoT 中樞上的服務端端點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞後端應用程式通常會在雲端中執行。

  1. 在另一個本機終端機視窗中,瀏覽至範例 Java 專案的根資料夾。 然後瀏覽至 iot-hub\Quickstarts\back-end-application 資料夾。

  2. 在您選擇的文字編輯器中開啟 src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java 檔案。

    使用稍早所記錄的服務連接字串來取代 iotHubConnectionString 變數的值。 然後將您的變更儲存到 BackEndApplication.java

  3. 在本機終端機視窗中,執行下列命令安裝所需的程式庫並建置後端應用程式:

    mvn clean package
    
  4. 在本機終端機視窗中,執行下列命令以執行後端應用程式:

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    下列螢幕擷取畫面顯示應用程式對裝置進行直接方法呼叫並接收通知時的輸出:

    Output as the application makes a direct method call through your IoT hub

    執行後端應用程式之後,在執行模擬裝置的主控台視窗中將會出現一則訊息,且它傳送訊息的速率也會變更:

    Console message from device shows the rate at which it changes

此快速入門使用兩個 Node.js 應用程式:

  • 可回應後端應用程式直接方法呼叫的模擬裝置應用程式。 為了接收直接方法呼叫,此應用程式會連線到 IoT 中樞上的特定裝置端點。
  • 在模擬裝置上呼叫直接方法的後端應用程式。 為了在裝置上呼叫直接方法,此應用程式會連線至 IoT 中樞上的服務特定端點。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立一個

  • Node.js 12+

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

    node --version
    
  • 從 GitHub 複製或下載 Azure IoT Node.js 範例

  • 請確定您的防火牆已開啟連接埠 8883。 本快速入門中的裝置範例會使用 MQTT 通訊協定,其會透過連接埠 8883 進行通訊。 某些公司和教育網路環境可能會封鎖此連接埠。 如需此問題的詳細資訊和解決方法,請參閱連線至 IoT 中樞 (MQTT)

注意

本文使用最新版的 Azure IoT 擴充功能,稱為 azure-iot。 舊版則稱為 azure-cli-iot-ext。您一次只能安裝一個版本。 您可以使用 az extension list 命令來驗證目前安裝的延伸模組。

使用 az extension remove --name azure-cli-iot-ext 移除舊版的擴充功能。

使用 az extension add --name azure-iot 新增新版的擴充功能。

若要查看您已安裝的擴充功能,請使用 az extension list

建立 IoT 中樞

在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    注意

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 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 {your_iot_hub_name}
    

註冊裝置

裝置必須向您的 IoT 中樞註冊,才能進行連線。 在本節中,您會使用 Azure CLI 來建立裝置身分識別。

如果您已在 IoT 中樞內註冊裝置,則可以略過本節。

若要建立裝置身分識別:

  1. 在 CLI 殼層中,執行 az iot hub device-identity create 命令。 此命令會建立裝置身分識別。

    your_iot_hub_name. 以您為 IoT 中樞選擇的名稱取代此預留位置。

    myDevice。 您可以針對本文中的裝置識別碼使用此名稱,或提供不同的裝置名稱。

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. 執行 az iot hub device-identity connection-string show 命令。

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    連接字串輸出的格式如下:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. 將連接字串儲存至安全的位置。

注意

將您的 CLI 應用程式保持開啟。 您將在稍後的步驟中用到此名稱。

擷取服務連接字串

您也需要 IoT 中樞「服務連接字串」,以讓後端應用程式能夠連線至 IoT 中樞並擷取訊息。 下列命令可擷取 IoT 中樞的服務連接字串:

YourIoTHubName:以您為 IoT 中樞選擇的名稱取代此預留位置。

az iot hub connection-string show \
  --policy-name service --hub-name {YourIoTHubName} --output table

記下服務連接字串,它看起來如下:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。 服務連接字符串與您在上一個步驟中記下的裝置連接字串不同。

模擬裝置

模擬裝置應用程式會連線到 IoT 中樞上的特定裝置端點、傳送模擬的遙測,並接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬的裝置在執行直接方法後,會將通知傳送回您的中樞。

  1. 載本機終端機視窗中,瀏覽至範例 Node.js 專案的根資料夾。 然後瀏覽至 iot-hub\Quickstarts\simulated-device-2 資料夾。

  2. 在您選擇的文字編輯器中開啟 SimulatedDevice.js 檔案。

    使用您稍早所記錄的裝置連接字串來取代 connectionString 變數的值。 然後將變更儲存到 SimulatedDevice.js

  3. 在本機終端機視窗中,執行下列命令以安裝模擬裝置應用程式所需的程式庫,並執行模擬裝置應用程式:

    npm install
    node SimulatedDevice.js
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    Run the simulated device

呼叫直接方法

後端應用程式會連線至 IoT 中樞上的服務端端點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞後端應用程式通常會在雲端中執行。

  1. 在另一個本機終端機視窗中,瀏覽至範例 Node.js 專案的根資料夾。 然後瀏覽至 iot-hub\Quickstarts\back-end-application 資料夾。

  2. 在您選擇的文字編輯器中開啟 BackEndApplication.js 檔案。

    使用稍早所記錄的服務連接字串來取代 connectionString 變數的值。 然後將您的變更儲存到 BackEndApplication.js

  3. 在本機終端機視窗中,執行下列命令安裝所需的程式庫並執行後端應用程式:

    npm install
    node BackEndApplication.js
    

    下列螢幕擷取畫面顯示應用程式對裝置進行直接方法呼叫並接收通知時的輸出:

    Output when the application makes direct method call to the device

    執行後端應用程式之後,在執行模擬裝置的主控台視窗中將會出現一則訊息,且它傳送訊息的速率也會變更:

    Output when there is a change in the simulated client

此快速入門使用兩個 Python 應用程式:

  • 可回應後端應用程式直接方法呼叫的模擬裝置應用程式。
  • 在模擬裝置上呼叫直接方法的後端應用程式。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立一個

  • Python 3.7+。 如需其他支援的 Python 版本,請參閱 Azure IoT 裝置功能

  • 從 GitHub 複製或下載 Azure IoT Python 範例

  • 請確定您的防火牆中已開啟連接埠 8883。 本快速入門中的裝置範例會使用 MQTT 通訊協定,其會透過連接埠 8883 進行通訊。 某些公司和教育網路環境可能會封鎖此連接埠。 如需此問題的詳細資訊和解決方法,請參閱連線至 IoT 中樞 (MQTT)

注意

本文使用最新版的 Azure IoT 擴充功能,稱為 azure-iot。 舊版則稱為 azure-cli-iot-ext。您一次只能安裝一個版本。 您可以使用 az extension list 命令來驗證目前安裝的延伸模組。

使用 az extension remove --name azure-cli-iot-ext 移除舊版的擴充功能。

使用 az extension add --name azure-iot 新增新版的擴充功能。

若要查看您已安裝的擴充功能,請使用 az extension list

建立 IoT 中樞

在本節中,您會使用 Azure CLI 來建立 IoT 中樞和資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    注意

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 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 {your_iot_hub_name}
    

註冊裝置

裝置必須向您的 IoT 中樞註冊,才能進行連線。 在本節中,您會使用 Azure CLI 來建立裝置身分識別。

如果您已在 IoT 中樞內註冊裝置,則可以略過本節。

若要建立裝置身分識別:

  1. 在 CLI 殼層中,執行 az iot hub device-identity create 命令。 此命令會建立裝置身分識別。

    your_iot_hub_name. 以您為 IoT 中樞選擇的名稱取代此預留位置。

    myDevice。 您可以針對本文中的裝置識別碼使用此名稱,或提供不同的裝置名稱。

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. 執行 az iot hub device-identity connection-string show 命令。

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    連接字串輸出的格式如下:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. 將連接字串儲存至安全的位置。

注意

將您的 CLI 應用程式保持開啟。 您將在稍後的步驟中用到此名稱。

擷取服務連接字串

您也需要服務連接字串,讓後端應用程式能夠連線到您的 IoT 中樞並擷取訊息。 下列命令可擷取 IoT 中樞的服務連接字串:

YourIoTHubName:以您為 IoT 中樞選擇的名稱取代此預留位置。

az iot hub connection-string show \
  --policy-name service \
  --hub-name {YourIoTHubName} \
  --output table

記下服務連接字串,它看起來如下:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。 服務連接字符串與您在上一個步驟中記下的裝置連接字串不同。

模擬裝置

模擬裝置應用程式會連線到 IoT 中樞上的特定裝置端點、傳送模擬的遙測,並接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬的裝置在執行直接方法後,會將通知傳送回您的中樞。

  1. 在本機終端機視窗中,瀏覽至範例 Python 專案的根資料夾。 然後瀏覽至 iot-hub\Quickstarts\simulated-device-2 資料夾。

  2. 在您選擇的文字編輯器中開啟 SimulatedDeviceSync.py 檔案。

    使用您稍早所記錄的裝置連接字串來取代 CONNECTION_STRING 變數的值。 然後將變更儲存到 SimulatedDeviceSync.py

  3. 在本機終端機視窗中,執行下列命令以安裝模擬裝置應用程式所需的程式庫:

    pip install azure-iot-device
    
  4. 在本機終端機視窗中,執行下列命令以執行模擬裝置應用程式:

    python SimulatedDeviceSync.py
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    Run the simulated device

呼叫直接方法

後端應用程式會連線到 IoT 中樞上的服務端端點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞後端應用程式通常會在雲端中執行。

  1. 在另一個本機終端機視窗中,瀏覽至範例 Python 專案的根資料夾。 然後瀏覽至 iot-hub\Quickstarts\back-end-application 資料夾。

  2. 在您選擇的文字編輯器中開啟 BackEndApplication.py 檔案。

    使用稍早所記錄的服務連接字串來取代 CONNECTION_STRING 變數的值。 然後將您的變更儲存到 BackEndApplication.py

  3. 在本機終端機視窗中,執行下列命令以安裝模擬裝置應用程式所需的程式庫:

    pip install azure-iot-hub
    
  4. 在本機終端機視窗中,執行下列命令以執行後端應用程式:

    python BackEndApplication.py
    

    下列螢幕擷取畫面顯示應用程式對裝置進行直接方法呼叫並接收通知時的輸出:

    Run the back-end application

    執行後端應用程式之後,在執行模擬裝置的主控台視窗中將會出現一則訊息,且它傳送訊息的速率也會變更:

    Change in simulated client

清除資源

如果您將繼續閱讀下一篇建議的文章,則可以保留您已建立的資源,並重複加以使用。

否則,您可以刪除在本文中建立的 Azure 資源,以避免產生費用。

重要

刪除資源群組是無法回復的動作。 資源群組和其中包含的所有資源都將永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您在現有的資源群組內建立了 IoT 中樞,而該群組中包含您想要保留的資源,則您只需刪除 IoT 中樞本身即可,而不要刪除資源群組。

若要依名稱刪除資源群組:

  1. 登入 Azure 入口網站,然後選取 [資源群組]

  2. 在 [依名稱篩選] 文字方塊中,輸入包含 IoT 中樞的資源群組名稱。

  3. 在結果清單中的資源群組右側,選取 [...],然後按一下 [刪除資源群組]

    Delete

  4. 系統將會要求您確認是否刪除資源。 再次輸入您的資源群組名稱以進行確認,然後選取 [刪除]。 片刻過後,系統便會刪除該資源群組及其所有內含的資源。

下一步

在此快速入門中,您已從服務應用程式對裝置進行直接方法呼叫,並在模擬裝置應用程式中回應直接方法呼叫。

若要了解如何將「裝置到雲端」訊息路由傳送至雲端中的不同目的地,請繼續下一個教學課程。