设备上线之前您需要对设备进行身份注册,标识您的设备。
接入物联网平台的设备身份注册有两种方式:
- 使用一机一密的方式。首先,在物联网平台注册设备,获取设备证书信息(ProductKey、DeviceName、DeviceSecret)做为设备唯一标识。然后,将设备证书信息预烧录到固件,固件在完成上线建连后即可向云端上报数据。具体操作,请参见一机一密。
- 使用动态注册的方式,包括直连设备使用一型一密动态注册和子设备动态注册。
- 直连设备使用一型一密动态注册的流程:
- 在物联网平台预注册设备,并获取产品证书(ProductKey和ProductSecret)。预注册设备时,可以使用设备的MAC地址或SN序列号等作为DeviceName。
- 在控制台开启设备所属产品的动态注册开关。
- 将产品证书烧录至固件。
- 设备向云端发起身份认证。云端认证成功后,下发DeviceSecret。
- 设备使用设备证书与云端建立连接。
具体操作,请参见一型一密。
- 子设备动态注册流程:
- 在物联网平台预注册子设备,获取ProductKey。预注册设备时,可以使用设备的MAC地址或SN序列号等作为DeviceName。
- 在控制台开启子设备所属产品的动态注册开关。
- 将子设备ProductKey烧录至固件或网关上。
- 网关代替子设备向云端发起身份注册。云端认证成功后,下发DeviceSecret。
- 直连设备使用一型一密动态注册的流程:
子设备的动态注册
网关类型的设备,可以通过上行请求为子设备发起动态注册,返回成功注册的子设备的设备证书。
数据上行。
- 请求Topic:
/sys/{productKey}/{deviceName}/thing/sub/register
- 响应Topic:
/sys/{productKey}/{deviceName}/thing/sub/register_reply
请求数据格式:
{
"id": "123",
"version": "1.0",
"params": [
{
"deviceName": "deviceName1234",
"productKey": "a1234******"
}
],
"method": "thing.sub.register"
}
响应数据格式:
{
"id": "123",
"code": 200,
"data": [
{
"iotId": "12344",
"productKey": "a1234******",
"deviceName": "deviceName1234",
"deviceSecret": "xxxxxx"
}
]
}
参数说明如下表。
参数 | 类型 | 说明 |
---|---|---|
id | String | 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。 |
version | String | 协议版本号,目前协议版本号唯一取值为1.0。 |
params | List | 子设备动态注册的参数。 |
deviceName | String | 子设备的名称。 |
productKey | String | 子设备的产品ProductKey。 |
iotId | String | 设备的唯一标识ID。 |
deviceSecret | String | 设备密钥。 |
method | String | 请求方法,取值thing.sub.register 。
|
code | Integer | 结果信息。 |
错误码说明如下表。
错误码 | 消息 | 描述 |
---|---|---|
460 | request parameter error | 请求参数错误。 |
6402 | topo relation cannot add by self | 设备不能将自己添加为自己的子设备。 |
401 | request auth error | 签名校验失败。 |
直连设备使用一型一密动态注册
直连设备动态注册,通过HTTP发送请求。需先在控制台上,开通该产品的一型一密动态注册功能。
- URL模板:
https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device
- HTTP方法:POST
请求数据格式:
POST /auth/register/device HTTP/1.1
Host: iot-auth.cn-shanghai.aliyuncs.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 123
productKey=a1234******&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5
响应数据格式:
{
"code": 200,
"data": {
"productKey": "a1234******",
"deviceName": "deviceName1234",
"deviceSecret": "adsfw******"
},
"message": "success"
}
参数说明如下表。
参数 | 类型 | 说明 |
---|---|---|
Method | String | POST |
Host | String | Endpoint地址:iot-auth.cn-shanghai.aliyuncs.com 。
|
Content-Type | String | 设备发送给物联网平台的上行数据的编码格式。 |
productKey | String | 产品唯一标识。 |
deviceName | String | 设备名称。 |
random | String | 随机数。 |
sign | String | 签名。
加签方法:
加签计算示例如下:
|
signMethod | String | 签名方法,目前支持hmacmd5、hmacsha1、hmacsha256。 |
code | Integer | 结果信息。 |
deviceSecret | String | 设备密钥。 |
在文档使用中是否遇到以下问题
更多建议
匿名提交