mqtt 串口_移柯L620模组使用MQTT协议连接移动OneNet云平台-程序员宅基地

技术标签: mqtt如何判断设备离线  mqtt 串口  mqtt调试助手  mqtt调试工具  华为云平台 mqtt profile 文件  stm32连接阿里云mqtt  

436e9b8fd85c85cb55af2f0e0c9215f3.gif

点击上方蓝色字体,关注我们

1

硬件基础

最近调测移柯L620 NB-IoT模组, 特申请调测L620开发板(L620_ EVB),其专门为评估和测试L620模块而设计的,用于帮助开发人员进行开发、调试、测试L620模块。下图及其标注显示了L620开发板的主要功能。

1f2eab99af4bafadb6e540d9065f96e9.png ea2b5481d4ed282b6c9b782c8bbcb840.png

L620是一款封装小,性能稳定可靠,LCC封装的NB-IoT模块,支持3GPP R13/R14规范下涵盖的低频/中频/高频全频段运作。L620的尺寸仅为17.6*15.8*2.3mm,可以满足客户对小尺寸模块产品的需求,同时方便客户减小产品尺寸并优化产品成本;采用的LCC封装可通过标准的SMT设备实现模块的快速生产,使其特别适用于各种IoT产品和设备中。 

54ba1094fee67e1def518ab0ea8251a7.png

其特性如下: 

82f615111690a591da52d0253f758066.png

1

云端部署

 第1步:登录中国移动OneNet官网,注册账号。

1956d2f1a897022feac2530e34ed1310.png

填写注册信息。 

6ff133a8178ce1d16aa15c0863cccf0f.png

OneNET提供企业认证、个人认证两种认证方式,注册账号完成后,用户可以可以根据实际需要选择一种方式进行认证,不同的认证等级具有不同的资源使用权限。

fd75a862de5796c3c310b88d9e3f9645.png

第2步:进入开发者中心,基于MQTT协议,创建物联网产品,这里使用旧版的MQTT协议,在多协议接入中(为什么不使用最新的MQTT物联网套件服务?臣妾没调通啊!,后期追更)。

668f2f0a4e781f37aad23266990c7f97.png af0735601b33b9aa6aa8829ef8cd7b35.png 3f2347a61d61b9ab827ed5878283c10e.png

填写产品信息,从这里开始,请各位小伙伴仔细参照云端的开发文档,理解相关的配置属性,即使官网的文档可读性真的差劲。

d824fdaca2d84ee4014c75cda8c3a6a6.png

添加产品成功。

e3d73fe2188c043c4607adda784cd42a.png

 第3步:创建产品下的设备,准备创建两个设备。

7024194771c28e62d260908e99ce6f9a.png

创建设备:Sub_Node,鉴权信息为:1234。

73335a4c07401ced85c826f651da9ffb.png

 创建设备:Pub_Node,鉴权信息为:5678。

8cd1ba39aeed6326badb9af51d5bf76c.png

创建成功后为离线状态,可以查看其详细信息。

3e40091888f7abbf571a79d40263e1d6.png

NB-IoT云端通信将会使用到的核心参数。

8d777c187f66fe75f0898a7ed47250e5.png

全部创建完成后,可以查看产品概况信息。

bf6d7e18c7759b977b447a75c1b91204.png

1

软件调测

使用OneNet平台提供的调测软件进行测试。

e23a454ad662bf7d7043b9728d7c4321.png

下载完成后,查看打开MQTT软件,软件具体说明如下:

ccec60f4d3ef8fcf71a38a1ce23de9d2.png

要想理解深刻,请一定、一定要读开发文档,举个例子,服务器IP、端口是多少?开发文档中有明确说明。

93dd3a702f42f88b7d3f762ede2689f2.png

订阅、发布测试

第1步:打开MQTT调测软件,分别创建:Sub_Node和Pub_Node两个模拟设备应用。

dcbff5a616f79f9e3cfd2e286adb5e9a.png

第2步:Sub_Node虚拟设备开启设备订阅Topic,Pub_Node虚拟设备开启设备发布Topic,实现Pub_Node虚拟设备发布Topic后,Sub_Node虚拟设备可以订阅接收到Topic。

d0b2134872bca9558f12adec3a67aa3c.png 6b6ad393925c08a434312fe37613874d.png

此时可以在Sub_Node虚拟设备的收到的Topic中查看到Pub_Node虚拟设备发送的Topic数据。

1a78e0f59972aad7818efa664961bc27.png

由说明文档可知,可自定义创建Topic,Topic名字,只能由英文,下划线,反斜杠组成,最长1024个字符,同一产品下topic name不重复,每个产品最多100个Topic。

4f8b9e9b9c29dbb44882c88281940e1e.png
  • 设备通过发送HTTP请求进行topic的创建操作;

  • 平台收到请求后创建topic并返回结果。

请求及响应定义如下:

206281a805b0a7a58118382b76608a47.png

订阅过程解析如下: 说明文档中对订阅和取消订阅也进行了说明,具体如下所示。

168ce43b43ef53254b33020a4df87351.png
  • 设备发起订阅请求.(报文格式参考4.9);

  • 平台收到请求后更新topic列表;

  • 平台给设备回复SubAck. (报文格式参考4.10);

  • 注:subscribe的request qos级别可以为0、1、2。

 取消订阅过程解析如下:

9968f1b41bb0d314160842b0b3b910cb.png
  • 设备发起取消订阅请求. (报文格式参考4.11);

  • 平台收到请求后更新topic列表;

  • 平台给设备回复UnSubAck. (报文格式参考4.12)。

OneNet平台指令接收调测

随便关闭其中一个MQTT虚拟设备,保留一个可以实现下述操作,这里我保留Sub_Node虚拟设备。

在OneNet更多操作中点击下发命令。

f4517d943ca203c5a8a78e966fa4fc9a.png fc3ca53b14c7d2bfc5a1a8b47fb722ed.png

这里我下发字符串类型数据。 

ecf59161ae6d744c612b82ec5a232a6f.png

在虚拟设备中可以查看到下发的数据。

a1958bb75e1475403c0096240ca58ae3.png

可以对下发的数据进行响应回复。

bc50ac2a921231de0e202abe55938244.png

如何得到Tocpic的呢 ,请参考相关手册,这里不再赘述,有疑问的小伙伴可以下方留言交流。

OneNet平台上传数据点

上传数据点有7种数据类型和3种Qos级别,具体方式参见说明文档。

5df91818bcf05e0f4e5c29a053ae4e1e.png

这里我使用第3种数据类型上传数据点,Qos级别默认为0,也就是设备发布Qos0消息(上报数据点),平台收到上报数据点后保存起来。数据流会自动创建sensor节点,并保存数值。

1b2bc21fb165a508ab6b51af2f48b45b.png

4

L620模组调测

订阅、发布测试

第1步:打开串口调试助手,查看模组的入网配置信息,指令如下:

AT+CEREG?  //检查网络状态+CEREG: 0,2OKCT-Self Register: Have already registered!AT+CESQ  //检查信号质量+CESQ: 34,0,255,255,26,58OKAT*MBAND?  //查看频道*MBAND: 5OKAT+CIICR  //启动与NB-IoT网络的无线连接OK+IP: 10.214.60.155

第2步:网络配置无误后,与OneNet平台建立MQTT连接,这里使用OneNet平台上的Sub_Node节点完成下述操作。

AT+EMQNEW="183.230.40.39","6002",12000,2000  //建立新的MQTT连接

+EMQNEW: 0OK

指令解析如下:

1995036f1fd0a1d427110232bfac8050.png 510132fc5a46bbf01b38f1044d874b88.png
AT+EMQCON=0,4,"571461182",1000,0,0,"296803","1234"  //发送MQTT连接包OK

 指令解析如下:

1ebf1d4b1301f661aaf2364a7756b64a.png 98f2f309be1d65b0edf88aa4ec220ecd.png

 建立连接成功后可以看到云端设备是在线状态。

d4166e062a424cadd8fcaf06b1854639.png

第3步:建立Topic订阅,订阅Topic为”pub_topic“的消息,指令如下所示:

AT+EMQSUB=0,"pub_topic",1  //Topic订阅OK

指令解析如下:

9e0299d74e19897c592b4bb68560b615.png

第4步:建立Topic发布,发布Topic为”pub_topic“的消息(字符串、十六进制转换在线工具),指令如下所示:

AT+EMQPUB=0,"pub_topic",0,0,0,22,"68656c6c6f20776f726c64"  //Topic发布,发送hello world的十六进制OK

指令解析如下:

babde547d3b4321fb44c2820e2078f3e.png

数据点订阅、发布

之前使用MQTT工具上传数据点,云端会自动在相应的设备中建立该数据点,接下来使用OneNet平台数据流模板创建数据点,并简要讲解其的使用。

1b2bc21fb165a508ab6b51af2f48b45b.png

第1步:添加数据流模板。

b40a7b983a01b1de60869ccfe694fd74.png a14b16e8d0e7a99a759fc48e1049bcde.png

基于数据流模板创建的数据点是公共的,此时可以看到设备Sub_Node和Pub_Node均有sensor_1122数据点。

8621ddf74480c8fea97e429e75b84299.png

第2步:订阅数据点,指令如下所示: 

AT+EMQSUB=0,"/571461182/sensor",1  //数据点订阅OK

 "/571461182/sensor"参数参照说明文档,具体如下所示:

9d23a301367c6e4def35f58da44edf30.png

第3步:若修改数据点数值原理以及操作和发布一致,指令如下所示:

AT+EMQPUB=0,"$dp",1,0,0,42,"0300127b2273656e736f725f31313232223a38387d"  //发送数据点{
     "sensor_1122":88}OK

Sub_Node设备下的sensor_1122数据点效果如下所示:

5395d8c835dff4419770306daead9711.png

这条指令较为复杂,具体解析如下:

  • 数据点的Topic为 ”$dp“,参照说明手册,具体如下:

ed7bc8669e12cc5488d2721945eac422.png
  •  长度为42,后面的数据为字符串类型,每一位都是一个字符长度,共42位:"0300127b2273656e736f725f31313232223a38387d"

  • "0300127b2273656e736f725f31313232223a38387d" 代表含义参照下表,我使用的是数据类型3上传数据点,03代表数据点类型为第3种;0012代表后面数据字符的长度,后面的数据都是十六进制共18个,转换为十六进制是12,低位数据足够装载,故0012(转换为十六进制由于AT+EMQPUB指令只可以发十六进制,参照该指令说明);7b2273656e736f725f31313232223a38387d是{"sensor_1122":88}字符串的十六进制。

a03c54f34d88b3505c1dc6f16000c7e5.png 6cebcb2b2b8ec9cabe99ca2ec6a0f1bd.png 往期推荐
  • 移远BC20模组使用LwM2M协议接入华为IoT平台

  • 移远BC95使用CoAP协议接入华为IoT平台

  • AI人脸识别身份认证系统(4)—人脸识别

83a6813b8e1d333e7cdb6f888ca7d5f2.png 8ec7997405a7d7d8ec83fef27fa3df99.gif点击 阅读原文,更精彩~
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39778393/article/details/111047916

智能推荐

AOP实现权限拦截_apo拦截控制层-程序员宅基地

文章浏览阅读497次。AOP实现权限拦截注解名称:CheckUnSysAdmin注解实现类:CommonAspectController层方法上引入注解名称:CheckUnSysAdminpackage com.sf.XWFS.aop;import java.lang.annotation.*;/** * @author cc * Desc 校验除超管外的角色,都进行拦截 */@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType_apo拦截控制层

杀毒软件业野蛮生长法则:自己研发病毒自己杀-程序员宅基地

文章浏览阅读52次。时隔4个月后,瑞星杀毒造假案又有了戏剧性的变化。近日,瑞星杀毒造假案的主角——北京市公安局网监处原处长于兵的二审结果仍维持一审的死缓判决。而据于兵的最新供认资料,相当一部分病毒是杀毒软件公司自己的科技力量研制的。于兵供认,瑞星公司向其行贿时就提出条件,由公安机关发出病毒警报,提示用户下载该公司杀毒软件进行杀毒,而病毒则是由瑞星公司“研制”的。“其实这是杀毒软件行业里的公开秘密。”国内一家知名...

密码学考点整理_移位密码和vigenere密码的异同是什么-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏35次。考试重点1. 密码体制分类对称密码体制和非对称密码体制;2. DES和AES算法的特点(结构、密钥长度,分组长度,DES弱密钥)及其过程(置换过程,S盒查表过程),AES的轮结构DESDES结构首先是一个初始置换IP,用于重排明文分组的64比特;相同功能的16轮变换,每轮都有置换和代换;第16轮的输出分为左右两半并被交换次序;最后经过一个逆初始置换产生64比特密文;DES结构图如下:密钥长度:56分组长度:64DES弱密钥:待续了解即可DES 分组长度_移位密码和vigenere密码的异同是什么

基于微信小程序+Springboot线上租房平台设计和实现【三端实现小程序+WEB响应式用户前端+后端管理】_微信小程序租房平台怎么弄-程序员宅基地

文章浏览阅读2.7w次,点赞97次,收藏158次。系统功能包括管理员服务端:首页、轮播图管理、公告信息管理、系统用户(管理员、租客用户、房主用户)资源管理(新闻列表、新闻分类列表)模块管理(房源信息、房源咨询、租赁申请、入住信息、房租信息、反馈信息、通知信息、房屋类型)个人管理;用户客户端:首页、公告信息、新闻资讯、房源信息等功能。_微信小程序租房平台怎么弄

JavaScript - 事件对象 - 鼠标操作_js鼠标点击事件菜鸟教程-程序员宅基地

文章浏览阅读417次。文章目录一、禁止鼠标右键菜单二、禁止鼠标选中三、鼠标事件对象四、鼠标事件对象clientXpageXscreenX五、常用键盘事件一、禁止鼠标右键菜单<body> <script> document.addEventListener('contextmenu', function (e) { e.preventDefault(); }) </script></body>二、禁止_js鼠标点击事件菜鸟教程

直流有刷电机位置环控制与位置速度双环控制(位置式PID)流程解析_偏位置环控制速度-程序员宅基地

文章浏览阅读7.1k次,点赞15次,收藏100次。PID算法中位置环与位置速度双环的对比分析_偏位置环控制速度

随便推点

A Key Volume Mining Deep Framework for Action Recognition-程序员宅基地

文章浏览阅读235次。A Key Volume Mining Deep Framework for Action Recognition_a key volume mining deep framework for action recognition

python创建窗体_python生成窗口-程序员宅基地

文章浏览阅读3.9k次。广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!2、python生成目录树上述 cmd 方式虽然可以生成目录树,但是并不美观,让我们用 python 实现。 2.1 标准库pathlib介绍python有一个标准文件路径处理库 os.path ,从 python3.4 开始,python 又加入了一个标准库 pathlib ,该库..._python创建一个窗口

PowerDesigner16 时序图_使用powerdesiger 画出时序图有接口 控制-程序员宅基地

文章浏览阅读5.1k次,点赞5次,收藏10次。时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:角色(Actor)、对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)/ 激活(Activation)、消息(Message)、组合片段(Combined Fragments_使用powerdesiger 画出时序图有接口 控制

Doris系列17-动态分区_dynamic_partition.history_partition_num-程序员宅基地

文章浏览阅读1.2k次。文章目录一. 动态分区概述1.1 原理1.2 使用方式1.3 动态分区规则参数1.4 创建历史分区规则1.5 注意事项二. 案例2.1 案例12.2 案例22.3 案例3参考:一. 动态分区概述动态分区是在 Doris 0.12 版本中引入的新功能。旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。目前实现了动态添加分区及动态删除分区的功能。动态分区只支持 Range 分区。名词解释:FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。BE:Backend_dynamic_partition.history_partition_num

Linux命令_禅道的运行日志放在哪-程序员宅基地

文章浏览阅读309次。笔记_禅道的运行日志放在哪

Web实训项目--网页设计(附源码)_web前端网页设计代码-程序员宅基地

文章浏览阅读4.3w次,点赞79次,收藏882次。我们要使用这些知识实现一个简单的网页设计,利用HTML的a标签做文本内容跳转以及超链接的应用,CSS设计内容样式和图片、动画、视频的大小位置格式,JavaScript实现轮播图效果等。学习如何设计网页中的轮播图和动画效果,并掌握a标签文本内容跳转、超链接的应用、播放音乐与视频等操作。通过对Web知识内容的了解,我们掌握了HTML、CSS和JavaScript的基本知识以及利用它们实现一些简单的应用。1、使用Web知识实现一个简单的网页设计,利用HTML的a标签做文本内容跳转以及超链接的应用。_web前端网页设计代码

推荐文章

热门文章

相关标签