【OpenCPU】MN316-DLVD丨MQTT使用介绍

菩禔看科技 2024-04-21 19:40:33

MQTT(Message Queuing Telemetry Transport)即消息队列遥测传输,是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。MQTT协议是轻量、简单、开放和易于实现的,广泛应用于医疗设备、智能家居、及一些小型化设备中。本文对MN316标准版 OpenCPU SDK中的MQTT demo代码进行解析,并演示通过MQTT协议连接OneNET平台的实现方法。

一、代码分析

MQTT demo测试流程图如下:

图1 MQTT Demo测试流程图

在模组上电开机后,调用MQTT demo的测试指令为: CM:MQTT:ssl_enable:client_index:opt,其中ssl_enable取0-1,0代表非加密传输,1代表加密传输,demo目前仅有4通道配置了加密传输;

client_index取0-4,代表要使用的client对象通道,demo目前仅有4通道配置了加密传输,客户可自行添加修改;

opt取0-7代表操作项,0-7依次代表client初始化、连接、订阅、发布、取消订阅、获取当前订阅主题、断开连接和销毁client。

进入调用函数void cm_test_mqtt(unsigned char **cmd, int len) 后,将执行以下操作:

1.1判断输入格式及读取指令参数

len为以冒号分割的指令个数。

图2 判断输入参数

将指令中的值分别写入ssl_type、opt、index三个参数。

1.2 根据指令判断将要进行的MQTT操作

首先判断操作项,即opt参数的值、。

图3 判断执行的操作

opt为0时,初始化客户端,创建客户端实例,实例取值0~4。Demo中仅有4通道配置了加密传输。

图4 初始化客户端

设置客户端参数。

图5 设置客户端参数

如果实例号为4,进行SSL设置。

图6 SSL配置

opt为1时,即进行OneNET连接,其中,会通过判断index的值,来选择使用哪个实例,判断后进行连接参数配置,并开始连接。

图7 连接服务器

opt为2时,进行订阅Topic的操作。其中QOS等级分为0~2,OneNET平台仅支持0和1,订阅时将QOS设置为0。

图8 设置QOS等级

opt为3时,发布信息,其中QOS等级设置为1,pubmessage及subtopic分别为发布的消息内容及发布的topic;index即实例号;长度为strlen(pubmessage); publish_flags为固定头部信息。

图9 发布消息

注:针对某些只可发布不可订阅的主题,需要额外定义一个pubtopic。

opt为4时,取消订阅主题。

图10 取消订阅主题

opt为5时,查看已订阅的topic。

图11 查阅订阅的topic

opt为6时,关闭连接。

图12 关闭连接

Opt为7时,释放client。

图13 释放client

二、实际操作

2.1平台侧创建产品

首先,我们要在平台侧创建产品,具体的创建步骤见OneMO线上服务平台 (onemo10086.com)。我们这里使用MQTT套件进行创建。

2.2 连接参数配置

订阅主题:

格式为:$sys/产品ID/设备名称/#。

图14 SUB订阅主题

发布主题:

格式为:$sys/产品ID/设备名称/dp/post/json。

图15 PUB发布主题

发布主题消息:

格式须严格按照OneNET要求的JSON格式。

图16 发布主题消息

服务器地址:

图17 设置服务器地址

端口号:

图18 设置服务器端口号

客户端ID即设备名称:

图19 设置客户端ID

用户名即产品ID:

图20 设置服务器端口号

密码使用Token工具计算生成:

图21 设置Token秘钥

Token工具使用可参照http://www.onemo10086.com/#/school/article/292

存活时间:

图22 设置设备存货时间

是否清除会话:

图23 是否清楚会话

注意:此选项必须设置为1。

三、执行结果

模组上电开机后依次输入指令,整个工作流程如下:

图24 工作流程

执行指令后,在OneNET平台侧可以查看到设备在线并且数据流已更新:

图25 平台收到数据

四、注意事项

1. 在配置订阅和发布主题的参数时需要注意OneNET平台QOS等级仅支持0和1;

2. 再次登陆前需先关闭连接并释放;

3. 发布数据格式一定要满足OneNET规定的JSON格式;

4. 清除会话参数即cmqtt_glob_cfgclean必须设置为1。





转载自中移物联网,仅供模组品牌对应于中移物联网模组体系参考。

声明:《菩禔物联》所发表内容均为原创,所有原创内容仅用于交流,不代表任何立场和观点。极少数优才文章注明来源的,版权归原出处所有(无法查证版权的或未注明出处的均来源于网络搜集)。如有侵权,请联系我们删除或更改。内容的真实性、准确性和合法性由原作者负责。转载内容(视频、文章、广告等)只以信息传播为目的,仅供参考,不代表本平台认同其观点和立场。

The content published in the Bodhi Union of Things is original, and all original content is for communication purposes only and does not represent any position or viewpoint. A very small number of excellent talent articles indicate their source, and the copyright belongs to the original source (those that cannot be verified or whose source is not indicated are all collected online). If there is any infringement, please contact us to delete or make changes. The authenticity, accuracy, and legality of the content are the responsibility of the original author. The reprinted content (videos, articles, advertisements, etc.) is only for the purpose of information dissemination and is for reference only. It does not mean that this platform agrees with its views and positions.

0 阅读:0

菩禔看科技

简介:感谢大家的关注