树莓派搭建MQTT服务器(基于EMQ)

文章目录

    • 1.准备工作
      • 1.1知识储备
    • 2.安装EMQ
    • 3.测试MQTT服务器
      • 3.1 新建服务器管理员
      • 3.2 登录到服务器后台
      • 3.3 MQTT客户端测试

1.准备工作

1.1知识储备

关于MQTT协议

能点进来的基本都知道MQTT协议是啥了吧,不知道的自行百度吧,这里就默认各位都知道了。

关于EMQ

EMQ X 是一款完全开源,高度可伸缩,高可用的分布式 MQTT 消息服务器,适用于 IoT、M2M和移动应用程序,可处理千万级别的并发客户端。
EMQ X 是跨平台的,支持 Linux、Unix、macOS 以及 Windows。这意味着EMQ X 可以部署在 x86_64 架构的服务器上,也可以部署在 Raspberry Pi 这样的 ARM 设备上。

--摘抄自官方GitHub介绍

其他:

MQTT官方网站:【入口】
EMQ官方文档:【入口】
EMQ开源代码:【GitHub】

2.安装EMQ

  1. 选择合适的系统版本进行下载安装

https://www.emqx.cn/downloads#broker

树莓派安装参考:
树莓派搭建MQTT服务器(基于EMQ)_第1张图片

关于系统说明:我的树莓派安装的官方的Ubuntu系统,树莓派原装的Raspbian是基于Debian改进的,因此,如果是官方的系统,请选择Debian一栏。另,无论是ubuntu系统,还是Raspbian系统,其CPU架构均是arm64,注意别选错哦!

查看系统版本信息:

uname -a

在这里插入图片描述
参考官方指示,安装代码如下:

wget https://www.emqx.cn/downloads/broker/v4.3.5/emqx-ubuntu20.04-4.3.5-arm64.deb
  1. 安装EMQ服务器
sudo apt install ./emqx-ubuntu20.04-4.3.5-arm64.deb    
  1. 启动MQ服务器
sudo emqx start

在这里插入图片描述

  1. 查看MQ服务器状态
sudo emqx_ctl status

在这里插入图片描述
综上,恭喜你,你的服务器就算安装好了!

3.测试MQTT服务器

3.1 新建服务器管理员

树莓派搭建MQTT服务器(基于EMQ)_第2张图片
示例:

sudo emqx_ctl admins add root mgodmonkey admin

账号:root 密码:mgodmonkey 分组:admin

3.2 登录到服务器后台

连接到与树莓派同一局域网,浏览器访问:
http://{你树莓派的内网ip}:18083/
如:http://10.34.171.27:18083/
或在树莓派中的浏览器访问:
http://localhost:18083/
输入之前创建好的管理员账号

树莓派搭建MQTT服务器(基于EMQ)_第3张图片
树莓派搭建MQTT服务器(基于EMQ)_第4张图片
关于服务器的一些端口说明:
1883:MQTT 协议端口
8883:MQTT/SSL 端口
8083:MQTT/WebSocket 端口
8080:HTTP API 端口
18083:Dashboard 管理控制台端口

注:若访问网址失败,可通过以下排错

  1. 查看服务器是否正常启动
  2. 查看IP是否正确
  3. 查看树莓派相关端口是否开放(开放端口相关的知识自行百度哈)

3.3 MQTT客户端测试

这里用到了MQTTbox客户端,这是mqtt可视化非常好用的一款软件。
官方下载网址:

http://workswithweb.com/html/mqttbox/downloads.html

网页打不开?怀疑是网络问题?no,no,no,事实证明就是打不开的,即使是在科学上网的状态下,这是我在网上找的网址,我也试到怀疑人生了,但最后我在微软的应用商店中找到了同款,如果无法访问的同学,可在应用商店中下载。

  1. 创建MQTT客户端
    树莓派搭建MQTT服务器(基于EMQ)_第5张图片
  2. 配置如下
    树莓派搭建MQTT服务器(基于EMQ)_第6张图片
    保存并返回,这里标绿则说明连接成功

在这里插入图片描述

  1. 订阅一个主题并测试
    树莓派搭建MQTT服务器(基于EMQ)_第7张图片
    树莓派搭建MQTT服务器(基于EMQ)_第8张图片
    在右测观察到发送的内容即说明服务器的功能一切正常!
    树莓派搭建MQTT服务器(基于EMQ)_第9张图片

你可能感兴趣的:(嵌入式开发,mqtt,服务器)