如何讓自動(dòng)化領(lǐng)域的串口設(shè)備具備聯(lián)網(wǎng)能力?本文將基于EsDA平臺,帶你開發(fā)一個(gè)串口轉(zhuǎn)UDP服務(wù)器業(yè)務(wù),快速實(shí)現(xiàn)串口聯(lián)網(wǎng)功能。 ?簡介串口服務(wù)器在物聯(lián)網(wǎng)中的應(yīng)用十分廣泛,數(shù)據(jù)采集上報(bào)、遠(yuǎn)程控制等網(wǎng)絡(luò)化項(xiàng)目都需要用到串口服務(wù)器,本文基于EsDA開發(fā)平臺,為您介紹如何快速搭建一個(gè)串口轉(zhuǎn)UDP服務(wù)器。
基本工作原理:通過搭建UDP客戶端,實(shí)現(xiàn)串口與UDP服務(wù)器的雙向透傳通信。
本實(shí)現(xiàn)選用MPC-ZC1開發(fā)板,該板卡內(nèi)嵌高集成度的4G Cat.1 ZC1智能網(wǎng)聯(lián)模塊,便于建立UDP客戶端;擁有多路串口外設(shè)(232,485,TTL等),串口資源豐富。該實(shí)驗(yàn)用到了serial_in_ex,fscript,push,tcpudp_client和serial_out_ex節(jié)點(diǎn)。
?前期準(zhǔn)備
若是剛開始接觸EsDA MPC-ZC1 ,可先閱讀EsDA MPC-ZC1系列文章,從零開始搭建環(huán)境和掌握基本開發(fā)流程,已有基礎(chǔ)的可以跳過:
EsDAMPC-ZC1入門(一)——軟件安裝
【EsDA應(yīng)用】如何使用5分鐘搭建一個(gè)串口通信業(yè)務(wù)
EsDAMPC-ZC1 應(yīng)用——串口服務(wù)器(一)
EsDAMPC-ZC1應(yīng)用——串口服務(wù)器(二)
【EsDA應(yīng)用】串口轉(zhuǎn)zws物聯(lián)網(wǎng)云平臺
硬件相關(guān)準(zhǔn)備工作:
1. 準(zhǔn)備一個(gè)USB轉(zhuǎn)TTL串口工具(文中使用的是ch340芯片作為主控一款工具,選用其它等效型號亦可),如下圖所示:
2. 準(zhǔn)備好MPC-ZC1開發(fā)板,并按照下圖所示連接好硬件。
將MPC-ZC1開發(fā)板引出的TX2與RX2分別與USB轉(zhuǎn)TTL串口工具的RX與TX連接,并將USB轉(zhuǎn)TTL串口工具插到PC機(jī)USB口上。 ?業(yè)務(wù)處理
支持串口和UDP進(jìn)行雙向數(shù)據(jù)傳輸:本實(shí)驗(yàn)實(shí)現(xiàn)串口通過UDP客戶端向UDP服務(wù)器透傳數(shù)據(jù),UDP服務(wù)器接收到數(shù)據(jù)后回發(fā)給UDP客戶端再轉(zhuǎn)發(fā)給串口助手的業(yè)務(wù),實(shí)現(xiàn)串口數(shù)據(jù)的云端通信功能。業(yè)務(wù)邏輯圖如下所示。
1. 添加節(jié)點(diǎn)并連線
本實(shí)驗(yàn)實(shí)現(xiàn)串口通過UDP客戶端向UDP服務(wù)器透傳數(shù)據(jù),UDP服務(wù)器接收到數(shù)據(jù)后回發(fā)通過UDP客戶端透傳到串口設(shè)備。采用的節(jié)點(diǎn)有serial_in_ex,fscript,push,tcpudp_client和serial_out_ex。
2.配置節(jié)點(diǎn)
雙擊serial_in_ex節(jié)點(diǎn),并點(diǎn)擊配置節(jié)點(diǎn)名旁邊的鉛筆圖標(biāo)去配置串口的屬性。
根據(jù)MPC-ZC1的硬件資料表,選擇所使用的串口設(shè)備對應(yīng)的端口號,根據(jù)需要依次配置波特率,字節(jié)大小,奇偶校驗(yàn),停止位等屬性參數(shù)。
雙擊serial_in_ex的消費(fèi)者節(jié)點(diǎn)fscript,將從串口接收到的數(shù)據(jù)打印并傳遞給tcpudp_client節(jié)點(diǎn)。
因?yàn)閠cpudp_client節(jié)點(diǎn)是pump類型的節(jié)點(diǎn)無輸入,在這里通過push節(jié)點(diǎn),將udp客戶端定時(shí)發(fā)送的數(shù)據(jù)作為tcpudp_client節(jié)點(diǎn)的輸入?yún)?shù)payload進(jìn)行傳遞。雙擊push節(jié)點(diǎn),在目標(biāo)節(jié)點(diǎn)這一欄屬性參數(shù)中輸入tcpudp_client。
雙擊tcpudp_client節(jié)點(diǎn),因?yàn)槭褂玫氖荱DP傳輸協(xié)議,且這里的主機(jī)號和端口號是UDP測試服務(wù)器的網(wǎng)址和端口號。配置相應(yīng)的屬性參數(shù)如下:
雙擊tcpudp_client的消費(fèi)者節(jié)點(diǎn)fscript,讀取從服務(wù)器發(fā)送過來的數(shù)據(jù)通過組包,再傳遞給后續(xù)的串口節(jié)點(diǎn)。
varstr=istream_read_string(msg.istream,100)
output.payload=join(":","datareceivedfromtheserveris",str)output.payloadLength=len(output.payload)
雙擊serial_out_ex節(jié)點(diǎn),并點(diǎn)擊配置節(jié)點(diǎn)名旁邊的鉛筆圖標(biāo)去配置串口的屬性。
與serial_in_ex節(jié)點(diǎn)一樣,根據(jù)MPC-ZC1的硬件資料表,選擇所使用的串口設(shè)備對應(yīng)的端口號,根據(jù)需要依次配置波特率,字節(jié)大小,奇偶校驗(yàn),停止位等屬性參數(shù)。這里因?yàn)槭亲园l(fā)自收,所以串口設(shè)備的端口號與serial_in_ex一致。
3. 下載驗(yàn)證
保證硬件連接正確后,下載流圖可知:將串口助手的數(shù)據(jù)通過搭建的UDP客戶端發(fā)送給UDP測試服務(wù)器的數(shù)據(jù),最終原樣回發(fā)給UDP客戶端,這邊通過查看流圖可知有一個(gè)組包的操作再發(fā)送給串口助手,由下圖測試結(jié)果圖可知在此搭建的串口服務(wù)器已發(fā)揮了他的作用,讓串口數(shù)據(jù)可以通過網(wǎng)絡(luò)傳輸。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
8700瀏覽量
84534 -
串口
+關(guān)注
關(guān)注
14文章
1533瀏覽量
75454 -
ESDA
+關(guān)注
關(guān)注
0文章
28瀏覽量
7487
發(fā)布評論請先 登錄
相關(guān)推薦
評論