文章目录
一、简介
为了实现树莓派采集传感器数据存入云服务器的需求,学习如何在阿里云ECS部署EMQ,通过其实现与树莓派和PC的数据通信。
二、环境准备
环境准备分为树莓派、阿里云ECS、PC三方面。
1、树莓派
- 型号:树莓派4b
- 操作系统:2021-01-11-raspios-buster-armhf-full
- MQTT:mosquito-1.5.5
关于树莓派如何安装mosquito请看上一篇树莓派使用mosquito实现订阅发布。
2、阿里云ECS
我的阿里云服务器是通过阿里云高校计划免费领的两个月,算是学生党的福利。
- 操作系统:CentOS 8.0 64位
- CPU&内存:2核 4 GiB
3、PC
- 操作系统:Windows10 20H2
- MQTT客户端:MQTTX.1.5.2
三、ECS搭建部署EMQ
此次部署的EMQ采用的是EMQ X Enterprise
。EMQ X Enterprise
免费试用的License:下载链接:License下载
1、EMQ X Enterprise的安装
点击上方下载链接,按照自己对应的操作系统进行选择,获取License
安装命令:
# 如果有安装过其他版本的EMQ,需要先进行卸载
sudo yum remove emqx emqx-edge emqx-ee
# 卸载完成后,即可进行正式安装
# 1. 下载 emqx-ee-centos8-4.2.5-x86_64.rpm SHA256
wget https://www.emqx.cn/downloads/enterprise/v4.2.5/emqx-ee-centos8-4.2.5-x86_64.rpm
# 2. 安装
rpm -ivh emqx-ee-centos8-4.2.5-x86_64.rpm
# 3. 运行
sudo emqx start
其他辅助命令:
# 查看EMQ的状态
emqx_ctl status
# 后台启动 EMQ X Broker
emqx start
# 关闭 EMQ X Broker
emqx stop
# 重启 EMQ X Broker;
emqx restart
2、添加License文件
①、通过注册登录,即可成功下载license.zip
文件,将其解压至桌面。
②、通过xftp
将我们需要的emqx.key
、emqx.lic
这两个文件上传至ECS的/etc/emqx/目录下
另外xftp
新建会话的时候注意协议选择SFTP,不然连接不上。
③、执行emqx_ctl license reload
命令更新 License 文件
此时ECS算是正式成功部署EMQ。
四、MQTT通信
EMQ部署成功,下一步就是用其实现通信。
1、准备工作
因为阿里云服务器有安全组设置,也就是防火墙,它会限制端口的使用,我们需要将其手动开放,下图就是一般常用的端口开放:
打开http://localhost:18083/ ,测试是否能够成功登录EMQ
的Dashboard
,初始账号:admin
,密码:public
登录成功后,我们可以在websocket页面中进行订阅发布的测试。
2、树莓派通信
1、在树莓派中开启MQTT服务
mosquitto -v
2、在云服务中订阅消息
mosquitto_sub -v -t gpio -h 192.168.1.110
# -h指定MQTT代理服务器主机,指向PC机IP地址192.168.1.110
3、在树莓派中发布消息
mosquitto_pub -t gpio -h 192.168.1.110 -m "{\"pin\":17,\"value\":0}"
# -h指定MQTT代理服务器主机,指向PC机IP地址192.168.1.110
3、PC通信
①、PC打开MQTTX新建客户端,与服务器进行连接。
②、通过添加订阅,可以接收到相关主题发布的信息,通过设定主题点击发送即可将设置好的信息进行发送。