Air780E|联通|雁飞格|AT命令|物联网|三元组|鉴权|算法|密钥生成|(4)-联通雁飞格物手动接入步骤

  • Post author:
  • Post category:其他



目录


基础资料


探讨重点


实现功能


硬件准备


软件版本


在雁飞格物平台上创建产品


1、创建产品


2、查看雁飞格物平台接入协议


组成ClientId


组成userName


3、设备鉴权信息


鉴权参数计算(python版):


4、MQTT直连雁飞格物平台


5、发布与订阅消息


​6、订阅


订阅云端响应属性上报主题


7、发布


基础资料

基于Air780E开发板:

Air780E文档中心

简介:

AT开发

探讨重点

本系列主要探讨MQTT手动接入联通雁飞格物平台的基本操作及手动鉴权步骤、信息订阅及发布的基本原理。

参考阅读:

物联网模组AT命令接入云平台(1)-MQTT基本原理及步骤

实现功能

MQTT手动接入联通雁飞格物平台的基本操作及手动鉴权。

硬件准备

Air780E开发板1块,SIM卡1张。

软件版本

Revision: AirM2M_780E_V1108_LTE_AT

任意串口调试工具(本文使用

llcom1.1.1.9

,波特率9600)

在雁飞格物平台上创建产品

1、创建产品


雁飞格物平台

​​​​​​​

​产品名称根据自己需求填写

设备类型:直连设备

设备接入协议:MQTT

联网方式:2G/3G/4G/5G

认证方式:设备密钥

物模型定义根据自己需求填写、演示选择温湿度监测单元。


标准功能定义

功能类型

功能名称

标识符

是否必选

数据类型

属性

温度

temperature

必选

float

属性

经度

longitude

必选

double

属性

纬度

latitude

必选

double

属性

海拔

altitude

必选

double

属性

湿度

humidity

必选

float

属性

省电模式

powerSavingMode

必选

enum

服务

蜂鸣告警控制

buzzerControl

必选

点击提交即可

点到设备一栏,新建设备

产品一栏选择上一步创建的产品,设备名称、deviceKey、IMEI根据自身需要填写

注意:!!!如果deviceKey为空,则联通物联网平台会自动生成

基本信息

产品名称

AIR780E 查看产品

productKey

cu10k330sbs*****

设备状态

未激活

设备名称

4600112503*****

deviceKey

medlar

认证方式

设备密钥

设备类型

设备

接入协议

MQTT

IP地址

deviceId

重置

IMEI

4600112503*****

iotId

b2a955f59eaf4694bf1d8dbee9d*****

点击提交后,设备即可创建成功

2、查看雁飞格物平台接入协议


文档展示 – 雁飞格物平台 (cuiot.cn)

MQTT协议规定连接参数须有ClientID,Username和Password三个字段,雁飞格物平台规定的三元组格式详细信息可在接入文档中查看

ClientId:{deviceId}|{productKey}|{signMethod}|{authType}|{operator}

Username:{deviceKey}|{productKey}

Password:将deviceId, deviceKey,productKey参数值依次进行拼接再进行hmac_sha256或sm3得到

组成ClientId

operator:由协议可见,当联网方式为蜂窝网时,operator字段表示运营商标识符,这里测试用的是移动卡,operator字段则为2

deviceId:deviceId需要和operator搭配使用,operator为1、2、3、4任意一个时,deviceId为流量卡的iccid 898601228012082*****

我们发AT+ICCID查一下当前设备流量卡的iccid,作为deviceId来使用

​authType:一机一密填0即可

signMethod:此次示例使用hmac_sha256,写0即表示接入验证用的是hmac_sha256

productKey:在产品列表即可找到 cu10k330sbs*****

​到此,clientId已经拼接好了,拼接后的clientId如下

​ 898601228012082*****|cu10k330sbs*****|0|0|2

组成userName

​在设备详细信息内找到deviceKey和productKey,拼接在一起即可


userName组成如下:

username:medlar|cu10k330sbs*****

组成password

​ 如文档所说,将deviceId,deviceKey和productKey拼接再进行hmac_sha256加密即可得到password

​ 加密密钥为设备的deviceSecre,在设备详情页中可以找到

3C09BC967DA7C2B53DE55B65*****F3B

3、设备鉴权信息

productKey

cu10k330sbs*****

deviceKey

medlar

deviceSecret

3C09BC967DA7C2B53DE55B65*****F3B

加密之前deviceId,deviceKey、productKey拼接的字符串为:

898601228012082*****medlarcu10k330sbs*****

密钥为3C09BC967DA7C2B53DE55B65*****F3B

加密后得到的password为

021e76d54221851be1307492a5a1abc3f6ad2031c96ca71d07ca34d0262*****

鉴权参数计算(python版):

def hmac_sha256(key, value):
    """
    hmacsha256加密
    return:加密结果转成16进制字符串形式
    """
    message = value.encode('utf-8')
return hmac.new(key.encode('utf-8'), message, digestmod=hashlib.sha256).hexdigest()
str="898601228012082*****medlarcu10k330sbs*****"
key="3C09BC967DA7C2B53DE55B65*****F3B"
print(hmac_sha256(key, str))

结果:021e76d54221851be1307492a5a1abc3f6ad2031c96ca71d07ca34d0262*****

4、MQTT直连雁飞格物平台

[2022/11/21 15:59:47.4123] ← AT+MCONFIG="898601228012082*****|cu10k330sbs*****|0|0|2","medlar|cu10k330sbs*****","021e76d54221851be1307492a5a1abc3f6ad2031c96ca71d07ca34d0262*****"
OK
[2022/11/21 16:00:48.7303] ← AT+MIPSTART="dmp-mqtt.cuiot.cn",1883
[2022/11/21 16:00:48.8542] → AT+MIPSTART="dmp-mqtt.cuiot.cn",1883
OK
[2022/11/21 16:00:49.1099] → 
CONNECT OK
[2022/11/21 16:00:50.4232] ← AT+MCONNECT=1,60
[2022/11/21 16:00:50.5276] → AT+MCONNECT=1,60
OK
[2022/11/21 16:00:50.6951] → 
CONNACK OK


5、发布与订阅消息

雁飞格物平台有固定的通信TOPIC,在设备详情页TOPIC列表内,这里演示设备上传物模型数据和订阅上传物模型响应功能

​属性定义在产品详情页的功能定义一栏内获取

​6、订阅

订阅云端响应属性上报主题

[2022/11/21 16:06:36.7815] ← AT+MSUB="$sys/cu10k330sbs*****/medlar/property/pub_reply",0
OK
[2022/11/21 16:06:37.0950] → 
SUBACK

7、发布

向设备上报属性的主题发布消息,消息携带设备的属性,不同的产品具有不同的属性,可以在设备物模型处查看

具体payload上传协议需要查看雁飞格物平台物模型文档

文档展示 – 雁飞格物平台 (cuiot.cn)

此处上报一条温度属性

[2022/11/21 16:12:24.6508] ← AT+MPUB="$sys/cu10k330sbs*****/medlar/property/pub",0,0,"{\22messageId\22:\22123\22,\22params\22:{\22key\22:\22temperature\22,\22value\22:23.4,\22ts\22:\221528292272000\22}}"
OK
[2022/12/06 16:40:18.8405] → +MSUB: "$sys/cu10k330sbs*****/medlar/property/pub_reply",55 byte,{"code":"000000","message":"Success","messageId":"123"}
平台返回success,表示属性上报成功

在设备列表的设备详情页、设备数据一栏内查看上报的数



版权声明:本文为Medlar_CN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。