匿名
未登录
登录
丢石头百科
搜索
查看“树莓派系列教程:物联网之MQTT”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
树莓派系列教程:物联网之MQTT
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== MQTT协议简介 == MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。 == MQTT协议特点 == MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性: # 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合; # 对负载内容屏蔽的消息传输; # 使用 TCP/IP 提供网络连接; # 有三种消息发布服务质量:“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。 # 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量; # 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。 == MQTT协议原理 == MQTT协议有三种身份:代理(Broker)、发布者(Publish)、订阅者(Subscribe)。 代理:MQTT的服务器,有了服务器,才能在服务器上发布和订阅内容。 发布者:在服务器上发布信息的设备。 订阅者:订阅服务器信息的设备。 以某视频平台作为例子,某视频平台的服务器称为代理(Broker),在上面发布视频的人称为发布者,订阅视频的人称为订阅者。 == 树莓派的安装 == 这里选用知名的MQTT开源应用mosquitto作为例子,将树莓派变成MQTT协议的代理设备(则MQTT服务器)和客户端。 * 将树莓派连接网络。 * 打开终端,运行以下命令: sudo apt update sudo apt install mosquitto,mosquitto_client 根据提示输入“y”确认安装 systemctl restart mosquitto 此时MQTT服务器已开始运作。 其中,sudo apt install mosquitto 安装的是代理设备(服务器); sudo apt install mosquitto_client 安装的是客户端(发布者、订阅者)。 == 发布消息 == 打开树莓派的终端,输入以下命令: mosquitto_pub -t "my/channel" -m "a message" 其中,"-t"为发布到什么频道,"my/channel"为频道的名称,频道名称一般以斜杠隔开。 "-m"为要发送什么消息,消息的正文"a message"。 == 订阅消息 == 打开新的树莓派终端,输入以下命令: mosquitto_sub -t "my/channel" 即可订阅"my/channel"频道的消息。 此时另外的终端再次输入命令: mosquitto_pub -t "my/channel" -m "a message" 订阅终端即可收到消息。 以上示例是仅有一台树莓派的示例,实际上服务器、订阅设备、发布设备可以是多个不同的设备。 == 系列教程 == {{Raspberry Pi Study}}
该页面使用的模板:
模板:Raspberry Pi Study
(
查看源代码
)
返回至
树莓派系列教程:物联网之MQTT
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志