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

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

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

IO設(shè)備接入MQTT

ZLG致遠電子 ? 2023-09-28 08:26 ? 次閱讀

隨著物聯(lián)網(wǎng)的迅速發(fā)展,越來越多的IO設(shè)備需要與云平臺進行通信,以實現(xiàn)遠程監(jiān)控和控制。本文將基于EsDA開發(fā)套件快速實現(xiàn)將IO設(shè)備接入MQTT的應(yīng)用開發(fā),幫助用戶實現(xiàn)智能互聯(lián)。

b417bde8-5d95-11ee-9788-92fbcf53809c.jpg ?簡介

在物聯(lián)網(wǎng)應(yīng)用中,接入IO設(shè)備是非常重要的一環(huán)。而MQTT作為輕量級的一種通信協(xié)議,被廣泛應(yīng)用于物聯(lián)網(wǎng)領(lǐng)域。本文將介紹如何使用EPC6450-AWI開發(fā)板,以及圖形化設(shè)計工具AWFlow Designer將IO設(shè)備接入MQTT,實現(xiàn)實時的數(shù)據(jù)傳輸和遠程控制。


b41de84e-5d95-11ee-9788-92fbcf53809c.jpg ?項目概述

MQTT是通過發(fā)布主題來上傳消息,訂閱相關(guān)的主題來接收消息。本文將通過對EPC6450-AWI核心板 上的IO設(shè)備執(zhí)行數(shù)據(jù)采集和數(shù)據(jù)處理后,將數(shù)據(jù)以發(fā)布MQTT主題消息的形式進行上傳;而MQTTX客戶端以訂閱相關(guān)主題來實時監(jiān)控IO設(shè)備相關(guān)的數(shù)據(jù),MQTTX客戶端還可以以發(fā)布主題的形式對核心板進行遠端控制和消息下發(fā)。

本文的IO設(shè)備主要是button按鍵和ADC數(shù)據(jù)采集,按鍵主要是模擬按下緊急按鈕后上傳緊急戒備的狀態(tài)消息到云端,MQTTX客戶端訂閱緊急狀態(tài)的主題就可以實時監(jiān)控并顯示相關(guān)狀態(tài)。ADC數(shù)據(jù)采集是將采集到的數(shù)據(jù)與設(shè)定值對比,若大于設(shè)定值則發(fā)布數(shù)值過高報警的主題,MQTTX客戶端訂閱該主題就可以實時顯示ADC數(shù)據(jù)采集的狀態(tài)。本項目大概的邏輯處理可參考下圖。

b423b666-5d95-11ee-9788-92fbcf53809c.png
b41de84e-5d95-11ee-9788-92fbcf53809c.jpg ?項目準備客戶可閱讀以下相關(guān)文章,對MQTT協(xié)議和IO設(shè)備在EsDA上的使用操作上可以有更多的了解:

  • 【EsDA應(yīng)用】常用IO設(shè)備節(jié)點詳解
  • EsDAMPC-ZC1入門(二)——LED控制
  • 基于EsDAMPC-ZC1快速實現(xiàn)——按鍵高級應(yīng)用
  • EsDAMPC-ZC1應(yīng)用——串口服務(wù)器(一)

1. 上位機準備

1.1 下載MQTTX在官網(wǎng)下載并安裝MQTTX,一款開源跨平臺MQTT協(xié)議的桌面客戶端。在使用過程中不需要自行部署MQTT服務(wù)器,使用以下代理地址和端口號就能進行快速測試,MQTT代理地址:broker.emqx.io,端口號:1883(TCP);8883(SSL)。1.2 快速建立連接打開軟件,點擊左側(cè)菜單欄的“+”按鈕。如果頁面為空,也可直接點擊右側(cè)的+ New Connection來快速設(shè)定新的客戶端連接。

b42f9742-5d95-11ee-9788-92fbcf53809c.png

在創(chuàng)建連接的頁面上,需要設(shè)置連接服務(wù)器的相關(guān)信息,用戶只需要填寫Name(連接標(biāo)識名稱,客戶隨機設(shè)定即可),Client ID(客戶端ID號,客戶隨機設(shè)定即可),Host(連接的服務(wù)器地址,因為不是自建服務(wù)器,所以使用公用的broker.emqx.io),Port(服務(wù)器對應(yīng)的端口號1883)參數(shù)即可,設(shè)置成功后點擊connect按鈕,若網(wǎng)絡(luò)無礙則等待連接成功即可。b436b25c-5d95-11ee-9788-92fbcf53809c.png1.3 消息的訂閱與發(fā)布
連接成功后,點擊New Subscription按鈕,在彈窗的Topic編輯框中填寫客戶需要訂閱的主題名稱,填寫后點擊Confirm確認,則訂閱成功。b43d806e-5d95-11ee-9788-92fbcf53809c.png若需要發(fā)布主題,則在下圖中的發(fā)布主題編輯框中填寫用戶的發(fā)布主題名稱,內(nèi)容框中填寫發(fā)布主題的內(nèi)容。b4434206-5d95-11ee-9788-92fbcf53809c.pngMQTTX軟件的更多使用操作,可以查看其官網(wǎng)進行閱讀并學(xué)習(xí)。
2. 硬件準備

  • 在標(biāo)有絲印為TF Card 的卡槽處,插入SD卡。
  • 在標(biāo)有絲印為DUART的模塊上,將TTL轉(zhuǎn)USB串口模塊的TX與板子絲印為RXD連接,TTL轉(zhuǎn)USB串口模塊的RX與板子絲印為TXD相連;并將串口模塊的USB端口接入電腦。
  • 在標(biāo)有絲印為Type-C接口處,插上Type-C線,并將Type-C的USB端口插入電腦。
  • 在標(biāo)有絲印為NET0或 NET1的網(wǎng)絡(luò)接口處,插上網(wǎng)線頭,另一端的網(wǎng)線頭插在PC的網(wǎng)絡(luò)接口處。

b44ae20e-5d95-11ee-9788-92fbcf53809c.png

3. 網(wǎng)絡(luò)搭建

打開串口調(diào)試助手檢索并打開TTL轉(zhuǎn)USB串口模塊的設(shè)備端口號后,使用shell命令ip addr,查看網(wǎng)口的ip地址,根據(jù)下圖可知,本文使用的網(wǎng)口設(shè)備ip地址是192.168.137.251。

b45226fe-5d95-11ee-9788-92fbcf53809c.png因為AWFlow的mqtt節(jié)點是客戶端節(jié)點,而訪問的mqtt代理地址broker.emqx.io是需要流量的,所以需要通過PC電腦共享網(wǎng)絡(luò)給開發(fā)板上網(wǎng)。配置PC上的以太網(wǎng)的IP與開發(fā)板的IP地址在同一局域網(wǎng)下。b458c6ee-5d95-11ee-9788-92fbcf53809c.png將PC上的WLAN配置為共享給以太網(wǎng)。b4604b4e-5d95-11ee-9788-92fbcf53809c.png在串口調(diào)試助手輸入shell指令ping www.baidu.com,ping成功即開發(fā)板聯(lián)網(wǎng)成功。

b4656976-5d95-11ee-9788-92fbcf53809c.png


b41de84e-5d95-11ee-9788-92fbcf53809c.jpg ?項目實施本項目業(yè)務(wù)主要分為三個部分:

  • MQTTX客戶端:訂閱核心板設(shè)備發(fā)布的主題,并發(fā)布對核心板控制和下發(fā)消息的主題;
  • 按鍵模塊:報警按鈕按下則觸發(fā)報警狀態(tài),并發(fā)布報警的主題;
  • ADC采集模塊:adc數(shù)據(jù)采集,若采集到的數(shù)值大于設(shè)定值則觸發(fā)數(shù)值過高報警,并發(fā)布adc數(shù)值報警的主題。

1. 流圖繪制

添加mqtt_in,fscript,log,adc,mqtt_out,button節(jié)點到畫布中并連線如下圖。

b470ca28-5d95-11ee-9788-92fbcf53809c.png

2. 節(jié)點配置

雙擊mqtt_in節(jié)點,配置訂閱的主題以及點擊配置的鉛筆圖標(biāo)對mqtt_config配置節(jié)點進行配置。

b476a5e2-5d95-11ee-9788-92fbcf53809c.png

在mqtt_config配置節(jié)點中,可以只對主機地址,端口以及客戶端id進行配置,如下圖,因為本流圖所有的mqtt_config節(jié)點配置值都相同,后面不再贅述。b47dea0a-5d95-11ee-9788-92fbcf53809c.png

mqtt_in的消費者節(jié)點fscript的內(nèi)容是對訂閱主題的消息進行處理并輸出,內(nèi)容如下:

print("receive mqtt topic is "+msg.topic+'\n')rb = rbuffer_create(msg.payload, msg.payloadLength)f = "receive mqtt data is "msg.payload = f + rbuffer_read_string(rb)

雙擊adc節(jié)點,選擇目標(biāo)板對應(yīng)絲印的ADC通道號。b482fa2c-5d95-11ee-9788-92fbcf53809c.png

作為adc的消費者節(jié)點,fscript主要目的是對采集到的adc數(shù)值進行處理,因為本項目是數(shù)值過高報警,所以fscript的內(nèi)容如下:

if (msg.payload > 2500){ print("adc data is high") msg.payload = "Collect data is high!\n" wbuffer_write_string(wb,msg.payload) output.payload = wbuffer_get_data(wb) output.payloadLength = len("Collect data is high!\n")}

接著雙擊adc排頭的mqtt_out節(jié)點,編輯發(fā)布的MQTT主題,以及對mqtt_config進行配置。b488af30-5d95-11ee-9788-92fbcf53809c.png雙擊button節(jié)點,選擇目標(biāo)板對應(yīng)按鍵絲印的GPIO編號。b48e976a-5d95-11ee-9788-92fbcf53809c.png

雙擊button的消費者節(jié)點fscript,本節(jié)點的主要內(nèi)容是對button按鍵輸出的數(shù)值進行處理后傳遞給mqtt_out節(jié)點,內(nèi)容如下:

if (msg.payload == 'on' ){ print("button pressed") msg.payload = "Emergency button pressed!\n" wbuffer_write_string(wb,msg.payload) output.payload = wbuffer_get_data(wb) output.payloadLength = len("Emergency button pressed!\n")}else if(msg.payload == 'off') { print("button bounced")}

雙擊button按鍵排頭的mqtt_out節(jié)點,對發(fā)布主題和mqtt_config進行配置。

b494e886-5d95-11ee-9788-92fbcf53809c.png

3. 下載驗證

基于上位機準備章節(jié)搭建好MQTTX客戶端后對ADC_Status和Emergency_status的主題進行訂閱,下載AWFlow流圖到核心板中;進行按鍵按下和彈起等的操作以及adc數(shù)據(jù)采集的操作后,可以看到MQTTX客戶端能接收到對應(yīng)主題的消息,實現(xiàn)了對核心板的IO設(shè)備進行數(shù)據(jù)和狀態(tài)等的實時監(jiān)控。

b49b392a-5d95-11ee-9788-92fbcf53809c.pngMQTTX客戶端發(fā)布zlgtest的主題,可以在核心板上的打印查看發(fā)布主題的消息內(nèi)容如下,也可以根據(jù)客戶端發(fā)布主題的消息對設(shè)備進行控制等操作。b4a23c7a-5d95-11ee-9788-92fbcf53809c.png根據(jù)上述實驗可知,將IO設(shè)備接入MQTT后,即可實現(xiàn)對設(shè)備的監(jiān)控和控制等能力,為用戶帶來了更好的使用體驗。

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

    關(guān)注

    0

    文章

    448

    瀏覽量

    39156
  • 設(shè)備
    +關(guān)注

    關(guān)注

    2

    文章

    4509

    瀏覽量

    70642
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    651

    瀏覽量

    22507
收藏 人收藏

    評論

    相關(guān)推薦

    【教程】設(shè)備通過MQTT協(xié)議接入OneNET平臺,建立可視化界面

    在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信、信息的收集以及MQTT協(xié)議都是可以考慮的方案之一。MQTT通常用于需要低功耗和低帶寬的場景,如物聯(lián)網(wǎng)設(shè)備、傳感器網(wǎng)絡(luò)、移動應(yīng)用等。它的輕量級和高效特性使其非常適合
    的頭像 發(fā)表于 10-25 08:06 ?826次閱讀
    【教程】<b class='flag-5'>設(shè)備</b>通過<b class='flag-5'>MQTT</b>協(xié)議<b class='flag-5'>接入</b>OneNET平臺,建立可視化界面

    MQTT網(wǎng)關(guān)接入工業(yè)物聯(lián)網(wǎng)平臺解析

    MQTT網(wǎng)關(guān) 能夠連接不同類型的工業(yè)物聯(lián)設(shè)備,實現(xiàn)設(shè)備之間的數(shù)據(jù)傳輸和控制。它不僅能夠?qū)碜圆煌?b class='flag-5'>設(shè)備的多種通信協(xié)議(如Modbus、PLC、數(shù)控機床等)統(tǒng)一轉(zhuǎn)換為
    的頭像 發(fā)表于 10-16 16:31 ?278次閱讀

    MQTT.fx 連接Onenet 多協(xié)議接入平臺 MQTT協(xié)議(舊版)詳解

    此文檔可以作為中間態(tài)MQTT版本,默認參數(shù)獲取教程 多協(xié)議接入地址 td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt
    的頭像 發(fā)表于 09-30 15:20 ?707次閱讀
    <b class='flag-5'>MQTT</b>.fx 連接Onenet 多協(xié)議<b class='flag-5'>接入</b>平臺 <b class='flag-5'>MQTT</b>協(xié)議(舊版)詳解

    MQTT智能網(wǎng)關(guān)接入物聯(lián)網(wǎng)平臺:實現(xiàn)高效連接與數(shù)據(jù)交互

    連接設(shè)備和物聯(lián)網(wǎng)平臺的關(guān)鍵橋梁,在數(shù)據(jù)采集、傳輸和控制中發(fā)揮著至關(guān)重要的作用。本文將詳細介紹MQTT智能網(wǎng)關(guān)如何接入物聯(lián)網(wǎng)平臺,實現(xiàn)高效連接與數(shù)據(jù)交互。 一、選擇合適的MQTT智能網(wǎng)關(guān)
    的頭像 發(fā)表于 09-27 17:04 ?328次閱讀

    合宙Air780EP模塊——AT指令MQTT接入OneNET開發(fā)指南

    物聯(lián)網(wǎng)設(shè)備要互動,Air780EP模塊是橋梁。用AT指令告訴MQTT:“幫我把話帶給OneNET吧!”MQTT就忙著打包數(shù)據(jù),像寄信一樣傳給OneNET。OneNET收到后,處理、存著或再轉(zhuǎn)發(fā)。這
    的頭像 發(fā)表于 08-19 16:40 ?2237次閱讀
    合宙Air780EP模塊——AT指令<b class='flag-5'>MQTT</b><b class='flag-5'>接入</b>OneNET開發(fā)指南

    鋇錸MODBUS轉(zhuǎn)MQTT網(wǎng)關(guān)BL100一鍵解決私有云平臺設(shè)備接入量瓶頸

    當(dāng)大量采用Modbus協(xié)議的智能儀表接入時,傳統(tǒng)的輪詢機制導(dǎo)致的數(shù)據(jù)采集速度慢、服務(wù)器負載高、流量消耗大等一系列問題接踵而來。為了解決這些瓶頸,鋇錸技術(shù)推出的MODBUS轉(zhuǎn)MQTT網(wǎng)關(guān)BL100
    的頭像 發(fā)表于 07-29 13:55 ?265次閱讀
    鋇錸MODBUS轉(zhuǎn)<b class='flag-5'>MQTT</b>網(wǎng)關(guān)BL100一鍵解決私有云平臺<b class='flag-5'>設(shè)備</b><b class='flag-5'>接入</b>量瓶頸

    鋇錸Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)支持一鍵接入華為云

    隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,工業(yè)設(shè)備接入云平臺以實現(xiàn)遠程數(shù)據(jù)采集、監(jiān)控與管理已成為趨勢。華為云平臺以其強大的數(shù)據(jù)處理能力和安全穩(wěn)定的運行環(huán)境,受到越來越多企業(yè)的青睞。而鋇錸推出的Modbus轉(zhuǎn)MQTT
    的頭像 發(fā)表于 07-29 13:47 ?239次閱讀
    鋇錸Modbus轉(zhuǎn)<b class='flag-5'>MQTT</b>網(wǎng)關(guān)支持一鍵<b class='flag-5'>接入</b>華為云

    打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法

    上次我們在安裝HomeAssistant的時候(打卡智能家居學(xué)習(xí)之旅(1):了解HomeAssistant),順便把MQTT 集成安裝好了。 為什么要裝MQTT 集成呢?Wi-Fi 設(shè)備
    的頭像 發(fā)表于 06-07 09:36 ?1454次閱讀
    打卡智能家居之旅(2):<b class='flag-5'>設(shè)備</b><b class='flag-5'>接入</b>HomeAssistant的方法

    智嵌物聯(lián)網(wǎng)絡(luò)IO控制器接入智嵌云控演示

    智嵌物聯(lián)的網(wǎng)絡(luò)IO控制器(云版本)支持接入智嵌云,實現(xiàn)設(shè)備的遠程控制與檢測。本文檔以智嵌的4路網(wǎng)絡(luò)IO控制器為例,介紹設(shè)備
    的頭像 發(fā)表于 05-30 09:26 ?525次閱讀
    智嵌物聯(lián)網(wǎng)絡(luò)<b class='flag-5'>IO</b>控制器<b class='flag-5'>接入</b>智嵌云控演示

    以太網(wǎng)設(shè)備如何接入標(biāo)準MQTT協(xié)議?

    本次展示億佰特以太網(wǎng)類產(chǎn)品接入標(biāo)準MQTT協(xié)議教程,以E90-DTU(900SL30)E為例,其他產(chǎn)品可參照本教程?!咀ⅰ窟B接前需要得到服務(wù)器的地址、端口以及三要素(Devicename
    的頭像 發(fā)表于 05-24 08:20 ?456次閱讀
    以太網(wǎng)<b class='flag-5'>設(shè)備</b>如何<b class='flag-5'>接入</b>標(biāo)準<b class='flag-5'>MQTT</b>協(xié)議?

    MQTT物聯(lián)網(wǎng)平臺是什么?MQTT物聯(lián)網(wǎng)平臺的功能

    ,易于實現(xiàn),因此廣泛應(yīng)用于受限的環(huán)境,如機器與機器的通信(M2M)以及物聯(lián)網(wǎng)環(huán)境(IoT)。 MQTT物聯(lián)網(wǎng)平臺通過提供一種標(biāo)準化的協(xié)議和平臺,實現(xiàn)了消息的可靠傳輸、設(shè)備連接管理、數(shù)據(jù)存儲和分析等功能,方便開發(fā)人員構(gòu)建、連接和管理物聯(lián)網(wǎng)
    的頭像 發(fā)表于 04-01 10:20 ?737次閱讀

    MQTT物聯(lián)網(wǎng)平臺實現(xiàn)設(shè)備連接與安全加密

    隨著工業(yè)物聯(lián)網(wǎng)(IIoT)的不斷發(fā)展,越來越多的應(yīng)用場景采用MQTT作為工業(yè)物聯(lián)網(wǎng)通信的輕量級消息傳輸協(xié)議。由于其簡潔、高效和靈活的特性,MQTT 成為物聯(lián)網(wǎng)通信的熱門選擇。通過 MQTT協(xié)議,
    的頭像 發(fā)表于 03-19 10:25 ?619次閱讀
    <b class='flag-5'>MQTT</b>物聯(lián)網(wǎng)平臺實現(xiàn)<b class='flag-5'>設(shè)備</b>連接與安全加密

    MQTT網(wǎng)關(guān)是什么?MQTT網(wǎng)關(guān)的功能

    MQTT網(wǎng)關(guān)是支持MQTT協(xié)議的物聯(lián)網(wǎng)網(wǎng)關(guān),是一種用于連接不同設(shè)備和云端平臺之間的中間件。它充當(dāng)了設(shè)備和云端服務(wù)之間的數(shù)據(jù)傳輸橋梁。MQTT
    的頭像 發(fā)表于 03-18 17:10 ?814次閱讀

    mqtt協(xié)議與終端監(jiān)測設(shè)備結(jié)合

    mqtt協(xié)議與終端監(jiān)測設(shè)備結(jié)合 摘要: MQTT是一個基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議, 優(yōu)點是輕量,簡單,開放和易于實現(xiàn)的,這樣的特點在于物聯(lián)網(wǎng)設(shè)備中就十分適用,這也是它在
    的頭像 發(fā)表于 01-30 13:13 ?398次閱讀
    <b class='flag-5'>mqtt</b>協(xié)議與終端監(jiān)測<b class='flag-5'>設(shè)備</b>結(jié)合

    MQTT物聯(lián)網(wǎng)平臺是什么?MQTT物聯(lián)網(wǎng)平臺的功能有哪些

    ,易于實現(xiàn),因此廣泛應(yīng)用于受限的環(huán)境,如機器與機器的通信(M2M)以及物聯(lián)網(wǎng)環(huán)境(IoT)。 MQTT物聯(lián)網(wǎng)平臺通過提供一種標(biāo)準化的協(xié)議和平臺,實現(xiàn)了消息的可靠傳輸、設(shè)備連接管理、數(shù)據(jù)存儲和分析等功能,方便開發(fā)人員構(gòu)建、連接和管理物聯(lián)網(wǎng)
    的頭像 發(fā)表于 01-24 09:23 ?1153次閱讀