24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
行业资讯>
MQTT 入门

行业资讯

MQTT 入门


MQTT 入门

在当今连接设备无处不在的世界中,物(wù)联网(IoT) 一词已成為(wèi)连接到互联网的小(xiǎo)部件的事实上的描述。虽然这个美化的骆驼案例,首字母缩略词本身就很(hěn)漂亮,但互联网连接设备的含义遠(yuǎn)比人们意识到的要多(duō)。在本文(wén)中,我想深入探讨 IoT 设备中使用(yòng)的最流行的协议之一:MQ 遥测传输 (MQTT) 协议。我们将简要介绍它是什么,它是如何工作的,以及它与其他(tā)使用(yòng)的技术相比有(yǒu)何新(xīn)颖之处。

MQTT 是什么以及為(wèi)什么

在典型的客户端-服務(wù)器设置中,我们有(yǒu)一个将传感器数据发布到服務(wù)器的提供者(即设备本身)和一个请求从服務(wù)器查看传感器数据的消费者。MQTT 也不例外。它是一种用(yòng)于设备之间通信的轻量级协议。设备通常会将数据发布(即发送)到 MQTT“代理(lǐ)(或服務(wù)器),然后将其保留以提供给其他(tā)设备或 Web 应用(yòng)程序。另一个设备或 Web 应用(yòng)程序将从 MQTT 代理(lǐ)订阅该数据集(即请求数据),然后 MQTT 代理(lǐ)将该数据传送给它们。把它想象成一个美化的 Web 服務(wù)器,有(yǒu)两个主要的例外:

数据包非常轻量级(提高了速度、效率和成本)

MQTT 可(kě)以使用(yòng)互联网以外的其他(tā)通信模式(例如蓝牙)

1:带有(yǒu)设备的 MQTT 代理(lǐ)

由于上述两个原因,MQTT 已成為(wèi)物(wù)联网设备非常流行的协议。从历史上看,人们会使用(yòng) HTTP POST/GET 请求来实现这种形式的设备-服務(wù)器通信,但这会限制他(tā)们使用(yòng)其他(tā)通信设备(如蓝牙或 ZigBee)的能(néng)力。由于 MQTT 在这方面是不可(kě)知的,我们现在可(kě)以使用(yòng) MQTT在基于网格的网络中拥有(yǒu)消息传递功能(néng),而无需连接到互联网

MQTT 入门

有(yǒu)很(hěn)多(duō)方法可(kě)以开始使用(yòng) MQTT,包括设计完整的端到端解决方案。為(wèi)了简单起见,我们将在本示例中使用(yòng) Adafruit 提供的免费 MQTT 代理(lǐ)服務(wù)。这将使我们能(néng)够专注于开发过程的客户端。要开始使用(yòng),您需要具备以下条件:

Arduino 设备(此示例使用(yòng)Arduino Uno

支持互联网连接的 Arduino扩展板(即Arduino 以太网扩展板)或基于 Wifi Arduino 兼容设备,例如ESP8266

Arduino IDE软件

使用(yòng)Adafruit IO 的帐户。

為(wèi)了设置我们的环境,我们需要先做一些事情。让我们首先设置我们的硬件。我将使用(yòng)连接到本地网络的 Arduino Uno Arduino Ethernet Shield 

2:并排放置 Arduino Uno Arduino Ethernet Shield

我们需要在 Arduino 顶部堆叠以太网扩展板并将其插入网络,如下所示:

3Arduino Uno Arduino Ethernet Shield 连接在一起并插入

配置好硬件后,让我们打开 Arduino IDE 并安装必要的库。打开 Arduino IDE 并导航到工具 > 管理(lǐ)库...

4:管理(lǐ)库菜单选项

搜索 Adafruit MQTT 库并单击安装:

5:库管理(lǐ)器

系统还会提示您安装库依赖项。继续并单击全部安装

6:库依赖项对话框

安装支持库后,您可(kě)以通过导航到文(wén)件 > 示例 > Adafruit MQTT > mqtt_ethernet 打开示例。

7mqtt_ethernet 示例的菜单导航

在这一点上,我们需要暂停并从我们的 Adafruit IO 帐户中获取我们的凭据。登录Adafruit IO并单击顶部的我的密钥

8My Key 菜单选项

现在回到您的 Arduino mqtt_ethernet草(cǎo)图示例,并使用(yòng)位于您的 Adafruit IO 帐户中的用(yòng)户名活动密钥字段填写 AIO_USERNAME AIO_KEY 字段。确保您的设备已连接,然后单击上传:

9:准备好上传的 Arduino Sketch

要查看设备的状态(并确保它已连接到 MQTT 代理(lǐ)),请导航到工具 > 串行监视器。您应该会看到如下所示的输出:

10Arduino mqtt_ethernet 示例的串行监视器输出

此时我们已经确认数据已成功发送到 MQTT 代理(lǐ)。要查看服務(wù)器上的实际数据,让我们返回我们的 Adafruit IO 帐户并单击“Feeds”,然后单击“photocell”

11Adafruit IO 馈送

我们现在可(kě)以实时捕获 Arduino 发送到 MQTT 代理(lǐ)的数据。我们也可(kě)以下载历史数据。

12:从 Arduino 发送到 MQTT 代理(lǐ)的实时和历史数据

恭喜!您现在已经设置了启用(yòng) MQTT 的设备并将您的数据发布到 MQTT 代理(lǐ)。现在进行下一步,构建您自己的自定义传感器并将数据发布到您的 MQTT 代理(lǐ)。

结论

我们了解了 MQTT 是什么、使用(yòng)它的原因以及如何在微控制器上实现它。我们还演示了如何开始使用(yòng)免费的 MQTT 代理(lǐ)服務(wù)并查看其服務(wù)器上的数据。您现在应该可(kě)以根据我们用(yòng)来将您自己的传感器数据发布到 MQTT 代理(lǐ)并在云上查看的示例开始您自己的 Arduino 草(cǎo)图。

请输入搜索关键字

确定