新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何在树莓派上使用MQTT协议

发布时间:2026/9/29 12:12:55来源:尧图网络
如何在树莓派上使用MQTT协议
请你打开随便一个编辑工具, 然后把下面这部分代码内容输入进去, 接着把这些内容保存成一个后缀名为.py类型的文件。# subscriber.pyimport paho.mqtt.client as mqttdef on_connect(client, userdata, flags, rc):print(fConnected with result code {rc})# 订阅需要放在 on_connect 里# 如果与 broker 失去连接后重连仍然会继续订阅 raspberry/topic 主题client.subscribe(raspberry/topic)# 回调函数当收到消息时触发该函数def on_message(client, userdata, msg):print(f{msg.topic} {msg.payload})client mqtt.Client()client.on_connect on_connectclient.on_message on_message# 设置遗嘱消息当树莓派断电或者网络出现异常中断时发送遗嘱消息给其他客户端client.will_set(raspberry/status, b{status: Off})# 创建连接三个参数分别为 broker 地址broker 端口号保活时间client.connect(broker.emqx.io, 1883, 60)# 设置网络循环堵塞在调用 disconnect() 或程序崩溃前不会主动结束程序client.loop_forever()调用那个指定的函数, 树莓派就可以实现主题订阅的操作, 基于上方提供的代码片段来看, 开发者通过该方式完成了对 /topic 这个特定主题的连接动作, 同时开启了针对到来消息的实时监听程序。另外, 我们通过()配置了遗嘱消息, 这种消息是MQTT协议中内置的一种功能机制, 具体含义在于如果设备因为某种原因发生了非正常的网络连接中断行为, 那么该设备就会自动向指定的那个目标主题去发布一条通报信息, 借助于这个技术手段, 我们完全能够及时掌握树莓派是不是已经出现了断电状况, 或者是遇到了其他类型的网络通信异常情况。把消息给发出去。打开任意编辑器输入下面的代码并保存为.py文件import paho.mqtt.client as mqttimport timedef on_connect(client, userdata, flags, rc):print(fConnected with result code {rc})client mqtt.Client()client.on_connect on_connectclient.connect(broker.emqx.io, 1883, 60)# 每间隔 1 秒钟向 raspberry/topic 发送一个消息连续发送 5 次for i in range(5):# 四个参数分别为主题发送内容QoS, 是否保留消息client.publish(raspberry/topic, payloadi, qos0, retainFalse)print(fsend {i} to raspberry/topic)time.sleep(1)client.loop_forever()调用()函数, 可以向一个主题发送消息。在上面的代码中, 我们使用了它向主题/topic发送消息。其中参数QoS是另一个MQTT特性, 如果你想要了解更多关于QoS的内容, 可以查看MQTT QoS 0,1,2介绍。这里我们暂且把它设定为0。测试咱们这边采用了那个叫做MQTT X的客户端工具, 来把测试活儿给办一下, 而这个工具呢, 它用的是MQTT 5.0协议。测试订阅消息执行代码的运行过程, 并且主动向外部发送一条消息内容。1.第一步是打开终端, 然后在里面把代码运行起来, 接着就去负责监听那些传过来的消息。python3 subscriber.py2.使用MQTT X客户端, 与MQTT服务器建立连接, 向主题/topic发送消息。3.当你去查看一下树莓派上面终端里的信息, 你肯定会清楚地看到, 那个由 MQTT X 软件发布出去的消息, 已经完完整整地被接收成功了。发布消息, 并进行相关的测试工作。1.用户需要在MQTT X这个客户端里执行一个操作, 具体来说, 就是要去订阅那个标记为/topic的主题。2.把代码拉到终端里去运行, 这样就能实现功能了。3.在MQTT X这个客户端里面, 你可以去查看一下树莓派发送过来的那些消息。测试遗嘱消息咱们接下来要干的一件事情呢, 就是把那个遗嘱消息到底有没有设置成功这个事情, 拿出来好好地测试一下。1.当用户在MQTT X这个客户端软件里面的时候, 可以选择去执行订阅/。2.你可以中断当前的程序操作, 或者可以选择断开树莓派的网络连接。3.你可以去到那个mqtt x客户端里头, 然后去看到关于那个主题接收到的消息。总结我们已经在树莓派上完成了使用MQTT客户端库paho-mqtt来编写测试客户端的工作, 并且实现了让测试客户端连接到MQTT服务器的功能, 还支持了订阅主题、取消订阅操作, 以及发送和接收消息等所有必要的功能点。到现在为止, 相信各位读者朋友们已经掌握了怎么样去简单地运用一下 MQTT 这个服务, 即便这只不过仅仅是 MQTT 服务内容里非常小的一小部分, 但是也已经完全能够达成许多挺有意思的一些事情了, 比如。1.使用手机来发送MQTT消息, 从而实现对树莓派的远程控制。2.设定一个时间周期, 把树莓派的设备信息发送到MQTT服务器那边, 然后通过手机来接收这些消息, 这样一来就可能实现全天候的监控了。3.你可以把树莓派连接到MQTT服务器那边, 然后它再加上各种类型的传感器设备以及ESP模块, 这样一来就能搭建出很多有意思的物联网方面的应用程序出来。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI真的太好用啦!Aspire Dashboard集成GitHub Copilot 2026/9/29 13:15:18

AI真的太好用啦!Aspire Dashboard集成GitHub Copilot

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
低空经济无人机AI巡检系统:从设计方案到闭环落地 2026/9/29 13:14:39

低空经济无人机AI巡检系统:从设计方案到闭环落地

简介:这份《低空经济无人机AI巡检系统设计方案》面向无人机应用开发者、AI视觉工程师及工业巡检项目规划人员,系统讲解如何构建一套覆盖电力线巡检、管道监测、农田病虫害识别与城市基础设施检查的智能巡检方案。文档围绕飞行平台选型、飞控与多模式航线…

阅读更多 →
基于前向神经网络的音乐情感识别分类算法实战指南 2026/9/29 13:14:13

基于前向神经网络的音乐情感识别分类算法实战指南

简介:这是一篇面向音乐信息检索、推荐系统与情感计算方向研究者的科研论文PDF,聚焦单模态数据在音乐情感分类上的局限,提出基于前向神经网络的多特征融合分类算法。作者在传统前向神经网络隐藏层中引入切比雪夫正交多项式簇作为各神经元激励函…

阅读更多 →
改进YOLOv5船舶目标检测:小目标召回提升与锚框重聚类实战 2026/9/29 13:14:13

改进YOLOv5船舶目标检测:小目标召回提升与锚框重聚类实战

简介:这份文档面向计算机视觉方向的研究生、算法工程师及船舶检测领域从业者,系统探讨基于改进Yolov5算法的船舶目标检测方法,帮助读者理解复杂海况与多目标场景下提升检测精度与鲁棒性的完整思路。内容从研究背景与国内外现状切入&#xff0…

阅读更多 →
STM32 GPIO输入深度解析:从按键抖动到低功耗的工程实践 2026/9/29 13:14:13

STM32 GPIO输入深度解析:从按键抖动到低功耗的工程实践

1. 按键按下那一刻,GPIO 寄存器里到底发生了什么很多人第一次把按键接到 STM32 上,代码写得飞快:开时钟、配 GPIO_Mode_IPU、读 IDR、判断电平。跑起来灯也亮了,串口也打印了,于是觉得“GPIO 输入不过如此”。但真到项…

阅读更多 →
DeepSeek职场应用实战:任务分类、提示词与参数调优指南 2026/9/29 13:14:06

DeepSeek职场应用实战:任务分类、提示词与参数调优指南

简介:来自清华大学人机协同团队的《DeepSeek如何赋能职场应用?》第二讲课件,面向职场人士、管理者和人工智能应用开发者,系统梳理DeepSeek从提示语技巧到多场景应用的完整路径。资源共1个PDF文件,压缩包约9.57MB&#…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉