这次是接着上次 ESP8266使用NodeMCU MQTT发布BME280的传感器读数 按顺序应该首先按照这边文章做好.下面我们来,说明如何在树莓派上安装用于MQTT通信的Mosquitto Broker。

代理主要负责接收所有消息,过滤消息,确定好对它需要的人,然后将消息发布到所有订阅的客户端。

你可以使用几个代理。在我们的家庭自动化项目中,我们使用安装在树莓派上的Mosquitto Broker。

先决条件

在继续本教程之前,你需要:

  • 你应该要对树莓派熟悉一下
  • 在树莓派中安装Raspbian或Raspbian Lite操作系统,并启用SSH

在使用树莓派并安装好系统之后,可以继续本教程,继续安装Mosquitto Broker。

在Raspbian OS上安装Mosquitto Broker

打开一个新的Raspberry Pi终端窗口,要安装Mosquitto Broker,请输入以下命令:

pi@raspberry:~ $ sudo apt update
pi@raspberry:~ $ sudo apt install -y mosquitto mosquitto-clients

输入Y,然后按Enter确认安装。然后将Mosquitto设置成在启动时自动启动,请输入:
pi@raspberry:~ $ sudo systemctl enable mosquitto.service

测试安装

mosquitto -v
这将显示当前正在运行的Mosquitto版本。它应该是1.4.X或更高版本。

注意: 有时命令mosquitto -v会提示警告消息,提示“错误:地址已在使用中”。该警告消息表示您的Mosquitto Broker已在运行,因此不必担心。

树莓派IP地址

要在以后的项目中使用Mosquitto代理,需要确定树莓派IP地址。要检索您的树莓派IP地址,在“终端”窗口中键入以命令:pi@raspberry:~ $ hostname -I

在本例中,树莓派的IP地址为192.168.1.144。记着它,因为在以后的项目中将需要它。

测试在树莓派里的Mosquitto代理和客户端

通过订阅MQTT主题并发布示例消息来测试Mosquitto代理和客户端。

安装MQTT代理之后,我建议安装MQTT Cllient来测试代理安装并发布示例消息。输入命令显示如何安装MQTT Mosquitto Client:sudo apt-get install mosquitto-clients

必须按"Y"然后按回车确认安装.然后在后台运行Mosquitto作为守护进程:mosquitto -d

订阅testTopic主题

要使用Mosquitto客户端订阅MQTT主题,请打开终端窗口#1并输入以下命令:
mosquitto_sub -d -t testTopic

现在已经订阅了一个名为testTopic的主题。

发送“ Hello World!”邮件以测试主题

要将示例消息发布到testTopic,新建并打开多一个终端窗口#2并运行以下命令:
mosquitto_pub -d -t testTopic -m "Hello world!"


消息“hello word !”会如上图所示,在窗口#1中接收到

将消息发布到多个客户端

让Window#保持订阅主题testTopic,打开一个新的终端Window#3,然后运行此命令以订阅testTopic主题:
mosquitto_sub -d -t testTopic

在#2窗口上发布“ Hello World!”信息:
mosquitto_pub -d -t testTopic -m "Hello world!"



由于两个客户都订阅了testTopic主题,因此他们都将收到“ Hello world!”这个信息。


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。