【DigiKey“智造万物,快乐不停”创意大赛】 3-搭建MQTT服务器
[复制链接]
做的项目里要用到MQTT服务,树莓派要当MQTT的服务器。这里选择mosquitto服务,这个服务提供MQTT的服务。
安装mosquito
刚安装完系统之后,最好是更新一下安装包的信息,这样能保证安装的是最新版本的软件,通过如下命令进行更新:
然后通过如下命令安装相应的软件:
sudo apt install mosquitto mosquitto-clients
安装之后,可以通过下面的命令验证是否安装成功
sudo systemctl status mosquitto
调用命令之后输出如上图所示,可以看到active那项显示MQTT服务正在运行了。
测试mosquito
这里先测试一下MQTT服务的订阅与发布功能。新建2个SSH终端,一个作为MQTT的发布者,一个作为订阅者,访问的都是同一个主题"mqtt/manhuami"。
在一个终端中运行如下命令去订阅1个主题,输入下面命令后终端开始等待消息。其中-h后面的参数是监听的主机,这里用本地主机,-t命令后面的是监听的主题。
mosquitto_sub -h localhost -t "mqtt/manhuami"
在另一个终端中发送如下命令去向主题"mqtt/manhuami"发布消息,-m后面的参数为发送的消息。
mosquitto_pub -h localhost -t "mqtt/manhuami" -m "hello manhuami"
发送之后就会在订阅者的那个终端中看到发送的消息,如下图所示。
远程访问MQTT服务
如果想远程访问的话,需要修改mosquito的配置参数,通过修改 /etc/mosquitto/mpsquitto.conf 这个文件的内容,进行参数的配置。
配置文件修改的说明文档在 /usr/share/doc/mosquitto/examples/mosquitto.conf 文件里面,里面说的很详细。
具体到现在的需求,可以先在文件后面增加以下2行内容:
listener 1883
allow_anonymous true
这2行的意思是:使用的端口是1883,运行不经认证的访问。配置之后使用下面的命令重启mosquitto服务
sudo systemctl restart mosquitto
测试远程访问mosquitto服务
在笔记本电脑上安装mqttx软件,通过这个软件连接到树莓派上的mqtt服务器上,并订阅和发送消息,效果如下图所示,可以看到在电脑上能够发送和接收到消息。
同样树莓派上也能够发送和接收到消息,实现了远程访问订阅和发布MQTT消息。
|