如何连接树莓派与MQTT进行物联网通信
扫描二维码
随时随地手机看文章
MQTT是一种专门用于物联网连接设备通信的消息传递协议。整个MQTT系统由许多客户机和一个代理组成。我们的设备就像客户一样。大多数微控制器和系统都支持MQTT。在这个项目中,我们将把树莓派与MQTT连接起来。有几个应用程序可用于通过MQTT发送和接收,但在本项目中,使用mosquito来建立两个树莓派之间的通信平台。前面我们已经将MQTT代理与ESP8266连接起来。
组件的要求
这个项目不需要太多额外的硬件就可以工作。你只需要一个树莓派。
•覆盆子π
什么是MQTT?
MQTT表示消息队列遥测传输。MQTT是一种机器对机器的连接协议。当我们想要发送几个字节的数据或传感器值时,它对于与远程位置的连接很有用。在这个系统中,您可以作为客户机发布和接收消息。
通过使用MQTT,您可以发送命令来控制输出、读取和发布来自传感器的数据等等。因此,通过使用MQTT,可以在多个设备之间建立通信。使用MQTT,您可以向客户机发送命令来控制输出,也可以从传感器读取数据并将其发布到客户机。MQTT中有两个主要术语,即客户端和代理。让我们讨论一下什么是客户和经纪人。
MQTT客户机:MQTT客户机是运行MQTT库并通过网络连接到MQTT代理的任何设备。发布者和订阅者都是MQTT客户机。发布者和订阅者指的是客户端是发布消息还是订阅消息。
MQTT Broker:代理接收所有消息,过滤消息,确定谁订阅了每条消息,并将消息发送给这些订阅的客户机。
树莓派MQTT服务器安装
要在Pi上安装mosquito服务器和客户端,打开Pi终端并运行以下命令:
运行此命令后,将自动启动一个mosquito服务器。
现在我们将使用“ test_channel ”在通道中打开一个订阅者,它将接收来自发布者的消息:
在订阅者之后,我们将在同一通道中打开一个发布者,并向订阅者发送消息:
注意:我们只是将数据传输到相同的树莓派。为此,只需打开两个putty终端,一个用于订阅者,另一个用于发布者。如果您使用的是两个不同的树莓派,那么请输入第二个树莓派的IP地址,而不是localhost。例如:
树莓派- MQTT数据交换使用Python
第二种使用MQTT在两个树莓派之间建立连接的方法是使用Python代码。
在这种方法中,我们将在两个不同的窗口或两个不同的Pi中为订阅者和发布者使用两个不同的python代码。
首先使用以下命令安装Paho MQTT库:
现在,在第一个终端窗口中,创建订阅者文件
复制此代码并将其粘贴到订阅者文件。
现在运行这段代码:
现在我们的订阅者设置完成了。要设置publisher,打开一个新的putty窗口,使用下面的命令创建一个publisher文件:
将以下代码复制到发行者文件。
注意:如果您使用两个不同的Pi,那么在MQTT_ SERVER中输入第二个Pi的IP地址,而不是“localhost”。
然后运行它:
因此,我们已经使用MQTT Server成功地从Pi发送了数据。我们还使用ESP8266使用MQTT服务器发送数据。
本文编译自iotdesignpro