原创 物联网产品的MQTT通讯的研发测试方案

2024-10-10 11:38 94 5 5 分类: 物联网


01

物联网行业中存在问题


MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。开发支持MQTT协议产品,需要搭建测试环境,才能测试本地设备与平台通信。利用公有云平台,如阿里,腾讯云,可以在方案前期,快速跑通产定义,初步完成测试,不依赖MQTT私有服务器搭建。


02

该问题带来的危害及影响


首先MQTT服务器需要时间搭建,如果前期没有在公有云基础上进行程序测试调试,等待服务器搭建完成,再进行测试联调,会耽误项目开发进度。

其次,一些项目的MQTT服务器部署在公司主服务器上,终端设备测试通信时需要和服务器维护人员沟通协调,有时需要服务器做调整,这些工作比较繁琐,消耗时间。如果终端设备在公有平台上,测试完成,最后迁移到正式的设备平台上,会大大节省项目开发时间。


03

解决方法


方法一

1、原理介绍

在阿里云上创建MQTT产品,先用模拟终端MQTTFX测试与阿里云通信,然后用MQTT设备(以 DTU为例)接入阿里云平台测试,MQTTFX与DTU既可以向平台发布消息,也可以订阅平台发送的消息,还可以订阅对方设备向平台发送的消息(需要添加规则引擎)。

2、方案详情

一、在阿里云平台创建产品及设备

阿里云-上云就上阿里云

①进入阿里云官网完成注册登录,注意一定要实名认证,这样后面才可以创建实例

②搜索物联网平台,找到物联网企业版实例,缴费,(公共实例免费,现已经无法注册新用户)

缴费之前选充值

这里以公共实例介绍

③先要在平台创建产品,然后才可以创建相应的设备,填写相应的产品信息

④在相应的产品下创建设备,并保存相应的设备信息,之后再进行通信的时候会使用

点击帮助文档,可以参数具体操作步骤

把设备证书信息记录下来,可以保存到记事本中

⑤在产品中添加相应的功能模块

⑥找到相应的topic,并记录下来

那么上面的步骤就已经完成了阿里云物联网平台上的产品设备创建,下面就可以进行通信测试。

二、使用MQTT.fx进行测试

①MQTT.fx是pc端的客户端程序,我们可以使用其与服务器通信,实现相应的订阅发布功能

MQTT.fx下载网址

②点击选择配置文件,填写相应的信息

注意以上填写的数据,我们需要使用到前面在前面在阿里云平台中保存的那些信息去计算出来。

值得注意的是:在User Credentials下的Password设置在文档里知名了signmethod为hmacsha1(哈希sha1算法),而productKey使用的是mqtt.fx工具,并不能直接带入哈希算法,所以我们可以通过以下的链接进行计算

http://xupan.unaux.com/jiami/?i=1

将上述相应的信息填写到配置文件中,注意要点击Apply,这样就完成了配置文件,再去点解connect,出现下图情况,则连接成功

这时候回到阿里云平台上查看相应的设备,会发现设备在线

③接下来可以在MQTT.fx上先完成通信测试,先去阿里云平台产品找到相应的topic

先进行订阅测试

在平台上发布消息

回到MQTT.fx上,发现接收到消息,说明订阅成功

再来测试一下发布

回到阿里云平台找到相应的日志查看

三、本地设备测试

DTU设备上电,数据线接电脑USB口,用上位机配置另外一个阿里云设备的参数,点击确定配置成功后,重启DTU

设备在线后,观察阿里云平台第二个设备是否上线。

DTU向平台发送信息,信息显示在阿里云平台上

信息显示在阿里云平台上

平台下发指令,测试DTU接收平台订阅消息

3、需要的测试设备或测试环境

阿里云平台,公共实例或者企业版实例

MQTTFX软件

支持MQTT协议的DTU或其他终端设备

方法二

1、原理介绍

在腾讯云上创建MQTT产品,先用模拟终端MQTTFX测试与阿里云通信,然后用MQTT设备(以 DTU为例)接入阿里云平台测试,MQTTFX与DTU既可以向平台发布消息,也可以订阅平台发送的消息。

1、原理介绍

2、方案详情

打开腾讯云官网,注册并登录https://cloud.tencent.com/登录之后点击右上角的控制台点进去

点击控制台进去之后,我们在右侧上栏云产品下搜索《物联网通信》

然后我们点击产品概况,立即使用创建新产品

在认证方式这,我们一点要选择秘钥认证

创建完成之后,我们点击管理,进去创建一个设备!

点击设备列表,管理

显示三元组

以上设备创建好了之后,我们就用MQTT.fx接入。对于MQTT Broker Profile settings参数的说明:

在这里的话,我的参数配置为下:

然后我们点击ok就可以了,然后点击connect

当出现从红灯变成绿灯我们就实现了与腾讯云的连接:

二、使用MQTT.fx进行测试

我们进入设备中查看一下发布主题

然后我们把它复制到MQTT.fx中,发送一个数据,点击publish

然后我们进入云日志中,点击内容日志,就能看到我们给腾讯云发送的消息了

我们进入设备中查看一下订阅主题

然后我们把它复制到MQTT.fx中,点击subscribe

然后我们在腾讯云发送给MQTTFX, 打开腾讯云API Explorer,Publish Msg

[该类型的内容暂不支持下载]

如下图填写,Topic和产品ID到自己的腾讯云,产品设置和Topic管理里面找,数据是自己需要下发的真实数据,必须是string

设备在线时,点击发起调用即可

然后我们打开MQTT.fx中会收到我们腾讯云上发来的消息

我们在客户端订阅已经实现了,接下来我们要实现客户端给腾讯云发消息,从而实现双向通信

三、本地设备测试

DTU设备上电,数据线接电脑USB口,用上位机配置另外一个腾讯设备的参数,点击确定配置成功后,重启DTU

设备在线后,观察腾讯云第二个设备是否上线。

DTU向平台发送信息,信息显示在阿里云平台上

信息显示在阿里云平台上

平台下发指令,测试DTU接收平台订阅消息,设备订阅主题,

将此订阅主题,配置到RTU上

打开腾讯云API Explorer,Publish Msg,发起调用

数据在DTU接收窗口上位机上显示

3、需要的测试设备或测试环境

腾讯云平台,公共实例或者企业版实例

MQTTFX软件

支持MQTT协议的DTU或其他终端设备

本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

(如有侵权,联系删除)

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条