运行MQTT Broker的树莓派能否兼作MQTT发布端?咨询实现方法
树莓派作为MQTT发布端的实现方案
方案一:使用mosquitto_pub命令行工具
这个方案完全可行,只要树莓派上安装了mosquitto-clients包(多数情况下安装Mosquitto Broker时会自动附带,若未安装则执行sudo apt update && sudo apt install mosquitto-clients即可)。
在Thonny打开的终端中直接执行以下命令:
mosquitto_pub -d -t testTopic -m "Hello world!"
- 引号问题:只要使用英文双引号就不会有异常;如果消息内容本身包含双引号,可改用单引号包裹消息,比如
mosquitto_pub -d -t testTopic -m 'Hello "world"!'。 - 参数说明:
-d开启调试模式(可选,便于查看连接和发送日志),-t指定目标主题,-m为要发送的消息内容。
方案二:使用Python的Paho-MQTT库(推荐)
你之前尝试的micropython-umqtt.simple是针对MicroPython环境的,树莓派的标准Python环境应使用官方推荐的paho-mqtt库,操作步骤如下:
- 安装库:
- 方式一:在Thonny中点击「工具」→「管理包」,搜索
paho-mqtt并完成安装。 - 方式二:在终端执行
sudo pip3 install paho-mqtt。
- 方式一:在Thonny中点击「工具」→「管理包」,搜索
- 基础发布消息代码:
import paho.mqtt.client as mqtt # 连接本地MQTT Broker(Broker在树莓派本机,地址用localhost或127.0.0.1) client = mqtt.Client() client.connect("localhost", 1883, 60) # 向指定主题发布消息 client.publish("testTopic", "Hello world!") # 断开连接 client.disconnect()
如果需要持续维持连接、处理连接状态回调等,还可以基于此代码扩展逻辑。
内容的提问来源于stack exchange,提问作者Jumike
相关产品推荐
相关产品推荐

