ME3616 NBIOT模组内置MQTT协议对接OneNET

2023-10-30 01:18

本文主要是介绍ME3616 NBIOT模组内置MQTT协议对接OneNET,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

适用所有MT2625方案的NBIOT模组,实现STM32+NBIOT的代码在GitHub:https://github.com/sanjaywu/NBIOT_OneNET_Demo。

 

一、使用MQTT调试工具调试

1、OneNET介绍

我们直接从OneNET的官网截图:

 

2、创建产品和添加设备

(1)在创建产品前,首先得有一个OneNET账号,到OneNET注册一个就行,注册步骤很简单,相信看到这篇文章的读者都已经有了OneNET账号,所以不多介绍注册步骤。

(2)有了OneNET账号之后,点击右上方的开发者中心,接着点击右侧的“+创建产品”,出现如下界面,填写好相关信息后点击“确定”

(3)完成产品创建后后在开发者中心可以看到如下产品:

(4)按箭头指示点击进入,然后添加一个SUB设备,并填写设备信息,填写完成点击“接入设备”然后就能看到设备:

(5)按上面步骤,再添加一个PUB设备:

(6)SUB设备和PUB设备信息查看:

 

3、消息发布和订阅

(1)下载MQTT调试工具:https://open.iot.10086.cn/doc/art433.html#118

(2)打开MQTT调试工具,填写SUB设备相关信息,并连接:

DeviceID为设备ID,在设备管理对应的设备可以看到。

ProductID:产品ID,在产品概况可以看到。

AuthInfo:鉴权信息。

(3)在MQTT调试工具,对应的SUB设备按步骤填写订阅主题相关信息,第2步先点“订阅”再点“同步”:

(4)另外打开MQTT调试工具,不要关闭之前的MQTT调试工具,这时候会有两个MQTT调试工具界面,填写PUB设备相关信息。完成第1步后先点击“Connect”,然后再按步骤填写发布主题相关信息,最后点击下方的“Submit”

“Submti”后可在SUB设备的那一边看到PUB设备发布的消息:

 

4、发送命令到设备

如下图,例如,点击PUB设备右下方的“发送命令”小图标,填写命令内容,最后点击“发送命令”:

发送成功后在MQTT调试工具可以看到对应的命令:

 

5、上传数据流

(1)往PUB设备上传数据流,选择“[OneNet]上传数据点”,数据类型我们选择类型7,时间不填写按默认,数据流ID按范围填写,填写数据流,最后点击“上传数据流”:

(2)上传成功,点击PUB设备数据流管理:

(3)展开数据流,可看到相应的数据:

 

二、ME3616 NB模组使用MQTT对接OneNET

ME3616模组使用的是MT2625芯片,因此以下教程适用于大部分使用MT2625芯片的NB模组

1、MT2625的介绍

MT2625 是一款支持 NB-IoT R14 的系统单芯片(SoC),以超高集成度为海量物联网设备提供兼具低功耗及成本效益的解决方案,广泛适用于家庭、城市、工业或移动型应用。MT2625 高度集成 NB-IoT 调制解调数字信号处理器、射频天线及前端模拟基带,还集成 ARM Cortex-M 微控制器(MCU)、伪静态随机存储器(PSRAM)、闪存与电源管理单元(PMU)。MT2625 还整合一系列丰富的外围输入输出接口,包括安全数字输入输出模块(SDIO)、通用异步收发传输器(UART)、I2C 传输协议、I2S、序列外围接口(SPI)及脉冲宽度调制(PWM)。

虽然功能强大,MT2625 却具有小巧的封装尺寸和少量的管脚数目,满足对成本敏感及小体积的物联网设备的需求,也有助于厂商简化产品设计流程。

MT2625 基于实时操作系统(RTOS),很容易针对各种不同的应用进行客制化,比如家庭自动化、cloud beacon、智能抄表及诸多其他静态或移动型物联网应用。MT2625 的宽频前端模组支持 3GPP R14 规范下涵盖超低频/低频/中频/四频的全频段运作,满足全球市场需求,降低成本和开发时间。

MT2625软件SDK拥有丰富的网络协议,包括Socket、MQTT、LWM2M、CoAP、HTTP/HTTPS、SNTP、TLS等,网络协议通过做出AT指令,只需通过串口发送AT命令到MT2625,便可连接服务器,进行数据交互。

 

2、ME3616通过MQTT的AT命令接入OneNET

接入OneNET,可参加文档《MQTT_V3.1.1协议》和《设备终端接入协议-MQTT》:https://open.iot.10086.cn/doc/art431.html#118

 

(1)新建一个mqtt连接服务,发送如下命令:

AT+EMQNEW="183.230.40.39","6002",1200,100

+EMQNEW: 0

OK

参数说明(从左到右):

"183.230.40.39" --> OneNET服务器MQTT协议对应的IP地址。

"6002" --> OneNET服务器MQTT协议对应的端口。

1200 --> 配置连接超时时间。

100 --> 配置与OneNET通过MQTT进行数据交互时的字节大小。

+EMQNEW: 0 --> 返回mqtt_id,作为连接的一个标志。

(2)连接到PUB设备,发送如下命令:

AT+EMQCON=0,4,"504812523",120,0,0,"189713","pub20181120"

OK

参数说明(从左到右):

0 --> mqtt_id。

4 --> mqtt版本为V3.1.1,如果为3,则mqtt版本为V3.1,OneNET只支持V3.1.1。

"504812523" --> 设备ID。

120 --> 连接保活keepalive时间。

0  --> cleansession清理会话标志,可以设置为0或1,这里我设置为0,标志含义以及OneNET的设置要求请看《MQTT_V3.1.1协议》和《设备终端接入协议-MQTT》。

0 --> will_flag遗嘱标志,可以设置为0或1,这里我设置为0,若设置为1要在后面再加上遗嘱相关信息,0则不需要,标志含义以及OneNET的设置要求请看《MQTT_V3.1.1协议》和《设备终端接入协议-MQTT》。

"189713" --> 产品ID。

"pub20181120" --> 设备鉴权信息。

连接成功时OneNET的PUB设备:

(3)发布主题消息,发送如下命令:

AT+EMQPUB=0,"pub_topic",0,0,0,22,"68656c6c6f20776f726c64"

OK

参数说明(从左到右):

0 --> mqtt_id。

"pub_topic" --> 发布的主题名称。

0 --> QoS服务质量等级,可设置为0,1,2,标志含义以及OneNET的设置要求请看《MQTT_V3.1.1协议》和《设备终端接入协议-MQTT》。

0 --> retained保留标志位,可设置为0或1,标志含义以及OneNET的设置要求请看《MQTT_V3.1.1协议》和《设备终端接入协议-MQTT》。

0 --> DUP重发标志位,可设置为0或1,标志含义以及OneNET的设置要求请看《MQTT_V3.1.1协议》和《设备终端接入协议-MQTT》。

22 --> 发布的信息长度。

"68656c6c6f20776f726c64" --> 发布的信息对应的16进制字符串,这里我们转为对应字符串后是“hello world”,可使用在线工具转:https://tool.lu/hexstr

发布成功后,在MQTT调试工具可以看到对应的消息:

(4)订阅主题,以次发送如下三条命令:

新建一个mqtt服务:

AT+EMQNEW="183.230.40.39","6002",1200,100

+EMQNEW: 0

OK

连接到SUB设备:

AT+EMQCON=0,4,"504812565",120,0,0,"189713","sub20181120"

OK

订阅主题“pub_topic”:

AT+EMQSUB=0,"pub_topic",1

OK

对于 AT+EMQSUB=0,"pub_topic",1参数说明(从左到右):

0 --> mqtt_id。

"pub_topic" --> 订阅的主题名称。

1 --> QoS服务质量等级,可设置为0,1,2,标志含义以及OneNET的设置要求请看《MQTT_V3.1.1协议》和《设备终端接入协议-MQTT》。

然后我们使用MQTT调试工具发布消息:

发布成功之后,ME3616就得到了订阅的主题消息:

+EMQPUB: 0, "pub_topic", 1, 0, 0, 20, "68656C6C6F206D717474"

 

这篇关于ME3616 NBIOT模组内置MQTT协议对接OneNET的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/304648

相关文章

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作