備注
在開(kāi)始本教程前,請(qǐng)完成Raspberry Pi聯(lián)機(jī)模擬器教程或其中一個(gè)設(shè)備教程;例如,將Raspberry Pi與Node.js配合使用。在這些文章中,你將設(shè)置Azure IoT設(shè)備和IoT中心,并部署一個(gè)在設(shè)備上運(yùn)行的示例應(yīng)用程序。該應(yīng)用程序會(huì)將收集的傳感器數(shù)據(jù)發(fā)送到IoT中心。
適用于Azure CLI的IoT擴(kuò)展是一個(gè)開(kāi)放源代碼IoT擴(kuò)展,它增強(qiáng)了Azure CLI的功能。Azure CLI包含用于與Azure資源管理器和管理終結(jié)點(diǎn)進(jìn)行交互的命令。例如,可使用Azure CLI創(chuàng)建Azure VM或IoT中心。CLI擴(kuò)展使Azure服務(wù)能夠擴(kuò)展Azure CLI,從而可訪問(wèn)其他特定于服務(wù)的功能。IoT擴(kuò)展為IoT開(kāi)發(fā)人員提供了對(duì)所有IoT中心、IoT Edge和IoT中心設(shè)備預(yù)配服務(wù)功能的命令行訪問(wèn)。
備注
本文使用最新版本的Azure IoT擴(kuò)展(稱為azure-iot)。舊版本稱為azure-cli-iot-ext。只應(yīng)同時(shí)安裝有一個(gè)版本??梢允褂妹頰z extension list來(lái)驗(yàn)證當(dāng)前安裝的擴(kuò)展。
使用az extension remove--name azure-cli-iot-ext可刪除擴(kuò)展的舊版本。
使用az extension add--name azure-iot可添加擴(kuò)展的新版本。
若要查看已安裝了哪些擴(kuò)展,請(qǐng)使用az extension list。
備注
本文所述的功能只能用于IoT中心的標(biāo)準(zhǔn)層。有關(guān)IoT中心基本層和標(biāo)準(zhǔn)/免費(fèi)層的詳細(xì)信息,請(qǐng)參閱選擇合適的IoT中心層。
有關(guān)這些選項(xiàng)的差異和使用指導(dǎo)的更詳細(xì)說(shuō)明,請(qǐng)參閱設(shè)備到云通信指南和云到設(shè)備通信指南。
設(shè)備孿生是存儲(chǔ)設(shè)備狀態(tài)信息(元數(shù)據(jù)、配置和條件)的JSON文檔。IoT中心為連接到它的每臺(tái)設(shè)備保留一個(gè)設(shè)備孿生。有關(guān)設(shè)備孿生的詳細(xì)信息,請(qǐng)參閱設(shè)備孿生入門。
學(xué)習(xí)內(nèi)容
了解如何在開(kāi)發(fā)計(jì)算機(jī)上通過(guò)各種管理選項(xiàng)使用適用于Azure CLI的IoT擴(kuò)展。
準(zhǔn)備工作
使用各種管理選項(xiàng)運(yùn)行Azure CLI和適用于Azure CLI的IoT擴(kuò)展。
所需條件
完成Raspberry Pi聯(lián)機(jī)模擬器教程或其中一個(gè)設(shè)備教程;例如將Raspberry Pi與Node.js配合使用。這些項(xiàng)包括以下要求:
一個(gè)有效的Azure訂閱。
已在訂閱中創(chuàng)建一個(gè)Azure IoT中心。
一個(gè)可向Azure IoT中心發(fā)送消息的客戶端應(yīng)用程序。
在學(xué)習(xí)本教程期間,確保設(shè)備與客戶端應(yīng)用程序均處于運(yùn)行狀態(tài)。
Python 2.7x或Python 3.x
Azure CLI。如需進(jìn)行安裝,請(qǐng)參閱安裝Azure CLI。Azure CLI版本必須至少是2.0.70或更高版本。請(qǐng)使用az–version驗(yàn)證版本。
備注
本文使用最新版本的Azure IoT擴(kuò)展(稱為azure-iot)。舊版本稱為azure-cli-iot-ext。只應(yīng)同時(shí)安裝有一個(gè)版本??梢允褂妹頰z extension list來(lái)驗(yàn)證當(dāng)前安裝的擴(kuò)展。
使用az extension remove--name azure-cli-iot-ext可刪除擴(kuò)展的舊版本。
使用az extension add--name azure-iot可添加擴(kuò)展的新版本。
若要查看已安裝了哪些擴(kuò)展,請(qǐng)使用az extension list。
安裝IoT擴(kuò)展。最簡(jiǎn)單的方法是運(yùn)行az extension add--name azure-iot。IoT擴(kuò)展自述文件介紹了該擴(kuò)展的多種安裝方法。
登錄到Azure帳戶
通過(guò)運(yùn)行以下命令登錄到Azure帳戶:
Azure CLI
az login
直接方法
Azure CLI
az iot hub invoke-device-method--device-id<your device id>
--hub-name<your hub name>
--method-name<the method name>
--method-payload<the method payload>
設(shè)備孿生所需屬性
通過(guò)運(yùn)行以下命令將所需屬性間隔設(shè)置為3000:
Azure CLI
az iot hub device-twin update-n<your hub name>
-d<your device id>--set properties.desired.interval=3000
可從設(shè)備讀取此屬性。
設(shè)備孿生報(bào)告屬性
通過(guò)運(yùn)行以下命令獲取報(bào)告的設(shè)備屬性:
Azure CLI
az iot hub device-twin show-n<your hub name>-d<your device id>
其中一個(gè)克隆的已報(bào)告屬性是$metadata。$lastUpdated,它顯示設(shè)備應(yīng)用程序更新其報(bào)告屬性集的最后時(shí)間。
設(shè)備孿生標(biāo)記
通過(guò)運(yùn)行以下命令顯示設(shè)備的標(biāo)記和屬性:
Azure CLI
az iot hub device-twin show--hub-name<your hub name>--device-id<your device id>
通過(guò)運(yùn)行以下命令向設(shè)備添加字段角色=溫度和濕度:
Azure CLI
az iot hub device-twin update
--hub-name<your hub name>
--device-id<your device id>
--set tags='{"role":"temperature&humidity"}}'
設(shè)備孿生查詢
通過(guò)運(yùn)行以下命令查詢角色標(biāo)記=“溫度和濕度”的設(shè)備:
Azure CLI
az iot hub query--hub-name<your hub name>
--query-command"SELECT*FROM devices WHERE tags.role='temperature&humidity'"
通過(guò)運(yùn)行以下命令查詢除角色標(biāo)記=“溫度和濕度”的設(shè)備以外的所有設(shè)備:
Azure CLI
az iot hub query--hub-name<your hub name>
--query-command"SELECT*FROM devices WHERE tags.role!='temperature&humidity'"