技术
|
04 Jan 2023
MQTT 解释。开始在 IoT(物联网)环境中使用 MQTT 和 MQTT-SN。

了解并开始在物联网(IoT)环境中使用 MQTT 协议和 MQTT-SN 所需的诀窍。
有无数种方法可以将数据从 A 处传送到 B 处,然后再传送回来,但可靠地传送数据并非易事。物联网设备和应用(也称为 "物")需要可靠、稳健性和安全的消息传递协议。这就是 MQTT 的用武之地。
本文涉及的主题:
有用链接:
MQTT 是一个 OASIS 标准级,标准。该规范由 OASIS MQTT 技术委员会管理。有关标准级,规范的更多信息,请参阅以下链接:
顾名思义,MQTT-SN(传感器网络 MQTT)是针对传感器网络等低功耗环境而优化的变体。
在标准级,标准功能集的基础上,SN 为需要低功耗的用例|使用场景|场景增加了额外的功能。这些额外功能包括
归结起来,物联网(IoT)只有一项工作:从网络上的设备获取数据。问题是,这些网络可能遍布世界的任何地方,而且每个网络都面临着许多可能并将导致网络故障的情况。MQTT 以及 MQTT-SN 内置了无数的功能,可以帮助缓解其中的一些问题。下面列出了一些主要功能:
使用 MQTT 启动和运行既快又简单。有数以百万计的现成客户端应用程序和几乎同样多的经纪人可用。通过使用 u-blox Thingstream 技术平台中不可或缺的代理,您现在就可以开始使用 MQTT。
许多物联网设备依靠无线电连接来传输和收集数据,这意味着通信并不总是可靠的。MQTT 可以不要译成 "使......",就近翻译为:该系列模块or 产品名。得益于 QoS(服务质量),MQTT 能够对信息进行排队,确保它们到达目的地,如果需要,还能确保它们只到达目的地一次。
也许说 MQTT 是全方位的更准确。任何设备、Thing 或应用程序都可以发布或订阅由代理处理的任何主题。这就意味着,在网络上什么能说什么,什么能侦听什么,没有任何限制。
向一百万台设备通播消息和向一百台设备发送消息一样尽量不要译成'它',就近翻译为:该系列模块or产品名。要让网络上的所有设备都能收听到信息,只需向所有设备都订阅的主题发布信息即可。
不要考虑 "客户端和服务器",而要考虑 "客户端和代理"。在传统的客户端/服务器关系中,客户端与服务器通信,服务器被视为数据的存储和分发仓库。而 MQTT 的过程则不同。中介更多是被动的,它更像是数据去向的路标。
任何运行 MQTT 库并通过网络连接到代理的事物(从微控制器到大型服务器)都可有效地成为客户端。
客户端之间不直接发送信息,而是与代理管理的主题进行通信。这些主题的工作方式有点像电子邮件收件箱。消息由事物发布到主题;当事物订阅这些主题时,消息就会被接收。
代理负责对网络上的事物进行身份验证,并管理连接、会话和订阅。它的主要职责是接收所有发布的消息,然后发送给订阅的客户端。代理还为订阅的客户端排好信息队列,根据商定的 QoS 水平发送信息。
在 MQTT 网络中,设备和应用程序通常被称为 "事物"。这样做的原因是,就代理而言,两者之间没有区别。为此,设备和应用程序都可以发布和订阅由代理管理的主题。
目前,现场有各 种类型的 MQTT 设备,从简单的基于 Arduino 的设备到用于关键任务的商业、工业和医疗应用的设备,不一而足。许多智能家居和企业也是围绕互联的 MQTT 设备构建的。
对于希望启动数字化转型或物联网试验的企业,u-blox 开发了XPLR-IOT-1。
XPLR-IOT-1 已内置MQTT Anywhere通信功能,可根据语境译成技术,模块,通信等。
除了可访问 u-blox物联网通信即服务套件,XPLR-IOT-1 还包含 u-blox A-GNSS 和短程通信设备、一系列传感器,并可轻松访问 u-blox物联网定位即服务(Location-as-a-Service)服务。

信息不是直接从 Thing 传递到 Thing。相反,它们被发布到 "主题 "中。然后,代理将这些消息传递给任何订阅的客户端。
MQTT-SN 增加了一些特殊的主题功能,以便在带宽受限的环境中提供帮助:
当数据在网络中流动时,主题是组织数据的好方法,而且随着规模的扩大,这一点会变得更多...(此项目不用有关...)。例如,如果您的设备在多个站点部署了多个传感器,您可以将所有数据放在一个有效载荷中,然后在到达目的地时对其进行解析,也可以采用 MQTT 方式,使用主题来划分数据,如下所示:
当传输的数据按主题划分后,设备就可以订阅它们感兴趣的主题。如果一个设备对多个主题感兴趣,可以单独订阅,也可以使用通配符。例如,要获取站点 1 的所有数据,可以使用通配符 "site1/#"。您也可以使用通配符 "+/temp "来获取所有站点的所有 "