MQTT是一种针对小型物联网设备的轻量级传输协议。虽然Arduino开发板本身没有网络功能,但它可以使用以太网扩展板Shield,实现连接到互联网的功能。使用以太网和MQTT库,我们可以快速建立Arduino开发板与MQTT服务器之间的对话,实现发送和接收数据!
默认情况下,Arduino IDE自带了所需的以太网库,但需要安装MQTT库。转到Sketch> Include Library> Manager Libraries,并在搜索字段中搜索MQTT。我们将使用名为“PubSubClient”的库,它是一个用于MQTT的轻量级库。该库有点靠近列表的底部,因此请仔细查看列表!
创建一个新文件,随意起个名字(例如“MyFirstMQTT”),然后在程序开始部分包含这些库文件。以太网扩展板需要SPI,Ethernet.h是传递给PubSubClient.h库的以太网库。该库文件处理MQTT协议和消息传递。
#include
#include
#include
使用MQTT的第一步是定义许多变量,包括IP地址、MAC、服务器和一些对象。我们程序的第一行是函数的函数原型,它将处理传入的消息,稍后将对此进行更深入的研究。接下来的几行代码创建了我们的MAC地址 - 它必须是唯一的 - 以及我们以太网的IP地址。应该注意的是,如果我们的路由器可以为我们分配一个IP地址,将忽略该IP地址。如果不能,它将退回并使用此IP地址。
下一行定义了我们将连接到的MQTT代理。 MQTT世界中的代理只是一个服务器,但与服务器不同,代理可以随时向客户端发送消息,它们不是为存储数据而设计的,只是中继。最后两行定义了一个用于控制以太网扩展板的以太网对象和一个接收以太网对象的MQTT客户端。由于MQTT客户端采用以太网对象,因此代码非常简单,这样我们根本不需要处理以太网扩展板!
更多内容请访问以下链接:https://www.yiboard.com/thread-1044-1-1.html