为了降低烧录成本,避免对每个设备烧录不同的设备密钥,物联网平台的C Link SDK提供动态注册功能(即:一型一密)。通过C Link SDK的MQTT动态注册功能,设备可获取接入物联网平台所需的认证信息,从而接入物联网平台。

前提条件

  • 已准备开发环境
  • 已获取C Link SDK

    定制SDK时,在SDK定制页面的设备认证方案区域,选中动态注册

  • 已创建产品,获取了ProductNameProductSecret,并开启了动态注册
  • 如果选择一型一密预注册的认证方式,需已为产品添加单个设备或批量添加设备,获取了DeviceName

    一型一密预注册和免预注册的功能特点、使用限制等更多信息,请参见一型一密

功能原理

应用程序通过调用C Link SDK的API,基于MQTT协议,动态注册设备,以获取设备接入物联网平台所需的认证信息。

如下功能时序图,以设备的应用程序./demos/dynregmq_basic_demo.c为例,介绍应用程序实现该功能的流程。

MQTT动态注册时序图

MQTT动态注册API的更多信息,请参见aiot_dynregmq_api.h

MQTT动态注册的预注册和免预注册,发送注册请求时的身份信息和返回的认证信息如下表所示。

方式 请求的身份信息 返回的认证信息
预注册
  • ProductName
  • ProductSecret
  • DeviceName
  • DeviceSecret
免预注册
  • ProductName
  • ProductSecret
  • clientId
  • userName
  • password

使用示例

  • MQTT动态注册功能的参考示例,请参见使用示例
  • MQTT动态注册可能出现的错误码,请参见aiot_dynregmq_api.h中的状态码描述

后续步骤

MQTT动态注册成功后,您可以通过返回的认证信息,激活设备,将设备接入物联网平台。根据业务场景的设备协议,您可参考:
说明
  • 设备未激活时,可进行多次动态注册,设备的DeviceSecret以最后一次为准。请确保固化到设备的DeviceSecret为最新。
  • 设备已激活时,您需调用ResetThing API重置云端设备状态为未激活,才能再次动态注册该设备。