加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • ??項(xiàng)目概述
    • ?項(xiàng)目準(zhǔn)備
    • ? 項(xiàng)目實(shí)施
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【EsDA應(yīng)用】IO設(shè)備接入MQTT

2023/10/05
2539
閱讀需 12 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

簡(jiǎn)介

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

??項(xiàng)目概述

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

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

?項(xiàng)目準(zhǔn)備

客戶可閱讀以下相關(guān)文章,對(duì)MQTT協(xié)議和IO設(shè)備在EsDA上的使用操作上可以有更多的了解:

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

1. 上位機(jī)準(zhǔn)備

1.1 下載MQTTX

在官網(wǎng)下載并安裝MQTTX,一款開源跨平臺(tái)MQTT協(xié)議的桌面客戶端。在使用過(guò)程中不需要自行部署MQTT服務(wù)器,使用以下代理地址和端口號(hào)就能進(jìn)行快速測(cè)試,MQTT代理地址:broker.emqx.io,端口號(hào):1883(TCP);8883(SSL)。

1.2 快速建立連接

打開軟件,點(diǎn)擊左側(cè)菜單欄的?“+”?按鈕。如果頁(yè)面為空,也可直接點(diǎn)擊右側(cè)的?+ New Connection來(lái)快速設(shè)定新的客戶端連接。

在創(chuàng)建連接的頁(yè)面上,需要設(shè)置連接服務(wù)器的相關(guān)信息,用戶只需要填寫Name(連接標(biāo)識(shí)名稱,客戶隨機(jī)設(shè)定即可),Client ID(客戶端ID號(hào),客戶隨機(jī)設(shè)定即可),Host(連接的服務(wù)器地址,因?yàn)椴皇亲越ǚ?wù)器,所以使用公用的broker.emqx.io),Port(服務(wù)器對(duì)應(yīng)的端口號(hào)1883)參數(shù)即可,設(shè)置成功后點(diǎn)擊connect按鈕,若網(wǎng)絡(luò)無(wú)礙則等待連接成功即可。

1.3 消息的訂閱與發(fā)布

連接成功后,點(diǎn)擊New Subscription按鈕,在彈窗的Topic編輯框中填寫客戶需要訂閱的主題名稱,填寫后點(diǎn)擊Confirm確認(rèn),則訂閱成功。

若需要發(fā)布主題,則在下圖中的發(fā)布主題編輯框中填寫用戶的發(fā)布主題名稱,內(nèi)容框中填寫發(fā)布主題的內(nèi)容。

MQTTX軟件的更多使用操作,可以查看其官網(wǎng)進(jìn)行閱讀并學(xué)習(xí)。

2. 硬件準(zhǔn)備

    在標(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ò)接口處。

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

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

因?yàn)锳WFlow的mqtt節(jié)點(diǎn)是客戶端節(jié)點(diǎn),而訪問(wèn)的mqtt代理地址broker.emqx.io是需要流量的,所以需要通過(guò)PC電腦共享網(wǎng)絡(luò)給開發(fā)板上網(wǎng)。配置PC上的以太網(wǎng)的IP與開發(fā)板的IP地址在同一局域網(wǎng)下。

將PC上的WLAN配置為共享給以太網(wǎng)。

在串口調(diào)試助手輸入shell指令ping www.baidu.com,ping成功即開發(fā)板聯(lián)網(wǎng)成功。

? 項(xiàng)目實(shí)施

本項(xiàng)目業(yè)務(wù)主要分為三個(gè)部分:

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

1. 流圖繪制

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

2. 節(jié)點(diǎn)配置

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

在mqtt_config配置節(jié)點(diǎn)中,可以只對(duì)主機(jī)地址,端口以及客戶端id進(jìn)行配置,如下圖,因?yàn)楸玖鲌D所有的mqtt_config節(jié)點(diǎn)配置值都相同,后面不再贅述。

mqtt_in的消費(fèi)者節(jié)點(diǎn)fscript的內(nèi)容是對(duì)訂閱主題的消息進(jìn)行處理并輸出,內(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é)點(diǎn)?,選擇目標(biāo)板對(duì)應(yīng)絲印的ADC通道號(hào)。

作為adc的消費(fèi)者節(jié)點(diǎn),fscript主要目的是對(duì)采集到的adc數(shù)值進(jìn)行處理,因?yàn)楸卷?xiàng)目是數(shù)值過(guò)高報(bào)警,所以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é)點(diǎn),編輯發(fā)布的MQTT主題,以及對(duì)mqtt_config進(jìn)行配置。

雙擊button節(jié)點(diǎn),選擇目標(biāo)板對(duì)應(yīng)按鍵絲印的GPIO編號(hào)。

雙擊button的消費(fèi)者節(jié)點(diǎn)fscript,本節(jié)點(diǎn)的主要內(nèi)容是對(duì)button按鍵輸出的數(shù)值進(jìn)行處理后傳遞給mqtt_out節(jié)點(diǎn),內(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é)點(diǎn),對(duì)發(fā)布主題和mqtt_config進(jìn)行配置。

3. 下載驗(yàn)證

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

MQTTX客戶端發(fā)布zlgtest的主題,可以在核心板上的打印查看發(fā)布主題的消息內(nèi)容如下,也可以根據(jù)客戶端發(fā)布主題的消息對(duì)設(shè)備進(jìn)行控制等操作。

根據(jù)上述實(shí)驗(yàn)可知,將IO設(shè)備接入MQTT后,即可實(shí)現(xiàn)對(duì)設(shè)備的監(jiān)控和控制等能力,為用戶帶來(lái)了更好的使用體驗(yàn)。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ8999I 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP208

ECAD模型

下載ECAD模型
$31.28 查看
RTL8211E-VB-CG 1 Realtek Semiconductor Ethernet Transceiver
$8.5 查看
TJA1043T,118 1 NXP Semiconductors TJA1043 - High-speed CAN transceiver SOIC 14-Pin

ECAD模型

下載ECAD模型
$2.43 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜