查看: 1259|回复: 0

[技术交流] Lierda NT35E&NT26E-CN MQTT介绍(下)

[复制链接]

50

主题

409

帖子

1309

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
1309
发表于 2022-7-29 17:12:01 | 显示全部楼层 |阅读模式
与阿里物联网平台对接流程
1.1 阿里物联网平台侧操作说明
1.1.1 用户注册
步骤1:访问https://help.aliyun.com/product/30520.html?spm=a2c4g.11174283.6.540.32021668tk7sOP。点击”注册”,进入注册页面
步骤2:填写注册信息,完成注册
步骤3:完成实名认证,开通物联网平台
图1.1 用户注册
1.1.2 产品创建&设备创建
“设备管理”—“产品”—“新建产品”
图1.2 创建产品
数据格式可以选择ICA或者透传格式,不影响数据通信。产品创建后,出现如下界面,表示产品已经创建成功。
图1.3  产品创建成功

点击“管理设备”—“添加设备”

图1.4 设备管理界面

图1.5 添加设备
点击“添加设备”,填写DeviceName,添加成功后,会出现设备证书。设备证书中的ProductKey、DeviceName、DeviceSecret、产品名称、URL是创建MQTT client的必须填充的信息。
设备创建成功后,可以看到设备还没有被激活
图1.6 设备创建成功

图1.7 URL信息

用户每定义一类产品都会自动生成对应的Topic列表,当然我们也可以"自定义Topic"便于测试。

Tips: 系统订阅/发布的主题在"产品信息"中,每个设备的三元组信息在"设备信息中",URL、Port在“MQTT连接参数”中

图1.8 系统默认创建Topic列表

图1.9 用户自定义Topic

Tips:用户只有定义Topic,模组才能订阅&上发数据





1.2 模组侧操作说明1.2.1 与阿里物联网平台交互介绍
mqtt的at命令是根据mqtt的功能划分来设计的,包括mqtt create, mqtt sub,mqtt unsub,mqtt pub,mqtt delete和mqtt receive,共6个at命令:
mqtt create的作用是创建socket和mqtt连接,发送这条at命令后在云平台上能看到设备上线。由于阿里物联网平台的mqtt client创建时使用的clientID,username和password字符比较长,所以create时配置的发送和接受的buffer需要尽量大一些,最好设置为512或以上。目前建议只创建一个mqtt client,多个mqtt client测试还不够充分。
Mqtt sub:订阅topic
Mqtt unsub:取消订阅的topic
Mqtt pub:发送数据给云平台
Mqtt delete:删除mqtt,包括mqtt连接和socket连接
Mqtt receive:接收mqtt server下发的数据

使用mqtt的at命令的流程如下:
步骤1:使用mqtt create创建mqtt连接,mqtt的参数在mqtt create的时候已经配置
步骤2:使用mqtt sub订阅topic
步骤3:使用mqtt pub发送数据
步骤4:当mqtt server下发数据的时候,mqtt receive命令会自动接收,并以“+MQTTRECV:id,tag,topic,data”的格式,打印出来
步骤5:使用mqtt delete删除mqtt连接
图1.10 与阿里物联网平台交互图
1.2.2 与阿里物联网平台交互操作
1.2.2.1 连接方式1:一机一密
配置“DeviceName”、“ProductKey”、“DeviceSecret”、URL、Port
1) 模组/设备上线
发送如下命令,打开阿里物联网平台的“设备管理”,可以看到对应的设备状态变成绿色,设备显示“在线
1.      AT+LMQTTCFG="aliauth",0,"a1xFDTv3InR","ec_smoke","sWZtNMYkODMxvauyaSiGeJrVEp9jZ4Tg  
2.      AT+LMQTTOPEN=0,"a1xFDTv3InR.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883  
3.      AT+LMQTTCONN=0,"eigencomm"  

“产品名称”、“DeviceName”、“ProductKey”、“DeviceSecret”、URL、Port是创建阿里物联网MQTT 客户端必须填充的信息。上述参数对应平台信息见1.1.2节产品创建图示,模组指令参考《LierdaNT35E&NT26E-CN AT命令手册》
图1.11  设备上线

2) 设备发送数据
AT+LMQTTPUB=0,0,0,1,"a1xFDTv3InR/ec_smoke/user/get",10,"update"

发送上述指令之后,在页面中点击“设备详情”—“日志服务”—“前往查看”,可以看到,已经收到client上报的数据。
为了考虑兼容性,LMQTTPUB指令中长度信息≥实际发送的数据即可。
图1.12 日志服务界面
点击“MessageID”查看上报数据详细情况,把内容显示设置为“Text(UTF-8)”,可以看到收到的数据就是发送过来的“update”
图1.13 上报消息详细内容
3) 阿里物联网平台下发数据
平台下发数据,对应模组端是“订阅消息”。测试阿里物联网平台下发数据有2种方式,这里使用设备端直接下发方式,平台定义服务/属性方式用户自行按照阿里云协议定义相应接口。
首先用户参考图3.9定义Topic,然后模组端发送如下指令订阅该消息
1.      AT+LMQTTSUBUNSUB=0,0,1,"/a1JszCpjS61/NT35E_06011/user/COMMUTEST",2  

订阅成功后平台下发的数据模组就可以接受了,在“设备”—“查看”—“Topic列表”—“发布消息”中下发数据。

图1.14 平台下发消息
图1.15 填充待发送数据
图1.16 模组收到对应的数据
1.2.2.2 连接方式2:用户ID、秘钥连接(一机一密)
通过刚刚的连接方式,已经实现了模组的数据通信,但是有些客户可能觉得麻烦,因为要来回复制三元组、URL、Port端口号。这里使用“设备”—“查看”—“MQTT参数”统一复制,简化用户操作方式进行通信。
图1.17 MQTT连接参数
如图1.17,打开阿里云设备信息界面,点击“mqtt连接参数”查看待填充的参数。
AT+LMQTTOPEN=0,"iot-06z00csmvukc0w2.mqtt.iothub.aliyuncs.com",1883  
AT+LMQTTCONN=0,"gg1mTfE3P4r.869149048073220|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|","869149048073220&gg1mTfE3P4r","dfff87be89a9d7f472c5b973797d124317dda75b292aa64fd274a6fb383fab5c"  

这里不需要在填充对应的三元组,在LMQTTOPEN中填充URL、端口,然后在LMQTTCONN中填充clientId、username、passwd,其他与上述连接方式相同,简化用户填充流程。


1.2.2.3一型一密钥(预注册)
1) 平台连接参数获取
所需参数如下图所示
至此我们获得所需的所有参数。
1.      "ProductKey": gg1mTfE3P4r  
2.      "ProductSecret": 4cLuZilHKJlXv56V  
3.      "ProductKey": gg1mTfE3P4r  
4.      "DeviceName": 866449060001973  
5.      "InstanceId": iot-06z00csmvukc0w2
6.      "productName": MB26


2)平台连接参数获取
1.      [20:55:49.793]发→◇AT+LMQTTCFG="cloud",0,2,1  
2.      □  
3.      [20:55:49.799]收←◆  
4.      OK  
5.        
6.      [20:56:07.510]发→◇  AT+LMQTTCFG="aliauth",0,"gg1mTfE3P4r","866449060001973","","MB26","4cLuZilHKJlXv56V","register","hmacsha1","tlspsk","2","iot-06z00csmvukc0w2",1  
7.      □  
8.      [20:56:07.526]收←◆  
9.      OK  
10.      
11.     [20:56:14.683]发→◇AT+LMQTTOPEN=0,"gg1mTfE3P4r.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883  
12.     □  
13.     [20:56:14.692]收←◆  
14.     OK  
15.      
16.     [20:56:15.728]收←◆  
17.     +LMQTTOPEN: 0,0  
18.      
19.     [20:56:20.076]发→◇AT+LMQTTCONN=0,"test"  
20.     □  
21.     [20:56:20.081]收←◆  
22.     OK  
23.      
24.     [20:56:20.236]收←◆  
25.     +LMQTTCONN: 0,0,0  
26.      
27.     [20:56:20.254]收←◆  
28.     +LMQTTURC: RECV,0,42405,"/ext/register",{"deviceSecret":"a1abdf10967991647860f03d7c324d02","productKey":"gg1mTfE3P4r","deviceName":"866449060001973"}  
29.      
30.     [20:56:23.076]收←◆  
31.     +LMQTTCONN: 0,0,0  
32.      
33.     [20:59:26.602]发→◇AT+LMQTTSUBUNSUB=0,0,1,"/gg1mTfE3P4r/866449060001973/user/test",2  
34.     □  
35.     [20:59:26.610]收←◆  
36.     OK  
37.      
38.     [20:59:26.743]收←◆  
39.     +LMQTTSUBUNSUB: 0,1,0,1

1.2.2.4一型一密钥(免预注册)
1)平台参数获取
同一型一密预注册,但无需创建设备,AT指令设备名称处填写任意值
    新老版本实例说明:
需注意平台如图显示处,如果为cn-shanghai则连接参数倒数第二位,实例id填空,不是则为新版本阿里实例需要填实际平台显示实例id。

1.      [18:27:29.042]发→◇AT+ECMTCFG="cloud",0,2,1  
2.      □  
3.      [18:27:29.045]收←◆  
4.      OK  
5.        
6.      [18:27:37.556]发→◇AT+ECMTCFG="aliauth",0,"a1d0LIp2fj7","ec-hou22se","","qhq_test_1230A","Qi3nNvkDhmeISoZH","regnwl","hmacsha1","tlspsk","-2",,1  
7.      □  
8.      [18:27:37.560]收←◆  
9.      OK  
10.      
11.     [18:27:49.948]发→◇AT+ECMTOPEN=0,"a1d0LIp2fj7.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883  
12.     □  
13.     [18:27:49.951]收←◆  
14.     OK  
15.      
16.     [18:27:51.107]收←◆  
17.     +ECMTOPEN: 0,0  
18.      
19.     [18:27:54.771]发→◇AT+ECMTCONN=0,"ec_city"  
20.     □  
21.     [18:27:54.774]收←◆  
22.     OK  
23.      
24.     [18:27:55.173]收←◆  
25.     +ECMTCONN: 0,0,0  
26.      
27.     +ECMTRECV: 0,42405,"/ext/regnwl",{"clientId":"1RAdzxzNh1EwZRjG5tHt000100","productKey":"a1d0LIp2fj7","deviceName":"ec-hou22se","deviceToken":"^1^1655375274601^627844c2d081717"}  
28.      
29.     [18:27:57.870]收←◆  
30.     +ECMTCONN: 0,0,0  


1.2.2.2 MQTTS
1.      [22:32:18.089]发→◇AT+LMQTTCFG="cloud",0,2,1  
2.      □  
3.      [22:32:18.091]收←◆  
4.      OK  
5.        
6.      [22:32:24.975]发→◇AT+LMQTTCFG="aliauth",0,"gg1mTfE3P4r","869149048073220","04ec6a741f40457aefb1ebf0099d951c","","","","hmacsha1","tlspsk","",,0  
7.      □  
8.      [22:32:24.978]收←◆  
9.      OK  
10.      
11.     [22:32:31.926]发→◇AT+LMQTTOPEN=0,"gg1mTfE3P4r.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883  
12.     □  
13.     [22:32:31.929]收←◆  
14.     OK  
15.      
16.     [22:32:32.930]收←◆  
17.     +LMQTTOPEN: 0,0  
18.      
19.     [22:32:41.444]发→◇AT+LMQTTCONN=0,"test"  
20.     □  
21.     [22:32:41.447]收←◆  
22.     OK  
23.      
24.     [22:32:41.543]收←◆  
25.     +LMQTTCONN: 0,0,0  





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表