如何将ESP32连接到MQTT代理
扫描二维码
随时随地手机看文章
物联网是一个与可通过互联网访问的设备连接的系统。有许多云平台和协议,MQTT是物联网项目中使用最多的物联网协议之一。在之前的教程中,我们已经将MQTT与树莓派和ESP8266连接起来。现在,我们正在MQTT服务器和ESP32之间建立连接。
ESP32是流行的ESP8266 Wi-Fi模块的继承者,具有许多先进的功能,例如该模块是一个双核32位CPU,内置Wi-Fi和双模蓝牙,具有足够数量的30个I/O引脚。
虽然MQTT代表消息队列遥测传输,但它是一个我们可以作为客户机发布和订阅消息的系统。通过使用MQTT,您可以发送命令来控制输出、读取和发布来自传感器的数据等等。MQTT中有两个主要术语,即客户端和代理。
什么是MQTT客户机和代理?
MQTT客户机:MQTT客户机运行MQTT库并通过网络连接到MQTT代理。发布者和订阅者都是MQTT客户机。发布者和订阅者指的是客户端是发布消息还是订阅消息。
MQTT Broker:代理接收所有消息,过滤消息,确定谁订阅了每条消息,并将消息发送给这些订阅的客户机。
现在,在本教程中,我们将解释如何使用ESP32和Arduino IDE库连接到MQTT代理并订阅主题。
组件的要求
•ESP32
•云MQTT
云MQTT帐户设置
要在Cloud MQTT上建立一个帐户,请浏览其官方网站(www.cloudmqtt.com)并使用您的电子邮件进行注册。
登录后,点击“+ Create New Instance”创建一个新实例。
现在输入您的实例名称,并在计划选项中选择“Cute Cat”。
在新选项卡中选择区域并单击“审查”。
您的实例已经创建,您可以查看您的详细信息,如用户和密码。
ESP32 MQTT代理代码说明
最后给出了将ESP32与MQTT代理连接的完整代码。这里,我们使用Arduino IDE对ESP32进行编程。首先,安装WiFi.h库和PubSubClient库。
PubSubClient库允许我们在主题中发布/订阅消息。
现在为我们的WiFi和MQTT连接声明一些全局变量。在以下变量中输入您的WiFi和MQTT详细信息:
在setup_wifi函数中,它会检查WiFi是否联网,并给出IP地址并打印在串口监视器上。
在下面的while循环函数中,它将连接到MQTT服务器并将其打印到串行监视器上。这个进程将在一个循环中运行,直到它被连接。
现在我们将指定一个回调函数,在这个函数中,我们将首先打印主题名称,然后打印接收到的消息。
使用ESP32测试MQTT
现在要测试代码,使用Arduino IDE将此代码上载到ESP32并打开串行监视器。
要订阅和发布MQTT主题,将使用b谷歌Chrome应用程序MQTTlens。你可以从这里下载应用程序。
启动此应用程序并设置与MQTT代理的连接。要设置连接,单击“连接”,并在下一个窗口中输入您的连接详细信息从云MQTT帐户。
保存此连接,现在可以使用ESP8266在MQTT代理上订阅和发布消息。
若要订阅或发布消息,请在订阅和发布选项中输入主题名称,并输入默认消息。
您的信息将显示在串行监视器上,如上图所示。
因此,我们已经成功地将MQTT代理与ESP32连接起来。请继续关注我们更多令人惊叹的物联网项目。
本文编译自iotdesignpro