树莓派安装Mosquitto MQTT服务

陈拓 2021/03/21-2021/03/23

1. 安装Mosquitto MQTT组件

  • 登录树莓派(网线连接)

  • 检查网络连通状态

pi@raspberrypi:~ $ ping www.baidu.com

如果网络不通

Win10找到这个设置界面:

先去掉勾选,确定,再重新如勾选,确定。

再测试:

网通了。

  • 更新apt的资源列表

sudo apt-get update

  • 搜索可安装的MQTT

apt search mqtt

MQTT分为服务器和客户端两部分。有很多MQTT软件包可选,我们选择比较流行的mosquitto

  • 安装mosquitto mosquitto-clients

sudo apt-get install mosquitto mosquitto-clients

说明:

mosquitto – the MQTT broker(MQTT代理,即MQTT服务)

mosquitto-clients – 命令行客户端,在调试时很有用。

  • 查看已经安装的mosquitto软件包

dpkg -l mosquitto

2. 配置Mosquitto

在使用Mosquitto之前,我们需要修改配置文件。配置文件位于/etc/mosquito。

  • 查看配置文件

cat /etc/mosquitto/mosquitto.conf

注释中说:

1) 将本地配置放在/etc/mosquitto/conf.d/目录中。

我们看看/etc/mosquitto/conf.d/目录:

里面有一个说明文件,打开看看:

放置在该目录中的任何扩展名为.conf的文件都会被代理作为配置文件加载,用作本地配置。

2) 有一个完全的配置文件说明在:/usr/share/doc/mosquitto/examples/

  • 复制配置文件mosquitto.conf.gz到/etc/mosquitto/conf.d/目录

sudo cp /usr/share/doc/mosquitto/examples/mosquitto.conf.gz /etc/mosquitto/conf.d/

  • 进入/etc/mosquitto/conf.d/目录

  • 解压mosquitto.conf.gz

sudo gzip -d mosquitto.conf.gz

  • 编辑mosquitto.conf

sudo nano /etc/mosquitto/conf.d/mosquitto.conf

这是一个很大的文件,有800多行,所有的行都被#符号注释掉了。

我们修改下面几处,去掉注释符号,修改默认值:

user mosquitto

max_queued_messages 200

message_size_limit 0

allow_zero_length_clientid true

allow_duplicate_messages false

port 1883

autosave_interval 900

autosave_on_changes false

persistence true

persistence_file mosquitto.db

allow_anonymous false

Password_file /etc/mosquitto/passwd.conf

  • 退回登录时的家目录

3. 生成账号密码

下面两种方法选一种。

  • 密文创建账户

sudo Mosquitto_passwd -c /etc/mosquitto/passwd.conf 用户名

输入两遍密码

我们的用户名为ct

sudo mosquitto_passwd -c /etc/mosquitto/passwd.conf ct

  • 明文创建账户

sudo Mosquitto_passwd -b /etc/mosquitto/passwd.conf 用户名 密码

我们不用明文账户。

4. 测试Mosquitto服务

4.1 查看帮助

mosquitto -h

4.2 测试mosquitto

需要开3个终端。

  • 装载指定配置,启动mosquitto服务

mosquitto -c /etc/mosquitto/mosquitto.conf -v

-v记录所有类型的日志,因为我们在调试。以后正式使用mosquitto就不需要记录日志了,因为会占用存储空间。

上面提示日志文件mosquitto.log的权限不够:

ls -l /var/log/mosquitto/mosquitto.log

修改权限:

sudo chmod 666 /var/log/mosquitto/mosquitto.log

再执行:

mosquitto -c /etc/mosquitto/mosquitto.conf -v

服务运行,终端窗口被占用。

  • 测试publish subscribe

再打开两个终端:

1) 一个终端执行:

mosquitto_sub -p 1883 -u ct -P xxxxxx -t "test"

订阅subscribe主题Topic:test,等待接收消息。

2) 另一个终端执行:

mosquitto_pub -p 1883 -u ct -P xxxxxx -t test -m "Hello!"

发布主题为test的消息Hello!

3) 订阅窗口显示接收到的消息

4) 查看日志

sudo cat /var/log/mosquitto/mosquitto.log

5) 正式运行mosquitto服务

  • 重新启动树莓派

sudo reboot

  • 查看正在运行的mosquitto进程

ps -ef | grep mosquitto

mosquitto已经在后台启动。

参考文档

  1. Configuring MQTT on the Raspberry Pi
    https://learn.adafruit.com/diy-esp8266-home-security-with-lua-and-mqtt/configuring-mqtt-on-the-raspberry-pi
  2. Tutorial: IOT / Installing and Testing Mosquitto MQTT on the Raspberry Pi for Buster
    https://www.switchdoc.com/2018/02/tutorial-installing-and-testing-mosquitto-mqtt-on-raspberry-pi/

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨之清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值