2-2 介绍 Mosquitto 代理

本文介绍如何使用ESP8266和开源MQTT代理Mosquitto实现家庭自动化项目。通过在Raspberry Pi或AWS实例上安装Mosquitto,可以轻松地让低功耗设备如传感器和微控制器进行消息发布和订阅。文章详细讲解了安装和配置Mosquitto的过程,以及如何使用mosquitto_sub和mosquitto_pub工具进行主题订阅和消息发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP8266 家庭自动化项目中文版目录​​​​​​​

Eclipse MosquittoTM是一个开源MQTT代理,它实现了MQTT v3.1和MQTT v.3.1.1标准,并提供了一种传输消息的轻量级方法,允许低功耗传感器,移动设备,嵌入式计算机和微控制器发布和订阅。
您可以直接从Linux存储库分发在Raspberry Pi或AWS实例或VirtualBox Linux实例上安装Mosquitto;或者,如果您需要websockets的支持,您可以获取源代码并自行编译。

从Linux分发存储库安装:
1.首次升级到最新版本:

sudo apt update && sudo apt upgrade

2.然后安装 mosquito:

sudo apt install mosquitto

您应该看到以下屏幕:

安装Mosquitto

3.安装Mosquitto代理后,验证代理是否已启动并按如下方式安装mosquitto-clients:

验证Mosquitto是否正在运行

4.键入以下命令:

sudo apt instal1 mosquitto-clients

您将看到以下屏幕:

安装Mosquitto客户端

 

Mosquitto客户有三个非常重要的实用程序:

  • mosquitto_sub:一个简单的mqtt客户端,它将订阅一个主题并打印它收到的所有消息
  • mosquitto_pub:一个简单的mqtt客户端,它将在单个主题上发布消息并退出
  • mosquitto_passwd:一个管理Mosquitto密码文件的工具

使用其中任何一个--help选项(例如 mosquitto_sub --help)将提供一个包含可用于测试代理的所有选项的综合列表。安装完成后,Mosquitto即作为服务启动。并且正在监听端口1883.为了测试这个初始安装,让我们订阅一个主题并发布关于该主题的消息。以下命令中显示了使用 -t 选项订阅主题:

mosquitto_sub -t livingroom/temperature

运行此命令如下:

订阅主题,Observation(观察):此命令假定代理正在本地服务器上运行。如果您将Mosquitto部署到Internet 虚拟专用服务器Virtual Private Server VPS)以进行订阅,请添加 -h 以指定服务器实例的IP地址(使用 ifconfig 查找它)以及端口 -p 1884(如果您未使用默认值1883)端口。在这种情况下,命令将是:

mosquitto_sub -h 46.102.34.87 -t livingroom/temperature 

在另一个终端中,让我们在相同的 topic(主题) livingroom/temperature 上发布一些JSON格式的消息。使用以下命令几次并查看消息:

mosquitto_pub -t livingroom/temperature -m {"t":27.4}

您应该看到以下输出:

收到有关主题的第一批数据

 mosquitto_pub 发送消息后将退出。如果要每秒发送一次值,请使用 watch 实用程序,其中 -n 1 是命令之间的秒数:

watch -n 1 mosquitto_ pub -t livingroom/temperature m {"t":27 .4}

您现在可以使用订阅主题上的 +,# 进行锻炼 mosquitto_sub -t livingroom/# 将为您提供所有使用命令发送的数据:

mosquitto_pub -t livingroom/temperature -m {"t":27.4}
mosquitto_pub -t livingroom/humidity -m {"h":68}

你应该看到以下内容:

接收来自不同传感器的数据

在主题中使用 +,订阅所有温度主题:

mosquitto_sub -t myhouse/+/temperature

并从其他终端发送消息,例如:

mosquitto_pub -t  myhouse/living/temperature -m {"t":25.6}
mosquitto_pub -t myhouse/kitchen/temperature -m {"t":27.1}

在您订阅的终端中,您将看到以下所有消息:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值