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