本文適用于設(shè)備開發(fā)人員。
IoT Central 應(yīng)用程序使你可以在設(shè)備整個(gè)生命周期內(nèi)監(jiān)視和管理數(shù)百萬臺(tái)設(shè)備。 本指南適用于要執(zhí)行以下操作的設(shè)備開發(fā)人員:實(shí)現(xiàn)代碼以在連接到 IoT Central 的設(shè)備上運(yùn)行。
設(shè)備使用以下基元與 IoT Central 應(yīng)用程序進(jìn)行交互:
“遙測”是設(shè)備發(fā)送給 IoT Central 的數(shù)據(jù)。 例如,來自內(nèi)載傳感器的溫度值流。
“屬性”是設(shè)備報(bào)告給 IoT Central 的狀態(tài)值。 例如,設(shè)備的當(dāng)前固件版本。 你還可以擁有 IoT Central 可以在設(shè)備上更新的可寫屬性,例如目標(biāo)溫度。
“命令”由 IoT Central 進(jìn)行調(diào)用以控制設(shè)備的行為。 例如,IoT Central 應(yīng)用程序可能會(huì)調(diào)用命令來重啟設(shè)備。
解決方案生成器負(fù)責(zé)在 IoT Central Web UI 中配置儀表板和視圖,以直觀呈現(xiàn)遙測、管理屬性和調(diào)用命令。
以下部分介紹了可連接到 IoT Central 應(yīng)用程序的設(shè)備的主要類型:
獨(dú)立設(shè)備可直接連接到 IoT Central。 獨(dú)立設(shè)備通常會(huì)將遙測從其內(nèi)載或聯(lián)網(wǎng)的傳感器發(fā)送到 IoT Central 應(yīng)用程序, 并且還可以報(bào)告屬性值、接收可寫屬性值以及響應(yīng)命令。
網(wǎng)關(guān)設(shè)備管理連接到 IoT Central 應(yīng)用程序的一個(gè)或多個(gè)下游設(shè)備。 可使用 IoT Central 配置下游設(shè)備與網(wǎng)關(guān)設(shè)備之間的關(guān)系。 若要了解詳細(xì)信息,請(qǐng)參閱在 Azure IoT Central 應(yīng)用程序中定義新的 IoT 網(wǎng)關(guān)設(shè)備類型。
邊緣設(shè)備直接連接到 IoT Central,但充當(dāng)其他設(shè)備(稱為“葉設(shè)備”)的中介。 邊緣設(shè)備通常位于葉設(shè)備(邊緣設(shè)備充當(dāng)其中介)附近。 使用邊緣設(shè)備的場景包括:
使無法直接連接到 IoT Central 的設(shè)備能夠通過邊緣設(shè)備連接。 例如,葉設(shè)備可能使用藍(lán)牙連接到邊緣設(shè)備,后者隨后通過 Internet 連接到 IoT Central。
在將遙測發(fā)送到 IoT Central 之前,對(duì)其進(jìn)行聚合。 此方法有助于降低向 IoT Central 發(fā)送數(shù)據(jù)的成本。
本地控制葉設(shè)備,避免與通過 Internet 連接到 IoT Central 相關(guān)的延遲。
邊緣設(shè)備還可以發(fā)送自己的遙測,報(bào)告其屬性,并響應(yīng)可寫的屬性更新和命令。
IoT Central 僅可看到邊緣設(shè)備,看不到連接到邊緣設(shè)備的葉設(shè)備。
若要了解詳細(xì)信息,請(qǐng)參閱將 Azure IoT Edge 設(shè)備添加到 Azure IoT Central 應(yīng)用程序。
Azure IoT Central 使用 Azure IoT 中心設(shè)備預(yù)配服務(wù) (DPS) 來管理所有設(shè)備注冊(cè)和連接。
使用 DPS:
可讓 IoT Central 支持大規(guī)模的設(shè)備加入和連接。
可讓你離線生成設(shè)備憑據(jù)并配置設(shè)備,而無需通過 IoT Central UI 注冊(cè)設(shè)備。
可讓你使用自己的設(shè)備 ID 在 IoT Central 中注冊(cè)設(shè)備。 使用自己的設(shè)備 ID 可以簡化與現(xiàn)有后端辦公系統(tǒng)的集成。
可以通過一致的單一方式將設(shè)備連接到 IoT Central。
若要了解詳細(xì)信息,請(qǐng)參閱連接到 Azure IoT Central 和最佳做法。
設(shè)備與 IoT Central 應(yīng)用程序之間的連接使用共享訪問簽名或行業(yè)標(biāo)準(zhǔn) X.509 證書來得到保護(hù)。
設(shè)備可用于連接到 IoT Central 的通信協(xié)議包括 MQTT、AMQP 和 HTTPS。 在內(nèi)部,IoT Central 使用 IoT 中心來啟用設(shè)備連接。 有關(guān) IoT 中心針對(duì)設(shè)備連接支持的通信協(xié)議的詳細(xì)信息,請(qǐng)參閱選擇通信協(xié)議。
IoT Central 設(shè)備模板包括一個(gè)模型,用于指定該類型的設(shè)備應(yīng)實(shí)現(xiàn)的行為。 行為包括遙測、屬性和命令。
提示
可以將模型作為數(shù)字孿生定義語言 (DTDL) v2 JSON 文件從 IoT Central 導(dǎo)出。
每個(gè)模型都具有唯一的設(shè)備孿生模型標(biāo)識(shí)符 (DTMI),如 dtmi:com:example:Thermostat;1
。 當(dāng)設(shè)備連接到 IoT Central 時(shí),它會(huì)發(fā)送其實(shí)現(xiàn)的模型的 DTMI。 然后 IoT Central 可以將正確的設(shè)備模板與設(shè)備相關(guān)聯(lián)。
IoT 即插即用定義設(shè)備在實(shí)現(xiàn) DTDL 模型時(shí)應(yīng)遵循的一組約定。
Azure IoT 設(shè)備 SDK 包括對(duì) IoT 即插即用約定的支持。
設(shè)備模型是使用 DTDL 定義的。 此語言可讓你定義:
設(shè)備發(fā)送的遙測。 定義包括遙測的名稱和數(shù)據(jù)類型。 例如,設(shè)備以雙精度形式發(fā)送溫度遙測。
設(shè)備報(bào)告給 IoT Central 的屬性。 屬性定義包括其名稱和數(shù)據(jù)類型。 例如,設(shè)備將閥門的狀態(tài)報(bào)告為布爾值。
設(shè)備可從 IoT Central 接收的屬性。 還可以選擇將屬性標(biāo)記為可寫。 例如,IoT Central 將目標(biāo)溫度以雙精度值將發(fā)送到設(shè)備。
設(shè)備響應(yīng)的命令。 定義包含命令的名稱,以及任何參數(shù)的名稱和數(shù)據(jù)類型。 例如,設(shè)備響應(yīng)一個(gè)指定在重新啟動(dòng)之前要等待的秒數(shù)的重新啟動(dòng)命令。
DTDL 模型可以是非組件或多組件模型 :
非組件模型:簡單的模型不使用嵌入或級(jí)聯(lián)的組件。 所有遙測、屬性和命令都定義為單個(gè)默認(rèn)組件。 有關(guān)示例,請(qǐng)參閱恒溫器模型。
多組件模型。 包含兩個(gè)或以上組件的更為復(fù)雜的模型。 這些組件包括單個(gè)默認(rèn)組件以及一個(gè)或多個(gè)附加嵌套組件。 有關(guān)示例,請(qǐng)參閱溫度控制器模型。
若要了解詳細(xì)信息,請(qǐng)參閱 IoT 即插即用建模指南
設(shè)備在與 IoT Central 交換數(shù)據(jù)時(shí),應(yīng)遵循 IoT 即插即用約定。 約定包括:
當(dāng) DTMI 連接到 IoT Central 時(shí)發(fā)送 DTMI。
將格式正確的 JSON 有效負(fù)載和元數(shù)據(jù)發(fā)送到 IoT Central。
正確響應(yīng) IoT Central 中的可寫屬性和命令。
遵循組件命令的命名約定。
備注
目前 IoT Central 不完全支持 DTDL“Array”和“Geospatial”數(shù)據(jù)類型 。
若要了解有關(guān)設(shè)備與 IoT Central 交換的 JSON 消息格式的詳細(xì)信息,請(qǐng)參閱遙測、屬性和命令有效負(fù)載。
若要了解有關(guān) IoT 即插即用約定的詳細(xì)信息,請(qǐng)參閱 IoT 即插即用約定。
使用 Azure IoT 設(shè)備 SDK 中的一個(gè)來實(shí)現(xiàn)設(shè)備行為。 代碼應(yīng)做到以下幾點(diǎn):
將設(shè)備注冊(cè)到 DPS,并使用 DPS 中的信息連接到 IoT Central 應(yīng)用程序中的內(nèi)部 IoT 中心。
公布設(shè)備實(shí)現(xiàn)的模型的 DTMI。
以設(shè)備模型指定的格式發(fā)送遙測。 IoT Central 使用設(shè)備模板中的模型來確定如何使用遙測,以便實(shí)現(xiàn)可視化效果和分析。
同步設(shè)備和 IoT Central 之間的屬性值。 模型指定屬性名稱和數(shù)據(jù)類型,以便 IoT Central 可以顯示信息。
為模型中指定的命令實(shí)現(xiàn)命令處理程序。 模型指定設(shè)備應(yīng)使用的命令名稱和參數(shù)。
有關(guān)設(shè)備模板的角色的詳細(xì)信息,請(qǐng)參閱什么是設(shè)備模板?。
有關(guān)一些示例代碼,請(qǐng)參閱創(chuàng)建和連接客戶端應(yīng)用程序。
有關(guān)支持的語言和 SDK 的詳細(xì)信息,請(qǐng)參閱了解和使用 Azure IoT 中心設(shè)備 SDK。