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