劉雋寧,朱 鋒
(國能神東煤炭集團有限責任公司,陜西 榆林 719315)
目前,大數據、物聯網、WiFi等信息化技術迅速發展,傳統模式的有線數據傳輸方式雖然能夠滿足數據傳輸需求,但是成本高、數據采集效率低等因素影響了其具體應用體驗,針對該種情況,雖然一些技術人員嘗試性地以ZigBee無線傳感器網絡來完成數據信息的采集與傳輸,但是其難以直接與Internet集成,且傳輸距離受限。因此,文章提出一種基于網絡協議的無線遠程數據傳輸系統,以此來解決遠程數據傳輸過程中的諸多問題,并保證通信的穩定性。
以網絡協議為基礎的無線遠程數據傳輸系統架構中,硬件架構包括存儲裝置、顯示裝置、數據傳輸裝置、數據采集裝置以及微處理器裝置;控制核心選擇STM32處理器,用于處理各項數據;WiFi裝置用于無線通信,將得到的數據信息傳輸到服務器端;數據檢測裝置選擇溫濕度傳感器,用于采集、提取室內環境各個時間段的監測數據;TFT-LCD顯示屏用于記錄與顯示各個階段的數據信息;以傳輸控制協議/網際協議(Transmission Control Protocol/Internet Protocol,TCP/IP)為基礎,利用Java技術、Socket技術展開網絡通信協議編程,保持通信裝置與上位機的數據通信;而多路測試節點則是將采集、提取的各項數據信息通過WiFi裝置直接傳輸到網絡服務器,接收端借助通信協議來對測試點數據進行發送與獲取[1]。
考慮到處理器的功耗、性能以及成本等因素,選擇STM32F130ZET6芯片當作系統處理器,其容量較大,主頻為72 MHz,內部裝置512 kB閃存與64 kB SRAM,工作溫度為-40~85 ℃,并在內部設置了多個設備接口,應用范圍較廣,另外處理器包括停機、睡眠、待機等模式。
考慮到系統需采集多個區域、多個室內溫度濕度數據,可選擇DHT11溫濕度傳感器,其內部裝置有負溫度系數(Negative Temperature Coefficient,NTC)熱敏電阻測溫元件、感濕元件,可測量0~50 ℃的溫度,電流、電壓分別為0.5 mA、5 V,其在功耗、性能等方面皆達到設計標準要求[2]。
系統設計中以ESP8266裝置來保證WiFi通信穩定,該項裝置自成體系,可借助串行外設接口/安全數字輸入輸出(Serial Peripheral Interface/Secure Digital Input and Output,SPI/SDIO)接口來連接微處理器,并可在-40~125 ℃的條件下工作,包括無線接入點(Access Point,AP)、單線程單元(Single-Threaded Apartment,STA)、STA+AP共3種模式,可靈活展開網絡拓撲[3]。
結合系統標準要求,對硬件展開初始化處理,其后開始設計模塊功能。針對ESP8266無線模塊來說,可借助AT指令集進行各項網絡參數配置,再選擇STA用于TCP客戶端的模式[4]。
TCP/IP協議包括應用層、傳輸層以及Internet層,對應的是應用層協議、TCP/用戶數據協議(User Data Protocol,UDP)傳輸協議、IP協議,其中后兩者為基礎部分,前者則是以后兩者為基礎根據對應項目的具體要求來定制具體的功能。本文研究的系統是以異步通信來完成應用層協議定制,且因上位機IP與測試點會出現變化,故而選擇將兩端設定成TCP客戶端[5]。
其中應用層協議報文段包括數據信息、客戶ID、異步數據與同步數據類型選擇位以及用戶密碼4個部分,具體流程如圖1所示。在接入TCP客戶端后,驗證密碼,開啟TCP連接,后續應用層協議進行數據類型判斷,如果是接收數據,則收集用戶ID,再判定其屬于異步或者是同步數據,若是前者則還需決定是否發送與存儲。若數據長度與原本設定的長度一致,則將數據存儲在其對應客戶ID處以備后續隨時提取;若數據信息為空,則直接發送存儲數據,關閉TCP[6]。

圖1 應用層協議流程
在Java中通過java.net包完成網絡編程,所用的網絡協議是Socket與ServerSocket,其中Socket類用來接收與發送數據,ServerSocket類是通過ServerSocket(int port)構造。服務器端口選擇的是8086,因此可通過以下方式來創建端口:ServerSocketssocket=new ServerSocket(8086)。而 數據接收與發送則需依靠Socket類的getOutputStream與getInputStream[7]。
數據發送語句具體為:

在完成系統硬件部分和軟件部分的設計后,制作樣機完成試驗測試,以此來檢驗系統本身的可靠性與可行性,具體步驟如下文所述。
(1)選擇某地區展開應用測驗,并將監測終端設置在相互距離超過5 km的位置,包括監測點a、監測點b、監測點c共3個監測位置。在通電之后,選擇STA模式,連接Internet,設定TCP客戶端工作模式,直接輸入通信協議地址47.94.164.217,設定目標端口為8086。成功連接后,會在TFT-LCD顯示屏處顯示各個時間段的溫濕度虛假信息,傳輸給網絡服務器。數據長度設定為37,報文段選擇testAM000x格式,其中test指的是設定密碼、AM指的是異步通信、000x指的是各個監測點ID[8]。
(2)監測端連接網絡協議后開啟調試助手,再選用TCP客戶端以及與上述一致的服務器地址;建立好連接后,會有ARM處理器定時朝著服務器端不斷發送數據信息,調試助手在得到各項數據后進行有效的處理;若是調取各個監測點對應的數據信息,則必須發送該測試點ID報文段,得到的數據格式為日期+時間+測試點編號+濕度+溫度[9]。
(3)以2021年3月19日為例,研究在10:00—18:00期間遠程數據傳輸情況,并每間隔15 min通過數據采集裝置采集各個監測點對應的溫度、濕度數據,共33組,再將收集的監測點數據信息與實際溫濕度標準值進行對比分析,以此來檢驗該項數據傳輸系統的準確性,得到的監測點誤差測量情況如表1所示。

表1 監測點誤差測量情況
分析以上誤差數據可知,無線遠程數據傳輸系統在實際測量過程中不會出現較多的誤差,且誤差范圍較低,有著極高的準確率。在進行無線傳輸時不會受到外界因素過多的影響,整個過程運行穩定,且未發生數據丟失等問題,傳輸距離不會受到限制,能夠精確地測量各個監測點的溫濕度,具備較高的可靠性[10]。
文章基于網絡協議的無線遠程數據傳輸系統設計進行了論述與分析,通過Java完成了通信協議編程,以此來解決以往遠程數據傳輸過程中的距離受限以及成本問題,并具有傳輸穩定、效率高等特征,在進行硬件部分和軟件部分設計后通過具體的試驗來驗證了其可行性與有效性,建議給與其足夠的重視,分析其實際應用效果,以此來發揮更大的價值。