為了降低燒錄成本,避免對每個設備燒錄不同的設備密鑰,物聯網平臺的C Link SDK提供動態注冊功能(即:一型一密)。通過C Link SDK的MQTT動態注冊功能,設備可獲取接入物聯網平臺所需的認證信息,從而接入物聯網平臺。
前提條件
- 已準備開發環境。
- 已獲取C Link SDK。
定制SDK時,在SDK定制頁面的設備認證方案區域,選中動態注冊。
- 已創建產品,獲取了ProductName和ProductSecret,并開啟了動態注冊。
- 如果選擇一型一密預注冊的認證方式,需已為產品添加單個設備或批量添加設備,獲取了DeviceName。
一型一密預注冊和免預注冊的功能特點、使用限制等更多信息,請參見一型一密。
功能原理
應用程序通過調用C Link SDK的API,基于MQTT協議,動態注冊設備,以獲取設備接入物聯網平臺所需的認證信息。
如下功能時序圖,以設備的應用程序./demos/dynregmq_basic_demo.c為例,介紹應用程序實現該功能的流程。
MQTT動態注冊API的更多信息,請參見aiot_dynregmq_api.h。
MQTT動態注冊的預注冊和免預注冊,發送注冊請求時的身份信息和返回的認證信息如下表所示。
方式 | 請求的身份信息 | 返回的認證信息 |
---|---|---|
預注冊 |
|
DeviceSecret |
免預注冊 |
|
|
使用示例
- MQTT動態注冊功能的參考示例,請參見MQTT動態注冊使用示例。
- MQTT動態注冊功能相關錯誤碼,請參見aiot_dynregmq_api.h中的狀態碼描述。
后續步驟
說明
- 設備未激活時,可進行多次動態注冊,設備的DeviceSecret以最后一次為準。請確保固化到設備的DeviceSecret為最新。
- 設備已激活時,您需調用ResetThing接口重置云端設備動態注冊狀態為未注冊,才能再次動態注冊該設備。