物联网设备如何传递消息,树莓派安装Mosquitto MQTT服务器

这篇文章详细记录了树莓派如何安装开源的MQTT服务器,Mosquitto,进行互联网设备之间的消息传递。

Raspberry-Pi-MQTT-Mosquitto-Server-Thumbnail.jpg

MQTT是Message Queuing Telemetry Transport的缩写,是一种常用于物联网设备之间消息传递的网络消息协议。

为了让Raspberry Pi支持MQTT协议,需要一款名为Mosquitto的服务器软件。

Mosquitto是一个消息中介,它实现了几个版本的MQTT协议,包括最新的5.0版本。

它也是一个相对轻量级的软件,使得Mosquitto成为树莓Pi上处理MQTT协议的最佳选择。

MQTT协议的工作原理是让客户端充当发布者和订阅者。发布者将消息发送给作为中间人的代理。

订阅者连接到MQTT代理人,并阅读正在特定主题下广播的消息。

可以使用MQTT让多个传感器将他们的数据发送到Raspberry Pi的MQTT代理人,然后客户端设备接收这些数据。

如果想了解更多关于MQTT协议的信息,以及为什么它对于Raspberry Pi等物联网设备来说是极好的,一定要去MQTT官方网站看看。

设备清单

下面是进行本教程的所有设备清单,点击链接直达优惠购买。

建议

可选

我是在运行了最新版Raspberry Pi OS Buster的Pi 400上测试的。

安装Mosquitto到树莓派上

在本节中,将向您展示如何将Mosquitto broker安装到Raspberry Pi上。

在继续之前,需要为Raspberry Pi设置一个静态IP地址,这样多次重启树莓派后IP地址仍然不会改变。

1. 在给Raspberry Pi安装MQTT broker之前,需要更新操作系统。

运行以下两个命令来更新系统。

sudo apt update
sudo apt full-upgrade

2. 系统更新完成后,就可以安装Mosquitto软件了。

Mosquitto MQTT broker是Raspbian资源库的一部分,所以安装软件很简单。

运行以下命令安装Mosquitto及其客户端软件。

sudo apt install mosquitto mosquitto-clients

客户端软件可以与MQTT代理人进行交互,并测试MQTT代理人是否在Raspberry Pi上正确运行。

在安装过程中,软件包管理器将自动配置Mosquitto服务器在系统启动时启动。

3. 此时,在设备上启动并运行Mosquitto MQTT代理。

可以使用下面的命令来验证它是否已经安装和运行。

sudo systemctl status mosquitto

该命令将返回 “mosquitto“服务的状态。

如果服务已经正常启动,应该看到 “active(running)”的文字。

测试Raspberry Pi上的Mosquitto安装情况

下一步测试该服务是否能正常工作,要做到这一点,会利用本指南中前面安装的Mosquitto客户端。

在本节中,需要在Raspberry Pi上打开两个终端会话(无论是本地还是通过SSH)。

1. 第一个任务是启动一个订阅者。这个订阅者将监听在Raspberry Pi上运行的MQTT broker。

可以使用之前安装的Mosquitto客户端为用户进行操作。

在下面的例子中,我连接到localhost,并在 “mqtt/pimylifeup “主题上等待来自代理人的消息。

mosquitto_sub -h localhost -t "mqtt/pimylifeup"

使用”-h “参数,可以指定要连接的主机名。在我的例子中,使用的是安装在Raspberry Pi上的本地MQTT broker。

接下来,使用”-t “参数来告诉Mosquitto订阅者应该从MQTT代理人那里监听什么主题。

在我的例子中,我正在监听一个名为 “mqtt/pimylifeup “的主题。

2. 现在已经加载了一个客户端并监听了消息,试着发布一个消息给它。

需要使用之前安装在Raspberry Pi上的MQTT发布器客户端来发布消息到主题。

运行下面的命令,在 “mqtt/pimylifeup “主题下发布消息 “Hello World “到本地服务器。

mosquitto_pub -h localhost -t "mqtt/pimylifeup" -m "Hello world"

其中两个参数与上一条命令相同,”-h “指定要连接的服务器,”-t “指定要发布的主题。

在这里使用的一个额外的参数是”-m “参数,这个参数可以指定要发送的消息给Raspberry Pi MQTT broker。

3. 回到启动Mosquitto发布器的终端会话中,现在应该看到消息出现了。应该看到命令行中出现以下文本。

Hello world

结论

希望到这里,你已经成功在树莓派上运行了一个MQTT服务器。

如果你在使用UFW等防火墙,确保打开了1883端口。

如果你遇到任何问题,欢迎在下面留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 物联网设备如何传递消息,树莓派安装Mosquitto MQTT服务器

赞 (0)

评论

4+6=