《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于STM32和SIM900A的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計(jì)
基于STM32和SIM900A的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計(jì)
2016年微型機(jī)與應(yīng)用第24期
李馳1,段智敏1,,叢培田1,,張旗2
1.沈陽理工大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽 110159,;2.國網(wǎng)遼寧省電力有限公司營口供電公司,,遼寧 營口 115000
摘要: 針對(duì)工業(yè)上監(jiān)測現(xiàn)場數(shù)據(jù)采集的遠(yuǎn)程網(wǎng)絡(luò)傳輸需求,提出了一種基于STM32F103微控制器和SIM900A通信模塊的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測系統(tǒng),。STM32下位機(jī)可以完成各傳感器的周期性數(shù)據(jù)采集,,并利用SIM900A模塊實(shí)現(xiàn)其與遠(yuǎn)程上位機(jī)在GPRS網(wǎng)絡(luò)上的不依賴監(jiān)測現(xiàn)場網(wǎng)絡(luò)環(huán)境的TCP數(shù)據(jù)通信。系統(tǒng)可以實(shí)現(xiàn)不間斷對(duì)多個(gè)監(jiān)測點(diǎn)的多個(gè)監(jiān)測對(duì)象同時(shí)進(jìn)行數(shù)據(jù)采集和遠(yuǎn)程數(shù)據(jù)傳輸?,F(xiàn)場實(shí)驗(yàn)表明,,該監(jiān)測系統(tǒng)穩(wěn)定性高、實(shí)時(shí)性強(qiáng),、測量誤差小,、功耗低,可以滿足工業(yè)上的設(shè)計(jì)要求,。
關(guān)鍵詞: 數(shù)據(jù)采集 TCP GPRS STM32
Abstract:
Key words :

  李馳1,,段智敏1,叢培田1,,張旗2

 ?。?.沈陽理工大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽 110159,;2.國網(wǎng)遼寧省電力有限公司營口供電公司,,遼寧 營口 115000)

       摘要:針對(duì)工業(yè)上監(jiān)測現(xiàn)場數(shù)據(jù)采集的遠(yuǎn)程網(wǎng)絡(luò)傳輸需求,提出了一種基于STM32F103微控制器和SIM900A通信模塊的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測系統(tǒng),。STM32下位機(jī)可以完成各傳感器的周期性數(shù)據(jù)采集,,并利用SIM900A模塊實(shí)現(xiàn)其與遠(yuǎn)程上位機(jī)在GPRS網(wǎng)絡(luò)上的不依賴監(jiān)測現(xiàn)場網(wǎng)絡(luò)環(huán)境的TCP數(shù)據(jù)通信。系統(tǒng)可以實(shí)現(xiàn)不間斷對(duì)多個(gè)監(jiān)測點(diǎn)的多個(gè)監(jiān)測對(duì)象同時(shí)進(jìn)行數(shù)據(jù)采集和遠(yuǎn)程數(shù)據(jù)傳輸?,F(xiàn)場實(shí)驗(yàn)表明,,該監(jiān)測系統(tǒng)穩(wěn)定性高、實(shí)時(shí)性強(qiáng),、測量誤差小,、功耗低,可以滿足工業(yè)上的設(shè)計(jì)要求,。

  關(guān)鍵詞:數(shù)據(jù)采集,;TCP;GPRS ,;STM32,;SIM900A

  中圖分類號(hào):TP27文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2016.24.030

  引用格式:李馳,段智敏,,叢培田,等. 基于STM32和SIM900A的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,,2016,35(24):105-108.

0引言

  在工業(yè)中,數(shù)據(jù)的采集一直是生產(chǎn)過程中非常重要的環(huán)節(jié),,無論是機(jī)械的正常運(yùn)轉(zhuǎn)還是作業(yè)環(huán)境的保持,,都離不開準(zhǔn)確高效的數(shù)據(jù)采集技術(shù)。

  基于嵌入式結(jié)構(gòu)設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)一般采用RS232,、RS485等串口的方式與上位機(jī)進(jìn)行數(shù)據(jù)通信,雖然非??煽浚芫€纜限制,,上位機(jī)必須保持在一定的距離內(nèi),。而在某些高溫,、強(qiáng)腐蝕性環(huán)境下,線纜的布置比較困難,,也容易損壞[1],。

  隨著科技的進(jìn)步,移動(dòng)通信技術(shù)迅猛發(fā)展,,現(xiàn)在已經(jīng)具有了非常高的穩(wěn)定性,這也使移動(dòng)通信技術(shù)在工業(yè)中應(yīng)用成為可能,。利用現(xiàn)有的GPRS網(wǎng)絡(luò),發(fā)揮其網(wǎng)絡(luò)覆蓋率高,、傳輸特性好的優(yōu)點(diǎn),,為原有的數(shù)據(jù)采集系統(tǒng)提供了一種方便的無線傳輸功能。移動(dòng)通信技術(shù)具有布置靈活和可獨(dú)立聯(lián)網(wǎng)的優(yōu)點(diǎn)[2],。

1總體設(shè)計(jì)

  本文所設(shè)計(jì)的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測系統(tǒng)由下位機(jī)與上位機(jī)組成,,下位機(jī)利用通信模塊與GPRS網(wǎng)絡(luò)直接連接,實(shí)現(xiàn)了基于TCP的不依賴現(xiàn)場網(wǎng)絡(luò)環(huán)境的可靠網(wǎng)絡(luò)數(shù)據(jù)傳輸,。其不僅可以在上位機(jī)上單獨(dú)查看各個(gè)終端上傳的數(shù)據(jù),,還可以對(duì)多個(gè)終端的數(shù)據(jù)進(jìn)行交叉分析,大大提高了采集效率和數(shù)據(jù)的利用率,。

  其中,,下位機(jī)可大體分為STM32微控制器、SIM900A通信模塊和多傳感器三部分,。整套設(shè)備的成本非常低廉,,STM32微控制器與SIM900A通信模塊組成的核心部件僅需幾十元錢,用戶可根據(jù)需求選擇理想的傳感器模塊,。上位機(jī)程序采用基于C++語言的Qt設(shè)計(jì),,下位機(jī)與上位機(jī)之間通過TCP協(xié)議傳輸網(wǎng)絡(luò)數(shù)據(jù),每臺(tái)上位機(jī)均可以接收多個(gè)終端的傳感器上傳的數(shù)據(jù),。系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示,。

 

001.jpg

2硬件設(shè)計(jì)

  網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測系統(tǒng)可以完成幾乎所有種類的數(shù)據(jù)采集。因篇幅有限,,本文以溫度數(shù)據(jù)采集為例介紹整個(gè)系統(tǒng)的框架結(jié)構(gòu)以及具體實(shí)現(xiàn)方法,。 其他種類的數(shù)據(jù)采集,設(shè)計(jì)邏輯與溫度數(shù)據(jù)采集基本相同,,只需在下位機(jī)主程序循環(huán)中加入相應(yīng)傳感器的采集子程序和數(shù)據(jù)發(fā)送流程即可,。

  遠(yuǎn)程設(shè)備被安裝在監(jiān)測現(xiàn)場上,其通過各種傳感器采集數(shù)據(jù),,經(jīng)STM32微控制器處理發(fā)送至SIM900A通信模塊,,通信模塊會(huì)通過端口將TCP數(shù)據(jù)從GPRS網(wǎng)絡(luò)發(fā)送給上位機(jī)。上位機(jī)根據(jù)設(shè)備號(hào)的不同區(qū)別各個(gè)下位機(jī)。該系統(tǒng)的硬件電路圖如圖2所示,。

002.jpg

  2.1STM32F103ZET6微控制器

  STM32F103ZET6增強(qiáng)型微控制器使用高性能的ARM CortexTM-M3 32位的RISC內(nèi)核,,工作頻率為72 MHz,其具有112個(gè)GPIO接口,,多種復(fù)用功能,,具有非常高的可開發(fā)性[3]。

  它的綜合性能高,,運(yùn)行穩(wěn)定,價(jià)格便宜,,在工業(yè)應(yīng)用中廣為使用,,是很多工程項(xiàng)目的理想解決方案[4]。

  2.2SIM900A通信模塊

  無線通信模塊采用SIM900A芯片實(shí)現(xiàn),,主要負(fù)責(zé)實(shí)現(xiàn)與遠(yuǎn)程終端的數(shù)據(jù)傳輸功能,。SIM900A模塊是一款尺寸緊湊、內(nèi)置TCP/IP協(xié)議棧的GSM/GPRS模塊[5],。

  2.3DS18B20溫度傳感器

  DS18B20是美信公司的一款溫度傳感器,,單片機(jī)可以通過1Wire協(xié)議與DS18B20進(jìn)行通信[6]。

3軟件設(shè)計(jì)

  本文所設(shè)計(jì)的系統(tǒng)由下位機(jī)程序與上位機(jī)程序兩部分組成,。其中下位機(jī)STM32程序負(fù)責(zé)數(shù)據(jù)采集以及定時(shí)將各種數(shù)據(jù)以TCP協(xié)議經(jīng)由SIM900A模塊發(fā)送給上位機(jī),。而上位機(jī)程序負(fù)責(zé)監(jiān)聽各端口TCP通信,處理由端口傳入的TCP數(shù)據(jù),。

  3.1下位機(jī)程序設(shè)計(jì)

  下位機(jī)程序由主程序,、發(fā)送TCP數(shù)據(jù)子程序和測量溫度子程序三部分組成,均通過C語言進(jìn)行設(shè)計(jì),。三個(gè)模塊合作完成數(shù)據(jù)采集和上傳工作,。

  3.1.1主程序

  STM32主程序負(fù)責(zé)初始化各寄存器以及周期性地調(diào)用各功能子程序以采集數(shù)據(jù)并將采集到的數(shù)據(jù)通過GPRS網(wǎng)絡(luò)發(fā)送給各上位機(jī)。這里需要注意的是,,圖3主程序流程圖STM32微控制器的GPIO口和復(fù)用功能均有獨(dú)立的時(shí)鐘,,使用前必須進(jìn)行初始化,否則各外設(shè)無法正常工作,。SysTick時(shí)鐘用來產(chǎn)生心跳中斷,,實(shí)現(xiàn)延時(shí)功能。其系統(tǒng)流程圖如圖3所示,。

003.jpg

  3.1.2 發(fā)送TCP數(shù)據(jù)子程序

  SIM900A通信模塊采用串行接口與STM32進(jìn)行通信,。STM32應(yīng)用AT指令與SIM900A通信[7]。本文主要應(yīng)用SIM900A的TCP通信功能,,涉及關(guān)于TCP協(xié)議的主要指令如表1所示,。

006.jpg

  跟據(jù)AT指令以及相應(yīng)的指令格式,數(shù)據(jù)發(fā)送子程序的流程如圖4所示 

004.jpg

  3.1.3測量溫度傳感器子程序

  DS18B20溫度傳感器采用1Wire協(xié)議與STM32微控制器進(jìn)行通信,它只有一個(gè)DQ引腳負(fù)責(zé)傳遞數(shù)據(jù),,具有非常復(fù)雜的軟件時(shí)序,。其程序流程圖如圖5所示。

 

005.jpg

  3.2上位機(jī)程序設(shè)計(jì)

  本文所設(shè)計(jì)的上位機(jī)系統(tǒng)采用Qt設(shè)計(jì),,它是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架,。它為應(yīng)用程序開發(fā)者提供建立藝術(shù)級(jí)圖形用戶界面所需的所有功能。它是完全面向?qū)ο蟮?,很容易擴(kuò)展,,并且允許真正的組件編程[8]。只需要編寫一次應(yīng)用程序,,就可以在不同操作系統(tǒng)上部署這些程序,。

  Qt通過信號(hào)和槽的機(jī)制來完成兩個(gè)Qt對(duì)象之間的通信。信號(hào)會(huì)在某個(gè)時(shí)機(jī)觸發(fā),,而槽就是響應(yīng)和處理信號(hào)的對(duì)應(yīng)函數(shù)[9],。

  3.2.1 ReceivedData類

  上位機(jī)程序的核心是ReceivedData類,它是一個(gè)繼承自QWidget類的自定義類,。每個(gè)ReceivedData類對(duì)象對(duì)應(yīng)一個(gè)端口,,負(fù)責(zé)接收和處理不同下位機(jī)傳輸?shù)腡CP數(shù)據(jù)并完成數(shù)據(jù)在圖表上的顯示工作。

  ReceivedData類中主要包含一個(gè)QCustomPlot類對(duì)象,、一個(gè)QTcpServer類對(duì)象和一個(gè)QTcpSocket類對(duì)象,。QCustomPlot類是一個(gè)體積小巧但功能很強(qiáng)的Qt繪圖類,它提供給程序一個(gè)繪制圖表的窗口,,使用者可以通過對(duì)參數(shù)的設(shè)置在一個(gè)窗口內(nèi)很容易地實(shí)現(xiàn)多條曲線繪制,、鼠標(biāo)拖曳滾輪縮放圖像等功能。而QTcpServer類和QTcpSocket類對(duì)象的組合可以完成指定端口的TCP數(shù)據(jù)接收,。ReceivedData類的主要構(gòu)成如表2所示,。

007.jpg

  3.2.2TCP協(xié)議通信處理流程

  Qt通過套接字完成TCP數(shù)據(jù)的傳輸,在接收到連接請(qǐng)求后TCP服務(wù)器會(huì)把新的連接綁定到套接字上,。作為TCP服務(wù)器的上位機(jī)與作為TCP客戶端的下位機(jī)交互流程圖如圖6所示,。

  

008.jpg

  4實(shí)驗(yàn)結(jié)果

  分別在兩個(gè)地點(diǎn)布置下位機(jī)系統(tǒng),連接各傳感器后開啟下位機(jī)電源,,上位機(jī)開始從指定端口接收到TCP數(shù)據(jù),。經(jīng)過一段時(shí)間的監(jiān)測,從遠(yuǎn)程的上位機(jī)處得到了監(jiān)測數(shù)據(jù)的曲線,。

  圖7展示了上位機(jī)遠(yuǎn)程監(jiān)測兩臺(tái)下位機(jī)數(shù)據(jù)的運(yùn)行效果,,從當(dāng)前圖中可以清楚地看出兩個(gè)監(jiān)測地點(diǎn)的溫度隨時(shí)間的變化情況,通過組合框可以切換監(jiān)測源的監(jiān)測對(duì)象,。上位機(jī)界面中包括兩路通道,,分別接收兩個(gè)下位機(jī)上傳的數(shù)據(jù),多路數(shù)據(jù)監(jiān)測界面的設(shè)計(jì)原理與其相同,只需按要求實(shí)例ReceivedData類對(duì)象就可以完成指定數(shù)量下位機(jī)的數(shù)據(jù)監(jiān)測,。

  

009.jpg

5結(jié)論

  本文所設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)是一種非常適合復(fù)雜現(xiàn)場環(huán)境和臨時(shí)測量的解決方案,。這種測量終端與上位機(jī)沒有距離限制并且節(jié)省了大量的人力物力,只要雙方可以連接互聯(lián)網(wǎng)就可以完成數(shù)據(jù)傳輸,。在物聯(lián)網(wǎng)技術(shù)迅猛發(fā)展的今天,,這種結(jié)合了GPRS網(wǎng)絡(luò)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)非常具有實(shí)用價(jià)值。

參考文獻(xiàn)

 ?。?] 王志義,,苗亞春.有線傳輸技術(shù)特點(diǎn)分析和發(fā)展方向[J].電子工程技術(shù)與軟件工程,2013(17):193193

 ?。?] 李陽輝.基于STM32和GSM的溫度遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀器儀表,,2015(1):5659.

  [3] 盧有亮.基于STM32的嵌入式系統(tǒng)原理與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,,2014.

 ?。?] YIU J. ARM CortexM3與CortexM4權(quán)威指南[M].吳常玉,,曹孟娟,,王麗紅,譯.北京:清華大學(xué)出版社,,2015.

 ?。?] 甘志偉,閆凱.基于SIM900A的無線數(shù)據(jù)采集卡設(shè)計(jì)與實(shí)現(xiàn)[J].山西電子技術(shù),,2013(1):5558.

 ?。?] 宋雪松,李冬明,,崔長勝.手把手教你學(xué)51單片機(jī):C語言版[M].北京:清華大學(xué)出版社,,2014.

  [7] 鄭優(yōu)訊,,李宗伯.基于STM32微處理器的GPRS數(shù)據(jù)傳輸技術(shù)的研究[J].微型機(jī)與應(yīng)用,,2012,31(21):6164.

 ?。?] 陸文周.Qt5開發(fā)及實(shí)例(第2版)[M].北京:電子工業(yè)出版社,,2015.

  [9] 金大臣爾.Qt5開發(fā)實(shí)戰(zhàn)[M].張紅艷,,譯.北京:人民郵電出版社,,2015.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。