物联网下基于mqtt协议连接设备与平台

万物互联可谓是未来的趋势,如何将万物互联,基于mqtt协议是一种基本的操作方式

1、名词概念

在把设备接入到平台的过程中,会涉及到几个概念名词,用于调试的MQTT客户端工具MQTT.fx,还有MQTT代理服务器,4G模块(设备),物联网平台,云服务器。

(1)MQTT协议

MQTT协议不同于我们常见的C-S通信协议,C(客户端)-S(服务器)这种一对一进行数据通信的协议,比如http、udp和socket通信协议。MQTT可以有多个客户端,实现客户端之间的通信,客户端订阅或发布于同一个topic,那么这个topic下的所有客户端都会收到这个消息,就是说可以多个客户端之间通信。一个客户端可以订阅这个topic,也可以在这个topic上发布消息,实现客户端数据的双向通信。

(2)代理服务器

MQTT代理服务器(Broker)是MQTT(Message Queuing Telemetry Transport)消息队列遥测传输协议中一个核心组件,它负责接收来自客户端的消息,并根据消息的主题将其路由到正确的目的地(订阅者)。在MQTT协议中,消息的发送者称为发布者(Publisher),接收者称为订阅者(Subscriber),而代理服务器则是连接发布者和订阅者的中间件。

MQTT代理服务器的主要功能包括:
主题管理:代理服务器维护一个主题和订阅者列表,以便将消息正确地路由到所有订阅了该主题的客户端。
消息路由:当发布者向代理服务器发送一个消息时,代理服务器会检查该消息的主题,并将其转发给所有订阅了该主题或其子主题的订阅者。
消息持久化:一些代理服务器支持消息持久化功能,可以保证即使客户端断开连接,它也可以在重新连接后收到断开期间发布的消息。
服务质量(QoS):MQTT协议定义了三种服务质量等级,代理服务器需要根据消息的QoS等级确保消息的可靠传输。

常见的MQTT代理服务器包括:

Eclipse Mosquitto:一个轻量级的开源MQTT代理服务器,适用于资源有限的设备。

HiveMQ:一个企业级的MQTT代理服务器,支持高并发和扩展性。

EMQ X:一个开源的MQTT消息服务器,提供了强大的功能和高性能。

VerneMQ:另一个开源的MQTT代理服务器,以其高可用性和集群功能而闻名。
 

如果将设备接入到云平台的物联网平台或者三大运营商的物联网平台,那么就不需要代理服务器了,若是直接接入到云服务器平台,需要在部署的时候单独安装MQTT代理服务器。

(3)MQTT.fx(客户端工具)

可以作为发布者(publisher)和订阅者(subscriber)与 MQTT 代理服务器进行通信,

使用方法:

连接到MQTT代理服务器:首先,您需要在 MQTT.fx 中设置连接到 MQTT 代理服务器的参数,包括服务器地址、端口、用户名和密码(如果有的话)。
订阅主题:在 MQTT.fx 中,您可以选择订阅一个或多个主题。当您订阅一个主题时,您就相当于创建了一个“接收端”,它将等待从MQTT代理服务器接收与之匹配主题的消息。
接收消息:一旦您订阅了主题,MQTT.fx 就会开始接收任何发送到这些主题的消息。这些消息将显示在 MQTT.fx 的消息日志中,您可以看到消息的内容、主题、QoS 等信息。
发送消息:虽然 MQTT.fx 主要用于接收消息,但您也可以使用它来发送消息。这允许您测试您的 MQTT 应用是否正确地接收发送到特定主题的消息。

MQTT.fx 允许用户通过图形用户界面连接到MQTT代理服务器,进行消息的发布和订阅操作。MQTT.fx 主要用于测试、调试和监控MQTT通信,可以模拟MQTT通信中的发布者或订阅者。

(4)4G模块(客户端设备)

设备也是属于客户端,需要连接到代理服务器,配置主题,使4G模块能够订阅和发布消息。

4G模块可以作为发布者发送消息到MQTT代理服务器,也可以作为订阅者接收来自代理服务器的消息

 2、设备可以连接的平台

设备可以直接连接云平台(如阿里云、华为云等)上的物联网平台,此平台上自带MQTT代理服务器;

可以连接三大运营商的平台,移动的onenet平台OneNET – 中国移动物联网开放平台 (10086.cn)

电信的CTWing平台中国电信天翼物联网CTWing门户网站,

联通的DMP雁飞格物平台格物平台 (cuiot.cn);

也可以直接连接云服务器,云服务器部署的时候需要安装MQTT代理服务器(Eclipse Mosquitto、EMQ X)即可。

连接云平台的物联网平台:设备接入华为云IoT平台的脑图如下,具体接入操作可看华为云IoT物联网平台快速入门 —— 设备接入【零代码零硬件玩转华为云IoT】-云社区-华为云 (huaweicloud.com)

或者华为官方文档设备接入边缘节点(MQTT)_IoT边缘 IoTEdge_华为云

3、总结

若是大型的物联网项目,通常推荐做法是将设备的数据发布到物联网平台,物联网平台再通过MQTT协议发布到云服务器,此时的云服务器充当的是MQTT客户端的作用,也是需要单独订阅MQTT消息。如下图

作者:明天起飞吧

物联沃分享整理
物联沃-IOTWORD物联网 » 物联网下基于mqtt协议连接设备与平台

发表回复