为了降低烧录成本,避免对每个设备烧录不同的设备密钥,物联网平台的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接口重置云端设备动态注册状态为未注册,才能再次动态注册该设备。