1回答

0收藏

[评测分享] 【树莓派5测评】 12.树莓派安装MQTT并支持远程访问

#板卡评测 #板卡评测 2101 人阅读 | 1 人回复 | 2024-03-24

本帖最后由 stm1024 于 2024-3-24 22:53 编辑

MQTT作为物联网常见的一种协议,现在也得到了越来越多的应用了,关于该协议的基本原理我就不做过多的介绍了,这次主要测试树莓派下支持MQTT协议的mosquitto软件包,并尝试在本地和远程设备上订阅和发布消息。
1. 软件安装
首先是在树莓派上安装mosquitto的一套软件,包括了服务器(Broker)和客户端,以及订阅和发布消息等程序。命令如下:
  1. sudo apt-get install mosquitto mosquitto-clients
复制代码
安装完成以后,通过如下命令检查Broker是否正常运行:
  1. systemctl status mosquitto.service
复制代码
显示running表明运行正常


2. 本地消息的订阅与发布
程序mosquitto_pub用于发布消息(publish),而mosquitto_sub用于订阅消息(subscribe),启动一个终端,订阅关于“bozo”话题的命令如下:
  1. mosquitto_sub -h localhost -t "bozo"
复制代码
程序将进入阻塞状态,等待该话题的到来。
然后新开一个终端,再发布关于“bozo”的话题:
  1. mosquitto_pub -h localhost -t "bozo" -m "foo"
复制代码
可以看到消息发布于订阅成功了。

3. 远程客户端的连接
在Windows上安装了MQTTX,界面如下:

如果尝试连接树莓派5地址的Broker,会发现连接失败,使用命令:
  1. mosquitto -v
复制代码
可以看到如下提示:


简单来说就是,Broker默认情况下只允许本地(localhost)的订阅与发布,不支持局域网内其他的设备,我们需要修改一下配置文件,打开/etc/mosquitto/mosquitto.conf,添加两行:
  1. sudo nano /etc/mosquitto/mosquitto.conf
复制代码
保存然后reboot,并确认Broker是启动的。
然后在Windows环境下的MQTTX中连接,配置如下:

注意重点是协议类型和地址,以及端口号,名称和ID只要唯一就行,并无特别的要求,点击连接,就可以成功连接上了:

我们可以再在树莓派5上发送一个关于“bozo”话题的消息,并在MQTTX中添加对bozo话题的订阅:
  1. mosquitto_pub -h localhost -t "bozo" -m "i give you nothing"
复制代码
这个时候可以看到,树莓派本地的订阅终端,以及Windows环境下的MQTTX软件,都收到了该话题的消息。

OK,今天的测试就到这里。

PS:后面出差,估计没多少机会更新了,不过还是有时间就更一下,坚持学习和分享技术。

分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

流水源

发表于 2024-3-24 23:05:06 | 只看该作者

跟着大佬学习树莓派
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条