• 正文
    • 一、服務器中安裝Docker以及Docker Compose
    • 二、在 Docker 中部署 EMQX 服務
    • 三、使用 MQTT 將設備連接到 EMQX 服務器
  • 推薦器件
  • 相關推薦
申請入駐 產業(yè)圖譜

【教程】手把手教你!基于EMQX平臺自建MQTT服務器并實現(xiàn)通訊

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

近年來,隨著物聯(lián)網(wǎng)技術的快速發(fā)展,MQTT(Message Queuing Telemetry Transport)作為一種輕量級的通訊協(xié)議,被廣泛應用于物聯(lián)網(wǎng)設備之間的通訊。EMQX平臺作為一款開源的MQTT消息服務器,提供了穩(wěn)定可靠的消息傳輸服務。本次教程中,我們將探討如何基于EMQX平臺自建MQTT服務器,并實現(xiàn)設備之間的高效通訊。無論是在工業(yè)控制、智能家居還是智能城市等領域,搭建自己的MQTT服務器都能為我們帶來更大的靈活性和可擴展性。讓我們一起深入了解這個過程,為物聯(lián)網(wǎng)應用打下堅實的基礎。

開始前,我們需要準備一臺服務器,本地或是公網(wǎng)服務器均可。此次教程我們使用的是本地服務器,服務器系統(tǒng)使用的是Debian 12系統(tǒng),公網(wǎng)服務器的方法相同。為了方便新人操作,這里推薦使用Docker搭建方法,可以避免環(huán)境不同導致的錯誤。

一、服務器中安裝Docker以及Docker Compose

在開始之前,我們需要確認服務器的 root 賬號是否正常啟用。本教程將使用 ssh 的 root 賬號連接服務器,請確保服務器能夠通過 ssh 工具正常連接。

首先,通過 ssh 連接服務器。這里大家可以任意選擇連接的方法,原理相同,不需要完全一致。這里我們?yōu)榱朔奖?,直接使用本地終端命令 ssh 連接服務器:

接下來,我們需要在服務器上安裝 Docker 和 Docker Compose。如果已經安裝完成,可以跳過此步驟。關于 Docker 和 Docker Compose 的安裝方法,大家可以參考官網(wǎng)手冊(https://docs.docker.com/desktop/install/linux-install/ )進行安裝,也可以使用我們?yōu)榇蠹覝蕚涞拿钸M行安裝。

首先,更新并安裝會用到的工具:

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

安裝完成后,將可執(zhí)行權限應用于安裝目標路徑中的獨立二進制文件:

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

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

至此,我們已經成功安裝了 Docker 和 Docker Compose。接下來,我們將正式開始部署 EMQX 服務。

二、在 Docker 中部署 EMQX 服務

在 EMQX 官網(wǎng)(https://www.emqx.io/ ↗)中,我們點擊 Download 進入下載頁面,可以找到不同系統(tǒng)的教程。

在本次教程中,我們將使用 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 儀表板,您可以從那里連接到客戶端或檢查運行狀態(tài)。

默認用戶名和密碼:

admin

public

首次登錄時,會要求修改密碼。根據(jù)提示修改密碼即可:

之后,我們即可進入 EMQX 管理頁面。

至此,EMQX 已成功安裝到我們的服務器內。接下來,我們可以通過配置 EMQX 平臺將 MQTT 設備接入服務器。

三、使用 MQTT 將設備連接到 EMQX 服務器

接下來,我們將使用串口服務器 NB114 模擬實際設備,演示設備如何使用 MQTT 協(xié)議連接 EMQX 服務器。在連接過程中,我們將使用上位機軟件和串口調試助手軟件(XCOM)。這些軟件可在產品相關頁面下載,如果您對產品的連接通訊方法不熟悉,可以參考產品的快速入門教程。在這里,我們假設您已經成功連通了設備。

這里我們不詳細介紹 EMQX 的配置,您可以參考官方提供的手冊進行配置。我們將重點介紹如何進行連接和通訊。

在默認情況下,EMQX 可以直接通過 MQTT 協(xié)議連接,無需額外的設置。在“訪問控制→客戶端授權”頁面中,可以配置客戶端的訪問規(guī)則。

為了方便,我們不進行修改,直接打開上位機軟件,配置 NB114 進行連接。

其中,“目標 IP”即為 EMQX 的 IP 地址。

“目標端口”為 MQTT 端口號(1883)。在“平臺”中選擇“標準 MQTT 3.1.1”,并填寫“ClientID”、“UserName”、“PassWord”、“訂閱與發(fā)布主題”。由于 EMQX 并未配置訪問規(guī)則,我們可以任意填寫這些信息,不會影響設備的連接。完成配置后,點擊“保存”并重啟設備。稍等片刻,即可看到設備已經成功連接到服務器。我們在 EMQX 服務器中的“監(jiān)控→客戶端”頁面中可以查看到設備的連接狀態(tài)。

接下來,我們測試發(fā)布和訂閱主題是否正常。首先,我們需要打開 EMQX 平臺中的“問題分析→WebSocket 客戶端”頁面,并將協(xié)議版本設置為 3.1.1,其余內容可以保持不變。完成后,點擊“連接”。

接下來,我們需要設置訂閱和發(fā)布主題,將其設置為剛才在 NB114 中填寫的訂閱和發(fā)布主題。注意,這里填寫的訂閱和發(fā)布主題需要交叉填寫(訂閱填寫發(fā)布的內容,發(fā)布填寫訂閱的內容)。完成后,在訂閱主題中,需要先點擊“訂閱”,確保 WebSocket 客戶端能夠收到消息。

接下來,我們打開串口調試助手(XCOM)軟件,填寫 NB114 的參數(shù),并選擇連接。

隨后,我們發(fā)送任意內容,即可在 WebSocket 客戶端的訂閱列表中查看到相關信息。

此時,我們再點擊發(fā)布主題后面的“發(fā)布”按鈕,即可在 XCOM 軟件中查看到相關信息。

至此,我們已經成功實現(xiàn)了 NB114 與 EMQX 服務器之間的通訊。

所有教程相關的內容都已經講解完成。在本次教程中,我們從 EMQX 服務器的搭建開始,到最終實現(xiàn)設備與服務器之間的基礎通訊,全部講解完畢。當然,本次教程的內容相當基礎,設備的連接并未設置任何相關的限制,這樣是相當不安全并且浪費資源的。如果您需要將這些內容應用到實際項目中,可以參考 EMQX 手冊中的相關內容進行配置。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
KSZ8895MQXI-TR 1 Microchip Technology Inc Ethernet Transceiver, PQFP128
暫無數(shù)據(jù) 查看
KSZ8081MNXCA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER
$1.36 查看
KSZ8873RLL 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP64

ECAD模型

下載ECAD模型
$5.61 查看

相關推薦