600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 中移M5311模块MQTT协议连接阿里云物联网平台(干货)

中移M5311模块MQTT协议连接阿里云物联网平台(干货)

时间:2023-06-05 20:18:46

相关推荐

中移M5311模块MQTT协议连接阿里云物联网平台(干货)

一、准备三元组

在阿里云物联网平台新建产品和设备后,平台给每一个设备自动赋予三元组。

二、准备MQTT协议参数

新建产品时,阿里云物联网平台会分配一个含productkey的子域名,端口号固定是1883。域名中含有阿里云物联网服务器的地理信息,如cn-shanghai,就是华东2服务器。这个不能搞错。

Clinent ID是一个组合,是自己定义的ID号配上附加内容|*****|。这里是|securemode=3,signmethod=hmacsha1|,securemode=3意思是采用TCP直连方式接入,signmethod=hmacsha1意思是采用hmacsha1算法加密解密。

用户名user也是一个组合,是三元组里的DeviceName&ProductKey。DeviceName是在阿里云物联网平台新建设备时为每一个设备起的名字。

将clientId、deviceName、productKey三者连接起来,使用DeviceSecret按照sha1算法进行加密计算得到密码。加密计算可以使用下面这个网页工具:/hmac

得到以上参数后,可以先把配置MQTT参数的命令写好,AT+MQTTCFG命令参数含义见下图:

``

AT+MQTTCFG="g************q.iot-as--",1883,"000001|securemode=3,signmethod=hmacsha1|",80,"00001&gb**********q","d14481***************************************31d2ce",1

三、AT命令接入

AT//确认模组开机正常,返回 OK, 自适应波特率AT+CLPLMN 命令可清除模组的驻网记录+CLPLMN: 0 //返回 0, 说明已成功清除记录OKATE0 (可选) //关闭 AT 指令回显OKAT+SM=LOCK_FOREVER//调试时需要模组一直不进入休眠AT+CEDRXS=0,5 //关闭 eDRX 功能 使用 GRE 长连接或者 MQTT 时必须手动关闭 eDRX 及 PSMAT+CPSMS=0;//禁止模组 PSM 功能,AT+CIMI //确认读 SIM 卡正常AT+CEREG? //确认基站注册状态 0,1 或者 0,5 1-代表本地已注册上, 5-代表漫游已注册上AT+CGATT? //确认 PDP 激活状态,1-代表已激活 0-代表未激活,M5311 自动入网后自动激活。AT+MQTTCFG="g*******Hq.iot-as--",1883,"000001|securemode=3,signmethod=hmacsha1|",80,"00001&g********Hq","d1448138324c6ad************79b8431d2ce",1//注意替换其中的*号AT+MQTTOPEN=1,1,0//发送连接建立请求+MQTTOPEN: OK//连接成功AT+MQTTSUB="/gb*******Hq/00001/user/ctr",0 //订阅主题ctr+MQTTSUBACK:1,1,/gb5*******q/00001/user/ctr//订阅成功响应+MQTTTO: 3//注意,此处M5311返回订阅超时,但是实际上查询阿里云物联网平台日志是订阅成功的,猜测应该是M5311的固件库没有和阿里云应答匹配上吧。模组默认是10s超时。AT+MQTTPUB="/gb5*****Hq/00001/user/reply",0,0,0,0,"nihao,aliyun!" //向主题发送数据,字符串格式。OKAT+MQTTPUB="/gb*****Hq/00001/user/reply",0,0,0,3,"7E7A7A" //向主题发送数据,HEX格式。OKAT+MQTTDISC 断开连接AT+MQTTDEL 释放资源,之后可以再次使用+MQTTCFG 进 行配置

四、注意事项

建立MQTT连接前,使用指令AT+MQTTSTAT?\r\n查下当前状态,如果是0的话配置参数,如果是1 的话直接发起连接。如果是5的话,已经建立连接,通信即可。如果还需要建立连接,需要关闭当前连接。

配置参数时,重复配置不接受。如果第一次配置错了,需要使用AT+MQTTDEL命令删除当前错误的配置,然后重新配置。否则会返回+CME ERROR: operation not supported,新的参数不会被接受。最后,登录阿里云的密码一定要计算对了否则阿里云服务器拒绝接入。使用AT+MQTTCFG配置时,注意keeplive时间设置60s到300s,否则阿里云物联网平台同样拒绝接入。实测30s可以接入,但是建议遵守阿里云规定来防止意外。

如果 keepAlive 时间小于服务器 ACK 响应检测时间(通过 AT+MQTTTO 设置),会出现 PINGREQ

检测不到断网的情况。

其他具体应用请参考阿里云和中移官方文档。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。