我是靠谱客的博主 整齐面包,最近开发中收集的这篇文章主要介绍NB(M5311)与移动ONENET连接(基于MQTT协议),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

                                                    

  1.  型号介绍

  1.  协议区分
    1. CoAP与MQTT区别

    1. LWM2M与CoAP区分

  1. 与ONENET连接

1)打开OneNET 网站:open.iot.10086.cn

2)登录平台,账号需要用户自己注册,我们测试账号为公司的企业账号,个人账号并未测试,登录入口如下:

3)登录账号后,进入“开发者中心”,如下图:

4)进入“多协议接入”

5)添加产品

6)填写参数

7)点击添加的“M5311_MQTT”,进入界面如下,选择“设备列表”

8)在正式设备里面选择“添加设备”

9)添加设备的参数,设备名称和鉴权信息可以自己命名,测试时我们使用M5311_MQTT和LSD 作为名字和鉴权信息,如下图:

10) 新建好设备后,如下图所示,是离线状态

在数据流里面可以查看模组上传到OneNET 的数据,更多操作里面有下发命令,可以通过平台下发数据给模组。

11) 至此OneNET 配置已经完成,下一步开始发送AT 指令,上线OneNET 平台,进行数据收发测试。

  1. 与ONENET平台数据收发(基于MQTT协议)

1)开机后,模组会主动推送数据:

*ATREADY: 1

+CFUN: 1

+CPIN: READY

2)模组注册上网络后,会主动的推送IP(模块注册网络需要一些时间):

+IP: 10.171.109.94

3)发送查询信息,包括AT 命令、ATI(软件版本号):

AT

OK

ATI

CMCC

M5311

M5311-MLVH1S02

M5311-MLVH1S02

OK

4)打开LED 指示灯功能和关闭休眠功能(可选):

AT+CMSYSCTRL=0,2

OK

AT+SM=LOCK  //关闭睡眠模式

OK

5)查询IMEI、卡状态、IMSI、ICCID、网络注册状态和信号强度:

AT+CGSN=1  //查询IMEI/设备

+CGSN: 869975030649621

OK

AT+CPIN?    //是否插卡

+CPIN: READY

OK

AT+CIMI  //请求国际移动台设备标识/用户

460042094606376

OK

AT+ICCID  //读取ICCID标识/卡

+ICCID: 89860400011893516476

OK

AT+CEREG?           //网络注册状态

+CEREG: 0,1

OK

AT+CSQ

+CSQ: 17,6

OK

6)MQTT client 参数配置,连接OneNET 服务器:

AT+MQTTCFG="183.230.40.39",6002,"579894300",1800,"309663","LSD",1

OK

该命令配置MQTT 连接参数,onenet 服务器的ip 地址:183.230.40.39,端口号:6002,设备ID:579894300, keepalive 时间:1800,产品ID:309663,鉴权码:LSD //同时删除session

7)发送连接建立请求:

AT+MQTTOPEN=1,1,0,0,0,"",""

OK

8)向OneNET 数据流推送消息

AT+MQTTPUB="$dp",1,0,0,26,"0300177B22646F696F74223A227777772E6D6F7A752E636F227D"//格式的内容为 {数据流名称:字符串}

OK

如果成功发送数据,会返回提示信息:

+MQTTPUBACK: 1,0

参考档案:M5310-A官方文档 <M531X MQTT 使用指导_v1.3>

http://www.luyixian.cn/news_show_240809.aspx

AT+MQTTPUB=$dp,0,1,0,28,
0300197b2261223a392c2262223a392c2263223a392c2264223a397d
上传数据28为发送数据长度,
数据中:03指明数据为json格式,
0019为json字符串内容长度,
其后为json字串的hex格式

 

2.7 上报数据到平台

AT+MQTTPUB=$dp,<qos>,<retain>,<dup>,<message_len>,<message>

当AT+MQTTPUB指令用作上报消息到平台并显示功能时,需使用特定的主题“$dp”.

参数将分为 参数将分为3个部分:

<数据类型><字符长度><消息内容>

<数据类型> 03 -字符串

<字符长度> 4位 16进制计数,表示<消息内容>字符长度

<消息内容> 必须为16进制, 字符串内容格式为 {“数据流名称”:”字符串”},通过字符串16进制工具转为16进制后合入AT指令 (建议字符长度不超过128)。

在线字符串转16进制: …

在线字符串长度计算: …

如: 要往数据点 countd 传递数据 1800

消息内容为: {"countd":1800}
转换为16进制为: 7b22636f756e7464223a313830307d
消息内容长度为: 15 转为4位16进制为: 000F (字符串的长度, 即16进制长度除以2)

则 为

03000F7b22636f756e7464223a313830307d

<message_len>为 message 的长度(16进制长度除以2)

18

所以此条命令为:

AT+MQTTPUB=$dp,1,0,0,18,03000F7b22636f756e7464223a313830307d

注:上传到云平台是必须主题是"$dp"。

9)OneNET 服务器在设备列表-下发命令里面,可以直接向模组下发数据

10)关闭连接、释放资源、模组关机:

AT+MQTTDISC  //关闭MQTT连接

OK

+MQTTDISC: OK

AT+MQTTDEL   //释放MQTT资源

OK

AT+CPOF   //模组关机

OK

POWER OFF

5主题的订阅与发送

订阅的方法:

https://blog.csdn.net/lazyduck/article/details/102727228?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158441463419724847059141%2522%252C%2522scm%2522%253A%252220140713.130056874..%2522%257D&request_id=158441463419724847059141&biz_id=0&utm_source=distribute.pc_search_result.none-task

MQTT.fx的使用方法:

https://blog.csdn.net/tiantang_1986/article/details/85101366

参考AT指令:

http://www.luyixian.cn/news_show_240809.aspx

 

最后

以上就是整齐面包为你收集整理的NB(M5311)与移动ONENET连接(基于MQTT协议)的全部内容,希望文章能够帮你解决NB(M5311)与移动ONENET连接(基于MQTT协议)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部