0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于EMQX平臺(tái)自建MQTT服務(wù)器并實(shí)現(xiàn)通訊

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2023-10-27 08:21 ? 次閱讀

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

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

服務(wù)器中安裝Docker以及Docker Compose

在開始之前,我們需要確認(rèn)服務(wù)器的 root 賬號(hào)是否正常啟用。本教程將使用 ssh 的 root 賬號(hào)連接服務(wù)器,請(qǐng)確保服務(wù)器能夠通過 ssh 工具正常連接。

首先,通過 ssh 連接服務(wù)器。這里大家可以任意選擇連接的方法,原理相同,不需要完全一致。這里我們?yōu)榱朔奖悖苯邮褂帽镜亟K端命令 ssh 連接服務(wù)器:

caf892aa-745e-11ee-9788-92fbcf53809c.png

接下來(lái),我們需要在服務(wù)器上安裝 Docker 和 Docker Compose。如果已經(jīng)安裝完成,可以跳過此步驟。關(guān)于 Docker 和 Docker Compose 的安裝方法,大家可以參考官網(wǎng)手冊(cè)(https://docs.docker.com/desktop/install/linux-install/ )進(jìn)行安裝,也可以使用我們?yōu)榇蠹覝?zhǔn)備的命令進(jìn)行安裝。

首先,更新并安裝會(huì)用到的工具:

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

完成后,通過以下命令安裝 Docker:

wget -qO- get.docker.com | bash

cb1cff32-745e-11ee-9788-92fbcf53809c.png

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

cb27726e-745e-11ee-9788-92fbcf53809c.png

然后,我們開始安裝 Docker Compose。在 Docker 的官方文檔中可以找到相關(guān)的安裝教程。

cb374d42-745e-11ee-9788-92fbcf53809c.png

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

安裝完成后,將可執(zhí)行權(quán)限應(yīng)用于安裝目標(biāo)路徑中的獨(dú)立二進(jìn)制文件:

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

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

cb3dc032-745e-11ee-9788-92fbcf53809c.png

至此,我們已經(jīng)成功安裝了 Docker 和 Docker Compose。接下來(lái),我們將正式開始部署 EMQX 服務(wù)。

在 Docker 中部署 EMQX 服務(wù)

在 EMQX 官網(wǎng)中,我們點(diǎn)擊 Download 進(jìn)入下載頁(yè)面,可以找到不同系統(tǒng)的教程。

cb682ba6-745e-11ee-9788-92fbcf53809c.png

在本次教程中,我們將使用 Docker 部署,因此我們看到 Docker 部署頁(yè)面的教程。

cb6c3b56-745e-11ee-9788-92fbcf53809c.png

這里演示使用 SSH 的方式連接服務(wù)器。我們可以參考官方介紹進(jìn)行部署。

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

docker pull emqx/emqx:5.1.1

cb73d14a-745e-11ee-9788-92fbcf53809c.png

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

cb895740-745e-11ee-9788-92fbcf53809c.png

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

cb91ecde-745e-11ee-9788-92fbcf53809c.png

安裝完成后,打開瀏覽器,并在地址欄中輸入 http://localhost:18083/(localhost 可以用您的 IP 地址替換)以訪問 EMQX 儀表板,您可以從那里連接到客戶端或檢查運(yùn)行狀態(tài)。

默認(rèn)用戶名和密碼:

admin

public

cb9b3546-745e-11ee-9788-92fbcf53809c.png

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

cb9f226e-745e-11ee-9788-92fbcf53809c.png

之后,我們即可進(jìn)入 EMQX 管理頁(yè)面。

cbaa0756-745e-11ee-9788-92fbcf53809c.png

至此,EMQX 已成功安裝到我們的服務(wù)器內(nèi)。接下來(lái),我們可以通過配置 EMQX 平臺(tái)將 MQTT 設(shè)備接入服務(wù)器。

使用 MQTT 將設(shè)備連接到 EMQX 服務(wù)器

接下來(lái),我們將使用串口服務(wù)器 NB114 模擬實(shí)際設(shè)備,演示設(shè)備如何使用 MQTT 協(xié)議連接 EMQX 服務(wù)器。在連接過程中,我們將使用上位機(jī)軟件和串口調(diào)試助手軟件(XCOM)。這些軟件可在產(chǎn)品相關(guān)頁(yè)面下載,如果您對(duì)產(chǎn)品的連接通訊方法不熟悉,可以參考產(chǎn)品的快速入門教程。在這里,我們假設(shè)您已經(jīng)成功連通了設(shè)備。

這里我們不詳細(xì)介紹 EMQX 的配置,您可以參考官方提供的手冊(cè)進(jìn)行配置。我們將重點(diǎn)介紹如何進(jìn)行連接和通訊。

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

cbbaa214-745e-11ee-9788-92fbcf53809c.png

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

cbcd24fc-745e-11ee-9788-92fbcf53809c.png

其中,“目標(biāo) IP”即為 EMQX 的 IP 地址。

cbee3b74-745e-11ee-9788-92fbcf53809c.png

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

cbfa5878-745e-11ee-9788-92fbcf53809c.png

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

cc06c57c-745e-11ee-9788-92fbcf53809c.png

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

cc207260-745e-11ee-9788-92fbcf53809c.png

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

cc24bbea-745e-11ee-9788-92fbcf53809c.png

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

cc34affa-745e-11ee-9788-92fbcf53809c.pngcc3f7912-745e-11ee-9788-92fbcf53809c.png

此時(shí),我們?cè)冱c(diǎn)擊發(fā)布主題后面的“發(fā)布”按鈕,即可在 XCOM 軟件中查看到相關(guān)信息。

cc637f10-745e-11ee-9788-92fbcf53809c.pngcc765dec-745e-11ee-9788-92fbcf53809c.png

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44640

    瀏覽量

    373446
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9165

    瀏覽量

    85438
  • 通訊
    +關(guān)注

    關(guān)注

    9

    文章

    903

    瀏覽量

    34912
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    651

    瀏覽量

    22512
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【飛騰派4G版免費(fèi)試用】如何在飛騰開發(fā)板上安裝EMQX MQTT服務(wù)器

    EMQX 是一款大規(guī)模分布式物聯(lián)網(wǎng)接入平臺(tái),同時(shí)作為一個(gè)高性能、可擴(kuò)展的 MQTT 消息服務(wù)器,它可以為物聯(lián)網(wǎng)(IoT)應(yīng)用提供可靠的實(shí)時(shí)消息傳輸和設(shè)備連接解決方案。通過強(qiáng)大的內(nèi)置規(guī)則
    發(fā)表于 12-26 11:16

    NB81如何通過MQTT對(duì)接EMQX服務(wù)器?

    NB81如何通過MQTT對(duì)接EMQX服務(wù)器,有對(duì)接流程的參考文檔么
    發(fā)表于 06-04 06:02

    使用windows版mosquitto軟件自建一個(gè)服務(wù)器

    和消息(指定IP、端口、用戶名、口令): h.IG532連接自建MQTT服務(wù)器成功 i.使用mqtt.fx訂閱主題
    發(fā)表于 07-24 06:39

    IG902如何上傳數(shù)據(jù)到MQTT平臺(tái)EMQX ?

    EMQX 是全球領(lǐng)先的開源物聯(lián)網(wǎng)MQTT 5.0服務(wù)器,高并發(fā)、低延時(shí),內(nèi)置強(qiáng)大的規(guī)則引擎,支持邊緣及云端部署,是5G時(shí)代大型物聯(lián)網(wǎng)應(yīng)用首選技術(shù)方案。IG902邊緣計(jì)算網(wǎng)關(guān),可以通過MQTT
    發(fā)表于 07-25 07:09

    LiteOS云端對(duì)接教程02-使用EMQ-X搭建私有MQTT服務(wù)器

    Broker,它是基于Erlang/OTP語(yǔ)言平臺(tái)開發(fā),支持大規(guī)模連接和分布式集群,發(fā)布訂閱模式的百萬(wàn)級(jí)開源MQTT消息服務(wù)器。說起EMQ-X,其它的前身就是emqttd消息服務(wù)器,
    發(fā)表于 02-26 10:05

    轉(zhuǎn)發(fā):基于3861WIFI IOT搭建可視化IOT平臺(tái)部署智能家居 教程1-搭建MQTT服務(wù)器平臺(tái)

    。文章涉及篇幅較多,故打算用多篇文章來(lái)講解,這是第一章,搭建EMQX服務(wù)器。如何搭建EMQX服務(wù)器:1.前面說到,搭建一個(gè)IOT平臺(tái)需要一個(gè)
    發(fā)表于 12-23 17:28

    arduino如何使用esp8266連接自己搭建的emqx服務(wù)器

    前言之前總是沒時(shí)間整理這一部分的內(nèi)容,現(xiàn)在抽空整理一下arduino使用esp8266連接自己搭建的emqx服務(wù)器的內(nèi)容吧!關(guān)于如何自建emqx服務(wù)
    發(fā)表于 01-27 08:26

    NUC980采集數(shù)據(jù)通過MQTT發(fā)送到消息服務(wù)器打印顯示步驟分享

    1、MQTT通信測(cè)試AT指令控制ESP8266連接WIFI接入互聯(lián)網(wǎng),NUC980采集DHT11溫濕度傳感數(shù)據(jù),通過MQTT發(fā)送到消息服務(wù)器(本人是
    發(fā)表于 06-06 15:27

    AT32 EMAC MQTT Client

    _SERVER_ADDRESS和MQTT_SERVER_PORT這兩個(gè)宏定義,用戶可以根據(jù)網(wǎng)段跟應(yīng)用修改這兩個(gè)宏。圖2. 配置服務(wù)端的socket2.4MQTT server搭建MQTT
    發(fā)表于 06-16 20:05

    通訊MQTT服務(wù)器在線客戶端的問題

    我在網(wǎng)上找一個(gè)通訊MQTT服務(wù)器在線客戶端。我有點(diǎn)糊涂,到底是服務(wù)器,還是客戶端??梢赃B上,也可以發(fā)數(shù)據(jù),就是不知道跟誰(shuí)連。我從上面下了個(gè)WIN32客戶端,打開,怎么設(shè)置都連不上。用
    發(fā)表于 11-19 12:17

    通過一臺(tái)PLC網(wǎng)關(guān)同時(shí)采集多臺(tái)PLC數(shù)據(jù)到MQTT自建服務(wù)器

    通過一臺(tái)PLC網(wǎng)關(guān)同時(shí)采集多臺(tái)PLC數(shù)據(jù)到MQTT自建服務(wù)器
    發(fā)表于 11-21 09:56 ?1155次閱讀
    通過一臺(tái)PLC網(wǎng)關(guān)同時(shí)采集多臺(tái)PLC數(shù)據(jù)到<b class='flag-5'>MQTT</b><b class='flag-5'>自建</b><b class='flag-5'>服務(wù)器</b>

    物聯(lián)那點(diǎn)事兒之nodemcu連接emqx自建服務(wù)器(arduino+esp8266)

    前言之前總是沒時(shí)間整理這一部分的內(nèi)容,現(xiàn)在抽空整理一下arduino使用esp8266連接自己搭建的emqx服務(wù)器的內(nèi)容吧!關(guān)于如何自建emqx服務(wù)
    發(fā)表于 12-03 17:06 ?15次下載
    物聯(lián)那點(diǎn)事兒之nodemcu連接<b class='flag-5'>emqx</b><b class='flag-5'>自建</b><b class='flag-5'>服務(wù)器</b>(arduino+esp8266)

    EMQX MQTT消息服務(wù)器

    emqx.zip
    發(fā)表于 04-20 10:05 ?2次下載
    <b class='flag-5'>EMQX</b> <b class='flag-5'>MQTT</b>消息<b class='flag-5'>服務(wù)器</b>

    EMQX Cloud Serverless 正式上線

    MQTT Serverless 云服務(wù)——EMQX Cloud Serverless 的 Beta 版本,用戶僅 3 秒即可極速創(chuàng)建 MQTT 部署,無(wú)需關(guān)心
    的頭像 發(fā)表于 02-06 15:57 ?1059次閱讀
    <b class='flag-5'>EMQX</b> Cloud Serverless 正式上線

    采用華為云 Flexus 云服務(wù)器 X 實(shí)例部署 MQTT 服務(wù)器完成設(shè)備上云

    一、前言 1.1 開發(fā)需求 這篇文章講解: 采用華為云最新推出的 Flexus 云服務(wù)器 X 實(shí)例 EMQX 服務(wù)器,搭建 MQTT 服務(wù)器
    的頭像 發(fā)表于 12-26 18:12 ?151次閱讀
    采用華為云 Flexus 云<b class='flag-5'>服務(wù)器</b> X 實(shí)例部署 <b class='flag-5'>MQTT</b> <b class='flag-5'>服務(wù)器</b>完成設(shè)備上云