MQTT是物联网项目中最常用的协议之一,全称是消息队列遥测传输。
此外,它被设计为轻量级消息传递协议,它使用发布/订阅操作在客户端和服务器之间交换数据。此外,它的小尺寸,低功耗,最小化数据包和易于实现使该协议成为“机器到机器”或“物联网”世界的理想选择。
首先,我将介绍使用MQTT的原因,在实际上如何与现实生活中的IoT示例一起使用。 然后,将通过broker; MQTT的主干和broker使用。
最后,将进入一个动手教程,演示如何使用MQTT协议使用智能手机控制设备或获取数据。
MQTT具有你在其他协议中难以找到的独特功能,例如:
与任何其他 Internet 协议一样,MQTT基于客户端和服务器。同样,服务器负责处理客户端在彼此之间接收或发送数据的请求。
MQTT服务器称为代理,客户端只是连接的设备。
所以:
此外,这些客户正在发布和订阅主题。 因此,此处的代理是处理对目标主题的发布/订阅操作的代理。
假设有一个装有温度传感器的设备。 当然,想把它读到的数据发送给代理服务器。 另一方面,电话/桌面应用程序想要获得此温度值。 因此,会发生两件事:
同样,此处的代理角色是将消息“温度值”传递给电话/桌面应用程序。
这将我们带到MQTT组件,如下所示:
到代理的连接设备“客户端”的数量取决于代理服务提供商。
事实上,它可以覆盖那些一直在发布和订阅的大量设备。
但令人惊讶的部分不仅是这些连接设备的数量巨大,而且任何设备都可以随时获取任何其他设备的数据。 因此,基于这些快速共享数据的应用程序是无限的。
但是这里有一个问题,如果你使用HTTP协议在设备之间共享这些数据怎么办? 我会说这真是一个坏主意
HTTP比MQTT更慢,更多开销和耗电协议。 所以,让我们分别进入每一个:
在之前的物联网博客中,我们详细讨论了物联网系统及其4个组件。 如果这是您第一次阅读有关物联网的信息,我建议您仔细阅读。
其中一个组件是物联网平台。 实际上,它负责将设备连接在一起。
尽管如此,物联网平台只是一个基于云的软件,它实现了一个代理服务器和一些带有GUI的软件,允许用户控制和监控他连接的设备。
因此,MQTT代理隐式包含在IoT平台内。
但我们不会在即将推出的物联网博客和教程中使用物联网平台。
那是因为我们只为少量项目连接一些设备。 因此,这里不需要物联网平台。 但是有必要让你对它有一点了解。
有许多代理实现了MQTT协议。 最受欢迎和最常用的是mosquito broker。
Mosquitto是一个实现MQTT协议的开源消息代理。 它重量轻,适用于从低功耗单板(如Arduino,ESP8266)到完整计算机和服务器的所有设备。
但是,您需要使用实现Mosquitto代理的基于云的服务器,而不是在本地PC上使用Mosquitto。 这是使您的物联网项目可通过互联网控制的必要条件。
基于云的Mosquitto经纪人很多,比如:
CloudMQTT是最好,最简单的基于云的Mosquitto代理之一。
CloudMQTT有一个免费计划,允许您设置将在其硬件服务器上运行的自己的CloudMQTT代理实例。 因此,您可以拥有一个可以在您的物联网项目中使用的在线经纪人。
它还有一个设计良好的GUI,通过易于使用的WebSocket UI监控发布和订阅过程和主题。
让我们试试CloudMQTT如何运作:
现在您有一个免费的经纪人,您可以将任何设备连接到它。
此外,让我们通过将您的智能手机用作连接到经纪人的设备来练习。 因此,请确保您的手机已通过wifi或数据连接到互联网。
我将使用应用程序将手机连接到CloudMQTT代理。
有许多应用程序用于将智能手机连接到代理并使用它来发布和订阅主题。 我选择了一个漂亮,简单易用的产品。 它被称为“IoT MQTT Panel Pro”。
此外,它还有许多UI组件可用作订阅和发布主题的可视指示器。
你可以从这里下载Android版本。
步骤:
你必须输入密码,大写或小写字母不一样。
现在,让我们回到浏览器中的WebSocket UI并监视正在发生的事情。
当您按下开关使其打开时,设备将发布一条消息,该消息在“切换器”主题上“打开”。 您将在WebSocket UI中清楚地看到它。
当您在主题“传感器”上从WebSocket UI发布消息“20”或任何其他号码时,设备订户“gauge”将获得此消息并将值更新为该号码。
此外,您必须像此图像一样绘制您的物联网结构。 这样可以让您轻松了解项目元素以及每个元素与其他元素的通信方式。
毕竟,您刚刚使用MQTT协议和连接设备完成了您的第一个物联网项目!
如果初次使用MQTT,该文章适合你跨入MQTT的大门,理论加实践,So, Easy!