这次是接着上次 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!”这个信息。