加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 一、服务器中安装Docker以及Docker Compose
    • 二、在 Docker 中部署 EMQX 服务
    • 三、使用 MQTT 将设备连接到 EMQX 服务器
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

【教程】手把手教你!基于EMQX平台自建MQTT服务器并实现通讯

2023/10/28
3454
阅读需 10 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

近年来,随着物联网技术的快速发展,MQTT(Message Queuing Telemetry Transport)作为一种轻量级的通讯协议,被广泛应用于物联网设备之间的通讯。EMQX平台作为一款开源的MQTT消息服务器,提供了稳定可靠的消息传输服务。本次教程中,我们将探讨如何基于EMQX平台自建MQTT服务器,并实现设备之间的高效通讯。无论是在工业控制智能家居还是智能城市等领域,搭建自己的MQTT服务器都能为我们带来更大的灵活性和可扩展性。让我们一起深入了解这个过程,为物联网应用打下坚实的基础。

开始前,我们需要准备一台服务器,本地或是公网服务器均可。此次教程我们使用的是本地服务器,服务器系统使用的是Debian 12系统,公网服务器的方法相同。为了方便新人操作,这里推荐使用Docker搭建方法,可以避免环境不同导致的错误。

一、服务器中安装Docker以及Docker Compose

在开始之前,我们需要确认服务器的 root 账号是否正常启用。本教程将使用 ssh 的 root 账号连接服务器,请确保服务器能够通过 ssh 工具正常连接。

首先,通过 ssh 连接服务器。这里大家可以任意选择连接的方法,原理相同,不需要完全一致。这里我们为了方便,直接使用本地终端命令 ssh 连接服务器:

接下来,我们需要在服务器上安装 Docker 和 Docker Compose。如果已经安装完成,可以跳过此步骤。关于 Docker 和 Docker Compose 的安装方法,大家可以参考官网手册(https://docs.docker.com/desktop/install/linux-install/ )进行安装,也可以使用我们为大家准备的命令进行安装。

首先,更新并安装会用到的工具:

apt-get update && apt-get install -y wget vim

完成后,通过以下命令安装 Docker:

wget -qO- get.docker.com | bash

安装完成后,我们可以使用 docker -v 命令查看是否安装成功。

然后,我们开始安装 Docker Compose。在 Docker 的官方文档(https://docs.docker.com/compose/install/standalone/ ↗)中可以找到相关的安装教程。

curl -SL https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

安装完成后,将可执行权限应用于安装目标路径中的独立二进制文件:

sudo chmod +x /usr/local/bin/docker-compose    

然后,使用 docker-compose --version 命令查看版本,检查安装是否成功。

至此,我们已经成功安装了 Docker 和 Docker Compose。接下来,我们将正式开始部署 EMQX 服务。

二、在 Docker 中部署 EMQX 服务

在 EMQX 官网(https://www.emqx.io/ ↗)中,我们点击 Download 进入下载页面,可以找到不同系统的教程。

在本次教程中,我们将使用 Docker 部署,因此我们看到 Docker 部署页面的教程。

这里演示使用 SSH 的方式连接服务器。我们可以参考官方介绍进行部署。

使用 Docker 指令直接部署,可以使用以下命令:

docker pull emqx/emqx:5.1.1

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.1

安装完成后,可以使用 docker ps 命令查看是否安装成功。

安装完成后,打开浏览器,并在地址栏中输入 http://localhost:18083/(localhost 可以用您的 IP 地址替换)以访问 EMQX 仪表板,您可以从那里连接到客户端或检查运行状态。

默认用户名和密码:

admin

public

首次登录时,会要求修改密码。根据提示修改密码即可:

之后,我们即可进入 EMQX 管理页面。

至此,EMQX 已成功安装到我们的服务器内。接下来,我们可以通过配置 EMQX 平台将 MQTT 设备接入服务器。

三、使用 MQTT 将设备连接到 EMQX 服务器

接下来,我们将使用串口服务器 NB114 模拟实际设备,演示设备如何使用 MQTT 协议连接 EMQX 服务器。在连接过程中,我们将使用上位机软件和串口调试助手软件(XCOM)。这些软件可在产品相关页面下载,如果您对产品的连接通讯方法不熟悉,可以参考产品的快速入门教程。在这里,我们假设您已经成功连通了设备。

这里我们不详细介绍 EMQX 的配置,您可以参考官方提供的手册进行配置。我们将重点介绍如何进行连接和通讯。

在默认情况下,EMQX 可以直接通过 MQTT 协议连接,无需额外的设置。在“访问控制→客户端授权”页面中,可以配置客户端的访问规则。

为了方便,我们不进行修改,直接打开上位机软件,配置 NB114 进行连接。

其中,“目标 IP”即为 EMQX 的 IP 地址。

“目标端口”为 MQTT 端口号(1883)。在“平台”中选择“标准 MQTT 3.1.1”,并填写“ClientID”、“UserName”、“PassWord”、“订阅与发布主题”。由于 EMQX 并未配置访问规则,我们可以任意填写这些信息,不会影响设备的连接。完成配置后,点击“保存”并重启设备。稍等片刻,即可看到设备已经成功连接到服务器。我们在 EMQX 服务器中的“监控→客户端”页面中可以查看到设备的连接状态。

接下来,我们测试发布和订阅主题是否正常。首先,我们需要打开 EMQX 平台中的“问题分析→WebSocket 客户端”页面,并将协议版本设置为 3.1.1,其余内容可以保持不变。完成后,点击“连接”。

接下来,我们需要设置订阅和发布主题,将其设置为刚才在 NB114 中填写的订阅和发布主题。注意,这里填写的订阅和发布主题需要交叉填写(订阅填写发布的内容,发布填写订阅的内容)。完成后,在订阅主题中,需要先点击“订阅”,确保 WebSocket 客户端能够收到消息。

接下来,我们打开串口调试助手(XCOM)软件,填写 NB114 的参数,并选择连接。

随后,我们发送任意内容,即可在 WebSocket 客户端的订阅列表中查看到相关信息。

此时,我们再点击发布主题后面的“发布”按钮,即可在 XCOM 软件中查看到相关信息。

至此,我们已经成功实现了 NB114 与 EMQX 服务器之间的通讯。

所有教程相关的内容都已经讲解完成。在本次教程中,我们从 EMQX 服务器的搭建开始,到最终实现设备与服务器之间的基础通讯,全部讲解完毕。当然,本次教程的内容相当基础,设备的连接并未设置任何相关的限制,这样是相当不安全并且浪费资源的。如果您需要将这些内容应用到实际项目中,可以参考 EMQX 手册中的相关内容进行配置。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
KSZ8863MLLI 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP48
$5.09 查看
KSZ8041TLI-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48
$3.45 查看
TJA1021T/10/C,118 1 NXP Semiconductors TJA1021 - LIN 2.1/SAE J2602 transceiver SOIC 8-Pin

ECAD模型

下载ECAD模型
$1.44 查看

相关推荐

电子产业图谱