在物聯(lián)網(wǎng)快速發(fā)展的今天,無線模組成為連接各種設(shè)備于互聯(lián)網(wǎng)的關(guān)鍵組件。本文旨在介紹如何通過EsDA開發(fā)套件快速使用本公司自研的ZM602無線模組的內(nèi)容。
?項目簡介
無線模組可以使設(shè)備通過無線網(wǎng)絡(luò)連接到互聯(lián)網(wǎng),也可以實現(xiàn)設(shè)備間的數(shù)據(jù)傳輸和通信,在現(xiàn)代社會中,無線模組廣泛應(yīng)用于智能家居、物聯(lián)網(wǎng)設(shè)備、工業(yè)自動化等領(lǐng)域。本文基于EsDA開發(fā)平臺,使用EPC6450-AWI開發(fā)板,以及圖形化設(shè)計工具AWFlowDesigner介紹如何快速上手本公司自研的無線模組ZM602。該項目主要用到了timer,fscript,zm602_data_in_ex,zm602_data_out_ex,adc節(jié)點,具體實現(xiàn)請見下文。
?項目概述
本文主要講解ZM602無線模組的TCP客戶端/服務(wù)器通訊協(xié)議,UDP客戶端/服務(wù)器通訊協(xié)議,可支持最多同時建立四條數(shù)據(jù)傳輸通道,按需快速構(gòu)建穩(wěn)定可靠的無線通信系統(tǒng)。
1、硬件上選擇ZM602模組與EPC6450-AWI開發(fā)板連接通信的串口設(shè)備,并配置相關(guān)的波特率,數(shù)據(jù)位和停止位等串口通信參數(shù)。在EPC6450-AWI上選擇四個普通的GPIO口分別連接ZM602模塊上的RST引腳(復(fù)位模組),ISP引腳(讓模組工作在應(yīng)用模式),STATE引腳(檢測模組是否處于正常工作的狀態(tài)),DEF引腳(恢復(fù)出廠設(shè)置)。
2、選擇網(wǎng)絡(luò)工作模式
- TCP服務(wù)器:配置ZM602模塊的網(wǎng)絡(luò)工作模式為TCP Server,在手機端或電腦端創(chuàng)建兩個TCP客戶端去連接ZM602模塊。ZM602模塊將每路TCP接收到的數(shù)據(jù)按照接收的時間順序依次轉(zhuǎn)發(fā)至EPC6450-AWI串口,且EPC6450-AWI開發(fā)板的數(shù)據(jù)通過ZM602模塊分別發(fā)送至各個TCP客戶端來實現(xiàn)雙向數(shù)據(jù)傳輸。
- TCP客戶端:配置ZM602模塊的網(wǎng)絡(luò)工作模式為TCP Client,在ZM602模塊上創(chuàng)建兩條數(shù)據(jù)傳輸通道分別連接手機端或客戶端上創(chuàng)建的TCP Server。ZM602模塊將每路TCP接收到的數(shù)據(jù)按照接收的時間順序依次轉(zhuǎn)發(fā)至EPC6450-AWI串口,且EPC6450-AWI開發(fā)板的數(shù)據(jù)通過ZM602模塊分別發(fā)送至各個TCP服務(wù)器來實現(xiàn)雙向數(shù)據(jù)傳輸。
- UDP服務(wù)器:配置ZM602模塊的網(wǎng)絡(luò)工作模式為UDP Server,在ZM602模塊上創(chuàng)建一條數(shù)據(jù)傳輸通道連接手機端或客戶端上創(chuàng)建的UDP Client并實現(xiàn)雙向數(shù)據(jù)傳輸。需注意的是通信時要先由客戶端發(fā)送UDP數(shù)據(jù)給模塊,此后ZM602串口端接收到的數(shù)據(jù)就會轉(zhuǎn)發(fā)給UDP客戶端。
- UDP客戶端:配置ZM602模塊的網(wǎng)絡(luò)工作模式為UDP Client,在ZM602模塊上創(chuàng)建一條數(shù)據(jù)傳輸通道連接手機端或客戶端上創(chuàng)建的UDP Server并實現(xiàn)雙向數(shù)據(jù)傳輸。
?前期準(zhǔn)備
讀者若有興趣可以閱讀以下文章對EsDA的其他模塊項目進(jìn)行學(xué)習(xí):
- 【EsDA應(yīng)用】如何5分鐘快速實現(xiàn)指紋采集與檢測
- 【EsDA應(yīng)用】5分鐘快速實現(xiàn)攝像頭圖像采集
- 【EsDA應(yīng)用】10分鐘快速實現(xiàn)人臉識別
- 【EsDA應(yīng)用】5分鐘快速實現(xiàn)圖像人臉檢測
- 【EsDA應(yīng)用】如何基于EsDA開發(fā)套件快速使用射頻讀卡器模塊
用戶可以點擊訪問ZM602資料下載的鏈接,對ZM602模塊進(jìn)行更多的了解。
1. 硬件準(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的RJ45插座處接上網(wǎng)線的水晶頭,網(wǎng)線另一端水晶頭接在PC的網(wǎng)絡(luò)插座上;
- ZM602模塊提供兩個串口通道,本文使用U1串口。在標(biāo)有絲印為UTX5的排針針腳處接上ZM602模塊的 U1_RX 的引腳;在標(biāo)有絲印為URX5的排針針腳處接上ZM602模塊的 U1_TX 的引腳上;
- EPC6450-AWI開發(fā)板需要提供四個普通GPIO。在標(biāo)有絲印為SDA的排針陣腳處接上ZM602模塊的RST引腳;在標(biāo)有絲印為SCL的排針陣腳處接上ZM602模塊的ISP引腳;在標(biāo)有絲印為MISO的排針陣腳處接上ZM602模塊的STA引腳;在標(biāo)有絲印為CLK的排針陣腳處接上ZM602模塊的DEF引腳。
?項目實施1. TCP Server模式
在TCP Server模式下,模塊最多支持 4 個客戶端(Client)同時建立 TCP 連接(可在節(jié)點中配置最大連接數(shù)來限制模塊允許的接入TCP個數(shù))。ZM602模塊將每路TCP接收到的數(shù)據(jù)按照接收的時間順序依次轉(zhuǎn)發(fā)至EPC6450-AWI串口,且EPC6450-AWI開發(fā)板的數(shù)據(jù)通過ZM602模塊分別發(fā)送至各個TCP客戶端來實現(xiàn)雙向數(shù)據(jù)傳輸。
1.1 流圖繪制
添加timer,fscript,zm602_data_out_ex和zm602_data_in_ex到畫布中并連線如下圖。
1.2 節(jié)點配置
雙擊timer節(jié)點,配置周期性的向TCP客戶端發(fā)送數(shù)據(jù)的時間。
雙擊timer的消費者節(jié)點fscript,設(shè)置ZM602模塊TCP Server模式下向TCP客戶端發(fā)送的數(shù)據(jù)內(nèi)容。
output.payload = "hello zlg client"
雙擊zm602_data_out_ex節(jié)點,點擊屬性為數(shù)據(jù)流配置右邊的鉛筆圖標(biāo),創(chuàng)建一個數(shù)據(jù)流通道并配置網(wǎng)絡(luò)工作模式相關(guān)參數(shù)。
在打開的zm602_stream_ex節(jié)點屬性頁面下,配置連接類型為TCP Server,配置本機IP地址為172.16.1.1,本地端口號用戶可自定義配置(遵循端口號分配規(guī)則即可),本項目配置為4000。配置完成之后點擊wifi配置旁邊的鉛筆圖標(biāo)配置通信的串口參數(shù)以及Wi-Fi工作模式。
在打開的zm602_wifi節(jié)點屬性界面中,設(shè)置通信串口的相關(guān)參數(shù);設(shè)置RST(本文硬件上連接的是絲印為SDA的GPIO引腳),ISP(本文硬件上連接的是絲印為SCL的GPIO引腳),STATE(本文硬件上連接的是絲印為MISO的GPIO引腳),DEF(本文硬件上連接的是絲印為CLK的GPIO引腳)引腳編號;在此設(shè)置Wi-Fi工作模式為AP模式(ZM602模塊發(fā)出熱點供客戶端連接)并配置相關(guān)參數(shù)如下圖所示。
雙擊zm602_data_in_ex節(jié)點,在打開的屬性界面中勾選事件通知,并點擊數(shù)據(jù)流配置旁邊的鉛筆圖標(biāo)如下圖所示。zm602_data_in_ex的配置節(jié)點所有的屬性參數(shù)均與zm602_data_out_ex的zm602_stream和zm602_wifi兩個配置節(jié)點屬性參數(shù)一致。在此不再贅述。雙擊zm602_data_in_ex的消費者節(jié)點fscript,本節(jié)點主要是打印客戶端連接的信息等。
print("client: " + msg.peer_addr + " port: " + str(msg.peer_port))print("receive: " + str(msg.payload, true))
1.3 下載驗證
繪制完流圖后,點擊CTRL+S即可保存流圖,點擊下載流圖。
在手機端打開網(wǎng)絡(luò)調(diào)試助手,創(chuàng)建兩個TCP客戶端,配置客戶端連接的主機IP為zm602_stream節(jié)點的屬性本地IP地址的值172.16.1.1,端口號為zm602_stream節(jié)點的屬性本地端口的值4000;配置好TCP客戶端相關(guān)參數(shù)后發(fā)送消息給服務(wù)器,并點擊連接,日志顯示如下。由下圖可知ZM602模塊的TCP服務(wù)器模式可以同時連接兩個TCP客戶端進(jìn)行通信。
2. TCP Client模式
在TCP Client模式下,模塊最多支持向 4 個服務(wù)器(Server)同時建立 TCP 連接(可在流圖中創(chuàng)建多個數(shù)據(jù)流通道,一個數(shù)據(jù)流通道代表一個客戶端)。ZM602模塊將每路TCP接收到的數(shù)據(jù)按照接收的時間順序依次轉(zhuǎn)發(fā)至EPC6450-AWI串口,且EPC6450-AWI開發(fā)板的數(shù)據(jù)通過ZM602模塊分別發(fā)送至各個TCP服務(wù)器來實現(xiàn)雙向數(shù)據(jù)傳輸。
2.1 流圖繪制
添加timer,fscript,zm602_data_out_ex和zm602_data_in_ex到畫布中并連線如下圖。
2.2 節(jié)點配置
雙擊timer節(jié)點,配置周期性的向TCP服務(wù)器發(fā)送數(shù)據(jù)的時間。
雙擊timer的fscript節(jié)點,設(shè)置ZM602模塊TCP Client模式下向TCP服務(wù)器發(fā)送的數(shù)據(jù)內(nèi)容。
output.payload = "hello server,i am client1"
雙擊第一排的zm602_data_out_ex節(jié)點,點擊屬性為數(shù)據(jù)流配置右邊的鉛筆圖標(biāo),創(chuàng)建一個TCP客戶端(一個數(shù)據(jù)流通道)并配置網(wǎng)絡(luò)工作模式相關(guān)參數(shù)。在打開的zm602_stream_ex節(jié)點屬性頁面下,配置連接類型為TCP Client,配置對端IP地址為192.168.43.1(根據(jù)用戶創(chuàng)建的TCP服務(wù)器具體配置),對端端口號也需根據(jù)用戶創(chuàng)建的TCP服務(wù)器具體配置。配置完成之后點擊wifi配置旁邊的鉛筆圖標(biāo)配置通信的串口參數(shù)以及Wi-Fi工作模式。在打開的zm602_wifi節(jié)點屬性界面中,設(shè)置通信串口的相關(guān)參數(shù);設(shè)置RST(本文硬件上連接的是絲印為SDA的GPIO引腳),ISP(本文硬件上連接的是絲印為SCL的GPIO引腳),STATE(本文硬件上連接的是絲印為MISO的GPIO引腳),DEF(本文硬件上連接的是絲印為CLK的GPIO引腳)引腳編號;設(shè)置Wi-Fi工作模式為STA模式(ZM602模組不斷嘗試和設(shè)置的熱點建立連接),目標(biāo)wifi名和目標(biāo)wifi密碼以用戶開設(shè)的移動共享熱點為準(zhǔn),具體配置如下圖所示。
雙擊第二排的zm602_data_in_ex節(jié)點,在打開的屬性界面中勾選事件通知,并點擊數(shù)據(jù)流配置旁邊的鉛筆圖標(biāo)如下圖所示。
第二排的zm602_data_in_ex的配置節(jié)點所有的屬性參數(shù)均與第一排zm602_data_out_ex的zm602_stream和zm602_wifi兩個配置節(jié)點屬性參數(shù)一致。在此不再贅述。雙擊第二排zm602_data_in_ex的消費者節(jié)點fscript,本節(jié)點主要是打印傳輸?shù)男畔⒌取?/p>
print("receive: " + str(msg.payload, true))
雙擊第三排timer節(jié)點,配置周期性的向TCP服務(wù)器發(fā)送數(shù)據(jù)的時間。雙擊第三排timer的fscript節(jié)點,設(shè)置ZM602模塊TCP Client模式下向TCP服務(wù)器發(fā)送的數(shù)據(jù)內(nèi)容。
output.payload = "hello server,i am client1"
雙擊第三排的zm602_data_out_ex節(jié)點,點擊屬性為數(shù)據(jù)流配置右邊的鉛筆圖標(biāo),創(chuàng)建一個客戶端(一個數(shù)據(jù)流通道)并配置網(wǎng)絡(luò)工作模式相關(guān)參數(shù)。在打開的zm602_stream_ex節(jié)點屬性頁面下,配置連接類型為TCP Client,配置對端IP地址為192.168.43.1(根據(jù)用戶創(chuàng)建的TCP服務(wù)器具體配置),對端端口號也需根據(jù)用戶創(chuàng)建的TCP服務(wù)器具體配置。配置完成之后點擊wifi配置旁邊的鉛筆圖標(biāo)配置通信的串口參數(shù)以及Wi-Fi工作模式。
在打開的zm602_wifi節(jié)點屬性界面中,設(shè)置通信串口的相關(guān)參數(shù);設(shè)置RST(本文硬件上連接的是絲印為SDA的GPIO引腳),ISP(本文硬件上連接的是絲印為SCL的GPIO引腳),STATE(本文硬件上連接的是絲印為MISO的GPIO引腳),DEF(本文硬件上連接的是絲印為CLK的GPIO引腳)引腳編號;設(shè)置Wi-Fi工作模式為STA模式(ZM602模組不斷的去嘗試和設(shè)置的熱點建立連接),目標(biāo)wifi名和目標(biāo)wifi密碼以用戶開設(shè)的移動共享熱點為準(zhǔn),具體配置如下圖所示。雙擊第四排的zm602_data_in_ex節(jié)點,在打開的屬性界面中勾選事件通知,并點擊數(shù)據(jù)流配置旁邊的鉛筆圖標(biāo)如下圖所示。第四排的zm602_data_in_ex的配置節(jié)點所有的屬性參數(shù)均與第三排zm602_data_out_ex的zm602_stream和zm602_wifi兩個配置節(jié)點屬性參數(shù)一致。在此不再贅述。雙擊第四排zm602_data_in_ex的消費者節(jié)點fscript,本節(jié)點主要是打印傳輸?shù)男畔⒌取?/p>
print("receive: " + str(msg.payload, true)
2.3 下載驗證
繪制完流圖后,點擊CTRL+S即可保存流圖,點擊下載流圖。
本項目是由手機共享移動網(wǎng)絡(luò)給ZM602模塊,配置如下圖所示。
在手機端打開網(wǎng)絡(luò)調(diào)試助手,創(chuàng)建兩個TCP服務(wù)器,配置兩個不同的服務(wù)器端口號;配置好TCP服務(wù)器相關(guān)參數(shù)后發(fā)送消息給客戶端,并點擊連接,日志顯示如下。由下圖可知ZM602模塊的TCP客戶端模式可以同時連接兩個TCP服務(wù)器進(jìn)行通信。
3. UDP Server模式
配置ZM602模塊的網(wǎng)絡(luò)工作模式為UDP Server,本模式不需要設(shè)置目標(biāo)地址,所以可以應(yīng)用在目標(biāo)地址不確定的場合,通信時需要由客戶端(目標(biāo)地址)首先發(fā)送UDP數(shù)據(jù)給模組,然后模組自動記錄此客戶端的 IP 地址和端口,此后,串口接收到的數(shù)據(jù)將會轉(zhuǎn)發(fā)到此客戶端。
3.1 流圖繪制
添加timer,fscript,zm602_data_out_ex和zm602_data_in_ex到畫布中并連線如下圖。
3.2 節(jié)點配置
雙擊timer節(jié)點,配置周期性的向UDP客戶端發(fā)送數(shù)據(jù)的時間。
雙擊timer的fscript節(jié)點,設(shè)置ZM602模塊UDP Server模式下向UDP客戶端發(fā)送的數(shù)據(jù)內(nèi)容。
output.payload = "i am udp server"
雙擊zm602_data_out_ex節(jié)點,點擊屬性為數(shù)據(jù)流配置右邊的鉛筆圖標(biāo),創(chuàng)建一個數(shù)據(jù)流通道并配置網(wǎng)絡(luò)工作模式相關(guān)參數(shù)。在打開的zm602_stream_ex節(jié)點屬性頁面下,配置連接類型為UDP Server,配置本機IP地址為172.16.1.1,本地端口號用戶可自定義配置(遵循端口號分配規(guī)則即可),本項目配置為6666。配置完成之后點擊wifi配置旁邊的鉛筆圖標(biāo)配置通信的串口參數(shù)以及Wi-Fi工作模式。在打開的zm602_wifi節(jié)點屬性界面中,設(shè)置通信串口的相關(guān)參數(shù);設(shè)置RST(本文硬件上連接的是絲印為SDA的GPIO引腳),ISP(本文硬件上連接的是絲印為SCL的GPIO引腳),STATE(本文硬件上連接的是絲印為MISO的GPIO引腳),DEF(本文硬件上連接的是絲印為CLK的GPIO引腳)引腳編號;設(shè)置Wi-Fi工作模式為AP模式(ZM602模組發(fā)出熱點供客戶端連接)具體配置如下圖所示。雙擊zm602_data_in_ex節(jié)點,在打開的屬性界面中勾選事件通知,并點擊數(shù)據(jù)流配置旁邊的鉛筆圖標(biāo)如下圖所示。zm602_data_in_ex的配置節(jié)點所有的屬性參數(shù)均與zm602_data_out_ex的zm602_stream和zm602_wifi兩個配置節(jié)點屬性參數(shù)一致。在此不再贅述。雙擊zm602_data_in_ex的消費者節(jié)點fscript,本節(jié)點主要是打印客戶端連接的信息等。
print("client: " + msg.peer_addr + " port: " + str(msg.peer_port))print("receive: " + str(msg.payload, true))
3.3 下載驗證
繪制完流圖后,點擊CTRL+S即可保存流圖,點擊下載流圖。
在手機端打開網(wǎng)絡(luò)調(diào)試助手,創(chuàng)建一個UDP客戶端,配置客戶端連接的主機IP為zm602_stream節(jié)點的屬性本地IP地址的值172.16.1.1,端口號為zm602_stream節(jié)點的屬性本地端口的值6666;配置好UDP客戶端相關(guān)參數(shù)后發(fā)送消息給服務(wù)器,并點擊連接,日志顯示如下。由下圖可知實現(xiàn)了ZM602模塊UDP服務(wù)器模式和UDP客戶端的正常通信功能。
4. UDP Client模式
配置ZM602模塊的網(wǎng)絡(luò)工作模式為UDP Client,本項目將EPC6450-AWI開發(fā)板上采集到的ADC電壓值上傳到UDP服務(wù)器,實現(xiàn)數(shù)據(jù)采集的遠(yuǎn)程訪問等操作。
4.1 流圖繪制
添加adc,fscript,zm602_data_out_ex和zm602_data_in_ex到畫布中并連線如下圖。
4.4.2、節(jié)點配置
雙擊adc節(jié)點,選擇需要采集的ADC通道號。
雙擊timer的fscript節(jié)點,設(shè)置ZM602模塊UDP Client模式下向UDP服務(wù)器發(fā)送的數(shù)據(jù)內(nèi)容。
output.payload = "adc channel voltage value is"+msg.payload+" mv"
雙擊zm602_data_out_ex節(jié)點,點擊屬性為數(shù)據(jù)流配置右邊的鉛筆圖標(biāo),創(chuàng)建一個數(shù)據(jù)流通道并配置網(wǎng)絡(luò)工作模式相關(guān)參數(shù)。在打開的zm602_stream_ex節(jié)點屬性頁面下,配置連接類型為UDP Client,配置對端IP地址為192.168.43.1(根據(jù)用戶創(chuàng)建的UDP服務(wù)器具體配置),對端端口號也需根據(jù)用戶創(chuàng)建的UDP服務(wù)器具體配置。配置完成之后點擊wifi配置旁邊的鉛筆圖標(biāo)配置通信的串口參數(shù)以及Wi-Fi工作模式。在打開的zm602_wifi節(jié)點屬性界面中,設(shè)置通信串口的相關(guān)參數(shù);設(shè)置RST(本文硬件上連接的是絲印為SDA的GPIO引腳),ISP(本文硬件上連接的是絲印為SCL的GPIO引腳),STATE(本文硬件上連接的是絲印為MISO的GPIO引腳),DEF(本文硬件上連接的是絲印為CLK的GPIO引腳)引腳編號;設(shè)置Wi-Fi工作模式為STA模式(ZM602模組不斷嘗試和設(shè)置的熱點建立連接)具體配置如下圖所示。雙擊zm602_data_in_ex節(jié)點,在打開的屬性界面中勾選事件通知,并點擊數(shù)據(jù)流配置旁邊的鉛筆圖標(biāo)如下圖所示。zm602_data_in_ex的配置節(jié)點所有的屬性參數(shù)均與zm602_data_out_ex的zm602_stream和zm602_wifi兩個配置節(jié)點屬性參數(shù)一致。在此不再贅述。雙擊zm602_data_in_ex的消費者節(jié)點fscript,本節(jié)點主要是打印傳輸?shù)男畔⒌取?/p>
print("receive: " + str(msg.payload, true))
4.3 下載驗證
繪制完流圖后,點擊CTRL+S即可保存流圖,點擊下載流圖。
在手機端打開網(wǎng)絡(luò)調(diào)試助手,創(chuàng)建一個UDP服務(wù)器,配置服務(wù)器端口號如下圖所示;配置好UDP服務(wù)器相關(guān)參數(shù)后發(fā)送消息給客戶端,并點擊連接,日志顯示如下。由下圖可知EPC6450-AWI開發(fā)板采集到的ADC電壓值經(jīng)由ZM602模塊的UDP客戶端模式,上傳至UDP服務(wù)器實現(xiàn)了數(shù)據(jù)采集的遠(yuǎn)程訪問。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2913文章
44923瀏覽量
377014 -
ESDA
+關(guān)注
關(guān)注
0文章
28瀏覽量
7530 -
無線模組
+關(guān)注
關(guān)注
1文章
119瀏覽量
15591
發(fā)布評論請先 登錄
相關(guān)推薦
評論