衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過EsDA工具和MPC-ZC1平臺實現串口MQTT服務器

AGk5_ZLG_zhiyua ? 來源:ZLG致遠電子 ? 作者:ZLG開發者社區 ? 2022-08-25 10:03 ? 次閱讀

本文以實現串口MQTT服務器為項目目標,展開講解,介紹如何通過EsDA工具和MPC-ZC1平臺,進行應用開發,逐步完成項目需求。

7e1562ce-238d-11ed-ba43-dac502259ad0.jpg簡介

工業串口服務器,以提供串口與網絡服務器之間的雙向數據透明傳輸為核心業務。在不用修改原有產品系統的情況下,為串口設備提供了便捷的聯網通道,即擴展了物聯網功能,又保障了原有系統的穩定性。

串口端主要為 RS-232、485、422 等接口,網絡端通常為 TCP、UDP、MQTT、HTTP 等協議服務器。

本文以實現串口MQTT服務器為項目目標,展開講解,介紹如何通過 EsDA 工具和 MPC-ZC1 平臺,進行應用開發,逐步完成項目需求。

7e220d26-238d-11ed-ba43-dac502259ad0.jpg??前期準備

可通過 EsDA MPC-ZC1 入門篇相關文章,掌握 EsDA 基本開發流程:

一、項目需求

項目開發前,先對項目需求進行梳理和拆解,主要有以下幾點:

  • 支持串口通信;

  • 支持MQTT通信;

  • 串口與MQTT服務器實現數據透傳;

  • 支持串口和MQTT服務器控制 LED 顯示。

* 本文僅以 LED 作為擴展業務,可根據實際需求進行擴展。

二、業務框圖

根據項目需求,大致將系統劃分為以下幾大模塊:

7e2fae68-238d-11ed-ba43-dac502259ad0.png

1. 串口通信

  • 實現串口的數據收發功能;

  • 實現串口基本參數配置功能(波特率、奇偶校驗位、數據位)。

2. MQTT通信
  • 實現MQTT客戶端功能;
  • 配置目標服務器地址、端口;
  • 發布和訂閱指定主題。

3. 數據解析

  • 解析數據流中的控制命令

4. 數據分發

  • 將解析出來的數據分發到其他模塊

7e1562ce-238d-11ed-ba43-dac502259ad0.jpg業務開發

可通過 EsDA MPC-ZC1 入門篇相關文章,掌握 EsDA 基本開發流程:

一、串口通信

實現串口通信模塊,需要使用到串口相關的 AWFlow 節點,包括 serial_ex、serial_in_ex、serial_out_ex 3個節點。1. 節點介紹1.1 serial_ex串口配置節點,屬于隱式節點,不會被顯示在畫布中,需要配套對應的功能節點一起使用。1.1.1 屬性

7e421062-238d-11ed-ba43-dac502259ad0.png

  • 名稱(name):節點名稱,用于索引查找本節點;
  • 顯示名稱(displayName):用于畫布上顯示的名稱;
  • 端口(port):用于索引串口設備;
  • 波特率(baudrate):串口波特率參數;
  • 字節大?。╞ytesize):數據位參數;
  • 奇偶校驗(parity):串口奇偶校驗位參數;
  • 停止位(stopbits):串口停止位參數;
  • 流控(flowcontrol):串口流控模式配置;
  • 幀超時(frame_timeout):收到數據后的總體等待時間;
  • 幀長度(frame_length):期望收據的數據長度;
  • 碼間超時(intersymbol_timeout):字節間的最大超時時間。

其中幀超時、幀長度、碼間超時可用于分包應用,3個參數可同時使用,任意一個條件滿足都會觸發分包。

* 配置節點(config類型)只存在節點屬性,不具備輸入輸出功能。

1.2 serial_in_ex

串口接收節點,負責讀取指定串口接收到的數據。1.2.1 屬性7e4da314-238d-11ed-ba43-dac502259ad0.png
  • 名稱(name):節點名稱,用于索引查找本節點;

  • 顯示名稱(displayName):用于畫布上顯示的名稱;

  • 配置節點名稱(config):綁定一個串口配置節點;
1.2.2 輸入* pump類型節點通常不具備數據輸入。1.2.3 輸出
  • payload讀取到串口接收的數據,字符串(可按二進制提?。?;

  • payloadLength:數據長度,uint32_t 類型;

  • payloadType: payload 的數據類型,用于后續節點數據處理;

  • istream:數據流對象,保存著串口接收的原始數據流;

*當幀超時、幀長度、碼間超時其中任意參數有效時,輸出payload 格式,否則輸出 istream。
1.3 serial_out_ex

串口發送節點,將上級節點輸出的數據發送至串口發送接口。

1.3.1 屬性
7e5a6cc0-238d-11ed-ba43-dac502259ad0.png
  • 名稱(name):節點名稱,用于索引查找本節點;

  • 顯示名稱(displayName):用于畫布上顯示的名稱;

  • 配置節點名稱(config):綁定一個串口配置節點。

1.3.2 輸入
  • payload:負載數據,字符串類型(也可按二進制轉換);

  • payloadLength:負載數據長度,uint32_t類型;

  • payloadType:指示payload的數據類型;

  • istream:數據流對象。

*支持輸入 payload istream 數據,優先使用 istream。

1.3.3 輸出

* sink類型節點通常不具備數據輸出。

2. 回發驗證

我們通過一個串口數據回發功能來驗證串口通信模塊。

2.1添加節點

添加 serial_in_ex 和 serial_out_ex 節點到畫布上。7e63f31c-238d-11ed-ba43-dac502259ad0.png

2.2配置節點

雙擊 serial_in_ex 節點,打開屬性面板。7e6f6ca6-238d-11ed-ba43-dac502259ad0.png

選擇“添加新的 serial_ex 節點”,點擊編輯配置,進入配置節點屬性面板。

7e77007e-238d-11ed-ba43-dac502259ad0.png
  • 串口設備:Uart1;

  • 波特率:115200;

  • 字節大?。?bits;

  • 奇偶校驗:None

  • 停止位:1bits;

  • 流控:None;

  • 幀超時:100;

  • 幀長度:0;

  • 碼間超時:0。

點擊添加,完成配置。

7e7f7dbc-238d-11ed-ba43-dac502259ad0.png

可以看到已經創建了一個新的配置節點,名為 serial_ex,繼續點擊完成,結束接收節點的配置。

同樣的,雙擊 serial_out_ex 節點,打開屬性面板,直接選擇剛剛創建的配置節點。

7e8bbfb4-238d-11ed-ba43-dac502259ad0.png

點擊完成,保存配置。

2.3繪制流圖

serial_in_exserial_out_ex節點進行連接。

7e9b0c6c-238d-11ed-ba43-dac502259ad0.png

2.4下載驗證

確保硬件正確連接。

7ea920fe-238d-11ed-ba43-dac502259ad0.png

選擇流圖下載接口。

7ecc589e-238d-11ed-ba43-dac502259ad0.png點擊下載。

7ed59d1e-238d-11ed-ba43-dac502259ad0.png

7ee1b374-238d-11ed-ba43-dac502259ad0.png

完成流圖下載,通過串口工具進行數據回發測試。

7eeaf6a0-238d-11ed-ba43-dac502259ad0.png

二、MQTT通信

實現 MQTT 通信模塊,需要使用到相關的AWFlow節點,包括mqtt_configmqtt_in、mqtt_out3個節點。

1. 節點介紹

1.1 mqtt_config

MQTT 配置節點,屬于隱式節點,不會被顯示在畫布中,需要配套對應的功能節點一起使用。

1.1.1

7ef90b28-238d-11ed-ba43-dac502259ad0.png

  • 名稱(name):節點名稱,用于索引查找本節點;

  • 顯示名稱(displayName:用于畫布上顯示的名稱;

  • 主機地址(host):目標服務器域名(IP地址);

  • 端口(port):目標服務器網絡端口;

  • 重連間隔(retry-interval):MQTT后臺服務重連時間間隔,單位毫秒;

  • 客戶端ID(client-id):MQTT客戶端ID;

  • 用戶名(user-name):MQTT客戶端用戶名;

  • 密碼(password):MQTT客戶端密碼;

  • ?;畎l送間隔(keep-alive-interval):?;顢祿l送周期,單位秒;

  • 清除會話(clean-session):使能自動清除歷史會話;

  • 上線主題服務質量等級(online-topic-qos):上線QoS服務質量;

  • 上線主題(online-topic-topic):上線主題;

  • 上線主題數據(online-topic-data):上線主題數據;

  • 遺囑主題服務質量等級(last-will-qos):遺囑QoS服務質量;

  • 遺囑主題(last-will-topic):遺囑主題;

  • 遺囑主題數據(last-will-data):遺囑主題數據;

  • 使能SSL(enable-ssl):使能SSL加密功能;

  • 根證書路徑(root-ca-ssl):根證書文件全路徑;

  • 客戶端證書路徑(client-certificate-path):客戶端證書文件全路徑;

  • 客戶端密鑰路徑(client-private-key-path):客戶端密鑰文件全路徑。

MQTT 配置屬性項比較多,但好在節點中已經內置了常用的默認配置,用戶僅需根據應用修改所需屬性項即可。

* 配置節點(config類型)只存在節點屬性,不具備輸入輸出功能。

1.2 mqtt_in

MQTT 訂閱節點,提供訂閱指定主題的功能。

1.2.1 屬性

7f044b96-238d-11ed-ba43-dac502259ad0.png

  • 名稱(name):節點名稱,用于索引查找本節點;
  • 顯示名稱(displayName):用于畫布上顯示的名稱;
  • 主題(topic):配置需要訂閱的主題;
  • 消息質量(qos):QoS主題服務質量等級;
  • 配置(config):綁定一個MQTT配置節點。
1.2.2 輸入

pump類型節點通常不具備數據輸入。

1.2.3 輸出
  • topic:主題標識,字符串類型;
  • payload:負載數據,指針(pointer)類型;
  • payloadLength:負載數據長度,uint32_t類型。
1.3 mqtt_out

MQTT 發布節點,向服務器發布指定主題數據。

1.3.1 屬性
7f0fe398-238d-11ed-ba43-dac502259ad0.png
  • 名稱(name):節點名稱,用于索引查找本節點;

  • 顯示名稱(displayName):用于畫布上顯示的名稱;

  • 消息質量(qos):QoS主題服務質量等級;

  • 保留標志(retain):使能主題信息在服務器保留;

  • 主題(topic):發布的主題;

  • 配置(config):綁定一個MQTT配置節點。

1.3.2 輸入

  • topic:發布主題名稱;
  • payload:負載數據;
  • payloadLength:負載數據長度,uint32_t類型;

1.3.3 輸出

* sink類型節點通常不具備數據輸出。2. 回發驗證我們通過一個MQTT數據回發功能來驗證MQTT通信模塊。2.1 添加節點添加 mqtt_in 和 mqtt_out 節點到畫布上。7f19c16a-238d-11ed-ba43-dac502259ad0.png

2.2 配置節點

雙擊 mqtt_in_ex 節點,打開屬性面板。7f27e59c-238d-11ed-ba43-dac502259ad0.png

選擇“添加新的 mqtt 節點”,點擊編輯配置,進入配置節點屬性面板。

7f3434dc-238d-11ed-ba43-dac502259ad0.png

該節點已經內置好大部分常用的配置信息,此處,我們僅修改3個必須的屬性項:

  • 主機地址:broker.emqx.io;

  • 端口號:1883;

  • 重連間隔:1000。

點擊添加,完成配置。

7f3fe926-238d-11ed-ba43-dac502259ad0.png

可以看到已經創建了一個新的配置節點,名為 mqtt,同時我們配置一個訂閱主題 EsDA-MQTT-Down ,繼續點擊完成,結束接收節點的配置。

同樣的,雙擊mqtt_out節點,打開屬性面板,直接選擇剛剛創建的配置節點,同時配置一個發布主題EsDA-MQTT-Up 。

7f4b6a62-238d-11ed-ba43-dac502259ad0.png

點擊完成,保存配置。

2.3 繪制流圖

將 mqtt_in 與 mqtt_out 節點進行連接。

7f582270-238d-11ed-ba43-dac502259ad0.png

2.4 下載驗證

確保硬件正確連接,需要4G天線,以及一張可正常聯網的SIM卡。

7ea920fe-238d-11ed-ba43-dac502259ad0.png

選擇流圖下載接口。

7ecc589e-238d-11ed-ba43-dac502259ad0.png

點擊下載。

7ed59d1e-238d-11ed-ba43-dac502259ad0.png

7ee1b374-238d-11ed-ba43-dac502259ad0.png

完成流圖下載后,可通過MQTT客戶端工具進行數據回發測試。

此處我們選擇MQTTX,下載鏈接

https://www.emqx.com/zh/downloads/MQTTX/1.8.2/MQTTX-Setup-1.8.2-x64.exe

下載結束并完成MQTTX客戶端的安裝,啟動MQTTX客戶端軟件。

7fa3d314-238d-11ed-ba43-dac502259ad0.png

點擊新建連接,創建MQTT連接,如下進行配置。

7faf8402-238d-11ed-ba43-dac502259ad0.png

點擊連接,完成客戶端配置,進入連接后,添加訂閱主題。

7fba8d98-238d-11ed-ba43-dac502259ad0.png

訂閱MPC-ZC1發布的主題EsDA-MQTT-Up 。

7fc686a2-238d-11ed-ba43-dac502259ad0.png

最后發布MPC-ZC1訂閱的主題EsDA-MQTT-Down 。

7fd178e6-238d-11ed-ba43-dac502259ad0.png

輸入發布的內容EsDA MQTT Test Message!,點擊發布主題,隨后可以收到 MPC-ZC1 回發同樣的內容。

7febdcea-238d-11ed-ba43-dac502259ad0.png

三、串口MQTT透傳

前面我們已經完成串口通信、MQTT通信功能,并進行數據回發測試,接下來我們要完成本項目的核心功能,串口與MQTT服務器之間的數據透明傳輸。

從前面兩次數據回發的流圖中,我們很容易想象到如下圖所示的方式進行流圖變換。

7ff97530-238d-11ed-ba43-dac502259ad0.png

沒錯,只需將2條回發的數據流進行交換連接,即可達到2個通信接口的數據透明傳輸。為了流圖簡潔性,我們進行節點的位置調整,如下所示。80033598-238d-11ed-ba43-dac502259ad0.png

下載流圖,進行透傳測試,效果如下圖。

8010bfd8-238d-11ed-ba43-dac502259ad0.png

801b7cb6-238d-11ed-ba43-dac502259ad0.png

至此,我們完成串口服務器的核心功能,數據透明傳輸。后續我們會繼續圍繞串口服務器項目,進行業務的擴展,增加透傳命令來控制設備上的LED。802c3c36-238d-11ed-ba43-dac502259ad0.jpg803a69aa-238d-11ed-ba43-dac502259ad0.jpg

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ESDA
    +關注

    關注

    0

    文章

    28

    瀏覽量

    7530
  • MPC
    MPC
    +關注

    關注

    2

    文章

    36

    瀏覽量

    21261
  • 串口服務器
    +關注

    關注

    1

    文章

    165

    瀏覽量

    17414

原文標題:EsDA MPC-ZC1 應用——串口服務器(一)

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MPC-ZC1工控單板如何快速搭建出產線車間的智能風機控制系統

    EsDA 為智慧工廠系統賦能,MPC-ZC1 工控單板 搭配 ZLM3100S 大功率電機驅動,快速搭建出產線車間的智能風機控制系統。
    發表于 09-28 15:09 ?882次閱讀

    EsDA MPC-ZC1入門之軟件安裝

    EsDA,嵌入式系統設計自動化,由多種軟件組成的軟件過程管理和開發的工具,以提高開發效率,降低軟件開發難度、開發成本為目標,為用戶帶來簡單易用的軟件設計體驗。
    的頭像 發表于 08-10 14:24 ?1019次閱讀

    基于MPC-ZC1工控單板的物聯網監測控制系統設計

    本文將基于 MPC-ZC1 工控單板,通過 EsDA 設計工具,分享如何搭建出一個常用的物聯網監測控制系統。
    的頭像 發表于 09-15 12:06 ?1287次閱讀

    EsDA應用】如何讓自動化領域的串口設備具備聯網能力?

    功能,成了用戶普遍的需求之一。本章將帶大家快速實現如何將MPC-ZC1開發板的串口數據,快速傳輸至TCP服務器,實現上報與下發功能,工作框架
    的頭像 發表于 02-15 16:35 ?569次閱讀

    EsDA應用】串口轉UDP服務器

    網絡化項目都需要用到串口服務器,本文基于EsDA開發平臺,為您介紹如何快速搭建一個串口轉UDP服務器。 基本工作原理:
    的頭像 發表于 02-22 13:20 ?754次閱讀

    EsDA應用】藍牙服務端節點詳解

    藍牙作為一種近距離無線通信技術,被廣泛使用在汽車,智能家居和醫療等領域中。本文主要介紹如何通過EsDA開發套件,快速實現藍牙服務器的相關應用業務。 ?? 簡介 前面文章講解了ble_c
    的頭像 發表于 05-25 00:10 ?632次閱讀
    【<b class='flag-5'>EsDA</b>應用】藍牙<b class='flag-5'>服務</b>端節點詳解

    EsDA應用】串口服務器——TCP Server

    如何讓自動化領域的串口設備具備聯網能力?本文將基于EsDA平臺,帶你開發一個串口服務器之TCP服務器的業務,快速
    的頭像 發表于 06-14 11:40 ?839次閱讀
    【<b class='flag-5'>EsDA</b>應用】<b class='flag-5'>串口服務器</b>——TCP Server

    EsDA MPC-ZC1 應用——串口服務器(一)

    本文以實現串口MQTT服務器為項目目標,展開講解,介紹如何通過EsDA
    的頭像 發表于 08-26 16:49 ?805次閱讀
    <b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 應用——<b class='flag-5'>串口服務器</b>(一)

    【Z站推薦】EsDA MPC-ZC1 應用——串口服務器(二)

    業務的同時,會根據不同的應用場景擴展一些額外的輔助業務,如DI/DO、ADC采集等。通過EsDAMPC-ZC1應用——串口服務器(一)章節,完成了串口
    的頭像 發表于 09-02 10:13 ?963次閱讀
    【Z站推薦】<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 應用——<b class='flag-5'>串口服務器</b>(二)

    【Z站推薦】EsDA MPC-ZC1 應用——IoT 監測控制系統(一)

    上報至物聯網平臺,并支持云端遠程控制。對于安全性、實時性要求較高的場合,還需要支持本地數據處理和及時響應。本文將基于MPC-ZC1工控單板,通過EsDA設計
    的頭像 發表于 09-16 10:38 ?851次閱讀
    【Z站推薦】<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 應用——IoT 監測控制系統(一)

    【Z站推薦】EsDA MPC-ZC1 應用——IoT 監測控制系統(三)

    EsDA為智慧工廠系統賦能,MPC-ZC1工控單板搭配ZLM3100S大功率電機驅動,快速搭建出產線車間的智能風機控制系統。簡介本文基于EsDAMPC-ZC1應用——IoT監測控制系
    的頭像 發表于 09-29 11:11 ?961次閱讀
    【Z站推薦】<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 應用——IoT 監測控制系統(三)

    EsDA應用】如何讓自動化領域的串口設備具備聯網能力?

    用戶普遍的需求之一。本章將帶大家快速實現如何將MPC-ZC1開發板的串口數據,快速傳輸至TCP服務器,實現上報與下發功能,工作框架如下。本文
    的頭像 發表于 02-23 15:01 ?766次閱讀
    【<b class='flag-5'>EsDA</b>應用】如何讓自動化領域的<b class='flag-5'>串口</b>設備具備聯網能力?

    EsDA應用】串口轉UDP服務器

    需要用到串口服務器,本文基于EsDA開發平臺,為您介紹如何快速搭建一個串口轉UDP服務器?;竟ぷ髟恚?b class='flag-5'>
    的頭像 發表于 03-06 13:55 ?675次閱讀
    【<b class='flag-5'>EsDA</b>應用】<b class='flag-5'>串口</b>轉UDP<b class='flag-5'>服務器</b>

    EsDA應用】串口服務器——UDP Server

    如何讓自動化領域的串口設備具備聯網能力?本文將基于EsDA平臺,帶你開發一個串口服務器之UDP服務器的業務,快速
    的頭像 發表于 07-12 11:45 ?1205次閱讀
    【<b class='flag-5'>EsDA</b>應用】<b class='flag-5'>串口服務器</b>——UDP Server

    基于EsDA MPC-ZC1 快速實現I2C 監控報警

    實驗,PT100溫度傳感的溫度采集和讀取顯示不在本文贅述,具體詳細的操作步驟可在《EsDAMPC-ZC1快速實現I2C采集監控》文章中查看。實驗基于EsDA開發平
    的頭像 發表于 08-23 15:16 ?836次閱讀
    基于<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 快速<b class='flag-5'>實現</b>I2C 監控報警
    集结号棋牌下载| 线上百家乐赌法| 百家乐网站出售| 百家乐官网如何打公式| 鸿博娱乐城| 大发888官方正版网| 新全讯网22335555| 恒丰百家乐的玩法技巧和规则| r百家乐娱乐下载| 百家乐最长的缆| 百家乐U盘下载| 百家乐d博彩论坛| 百家乐路单网下载| 百家乐怎么才会赢| 百家乐高手投注法| 网上百家乐博彩正网| 美国百家乐怎么玩| 百家乐德州桌| 百家乐赌博机玩法| 百家乐策略大全| 破解百家乐游戏机| 百家乐专用台布| 金三角百家乐的玩法技巧和规则| 试玩百家乐的玩法技巧和规则| 罗浮宫百家乐的玩法技巧和规则| 赌场百家乐的玩法技巧和规则| 百家乐庄家怎样赚钱| 澳门百家乐765118118| 大发888娱乐城备用| 大发888赌场娱乐网规则| 娱网棋牌下载| 百家乐官网真钱电玩| 澳门百家乐官网网上赌| 百家乐官网扑克桌| 博彩百家乐官网字谜总汇二丹东| 百家乐美女视频| 闲和庄百家乐娱乐| 大发888游戏代充省钱技巧| 上游棋牌下载| 百家乐官网现金网排名| 百家乐官网龙虎斗|