賈建科
摘 要: 為實現河流水位信息的實時遠程監(jiān)控,提出基于GPRS和Internet的河流水情實時遠程監(jiān)測系統解決方案。以STC12C5A60S2單片機作為系統控制中心,控制水位傳感器進行河流水位信息的采集和處理,并控制GPRS通信模塊進行數據傳輸。選用LC?SW1型水位傳感器測量水位,使用SIM900A無線通信模塊作為GPRS通信模塊。監(jiān)控通信網絡通過具有公網IP的服務器建立,網絡連接方式為TCP,將遠程監(jiān)測端的數據和監(jiān)控端連接。該系統具有成本低和監(jiān)控范圍廣的優(yōu)點,能夠滿足應用的要求。關鍵詞: 水情監(jiān)控; GPRS網絡; 網絡通信; SIM900A中圖分類號: TN967?34; TP277 文獻標識碼: A 文章編號: 1004?373X(2016)06?0132?04Research on river water regimen real?time remote monitoring system based on GPRS and InternetJIA Jianke(School of Physics and Telecommunication Engineering, Shaanxi University of Technology, Hanzhong 723003, China)Abstract: To realize the real?time remote monitoring of river water?level information, a solution of river water regimen real?time remote monitoring system based on GPRS and Internet is proposed. The microcontroller STC12C5A60S2 is taken as the system control center to control the water?level sensor for rivers water?level information acquisition and processing, and control the GPRS transmission module for data transmission. The LC?SW1 water?level sensor is selected to measure the water?level, and SIM900A wireless communication module as GPRS communication module. The monitoring communication network is established with the server owning public network IP, and its connection mode is TCP to connect the data from remote monitoring side to the monitoring side. This system has the advantages of low cost and wide monitoring range, and can satisfy the application requirements.Keywords: water regimen monitoring; GPRS network; network communication; SIM900A
0 引 言
我國河流多,河流水位變化大,尤其在汛期,河流水位在暴雨和山洪的影響下迅速上漲,給人民的生產生活帶來不可估量的損失。目前國內許多河流水情的監(jiān)測主要依靠水文站觀測人員進行觀察、逐級匯報的方式,該方式不僅需要大量的人力,而且很難做到及時、準確地了解河流水情狀態(tài)。特別是在遇到暴雨或特大暴雨時,觀測人員很難進入觀測地點,各種數據的采集與傳遞都無從談起,勢必引發(fā)災難性的后果。因此,加強對河流水情的實時遠程監(jiān)測就顯得極其重要。雖然現階段國內一些公司企業(yè)設計了水情監(jiān)測系統,但購買成本高,運行費用也高。GPRS(通用分組無線業(yè)務)無線通信網絡已經遍布世界各地,覆蓋范圍及其廣泛,可靠性高,且收費相對低廉,數據傳輸速率最大可達到171.2 Kb/s,同時GPRS網絡能接入Internet網絡,實現數據的大范圍遠程實時監(jiān)控[1?2]。
基于此針對當前河流監(jiān)測系統的不足,提出一種經濟小型化的河流水情實時遠程監(jiān)控系統設計方法。以陜南漢江為監(jiān)測目標,利用低成本處理器和水位傳感器,結合GPRS無線網絡和Internet的無線接入技術實現河流水情信息的遠程監(jiān)測。
1 系統整體架構
河流水情監(jiān)測系統主要由現場監(jiān)測終端、通信網絡和遠程監(jiān)控端3部分組成?,F場監(jiān)測終端由控制模塊,數據采集模塊,信號處理模塊和電源管理模塊組成。 遠程監(jiān)控中心由一臺具有公網IP地址的云服務器主機和上位機軟件組成。通信網絡包括GPRS通信模塊SIM900A、 GPRS網絡和Internet網絡。 SIM900A內置TCP/IP協議,GPRS模塊插上SIM卡經過AT指令配置后可以接入GPRS網絡,GPRS網絡將數據發(fā)送到遠程監(jiān)控端,遠程監(jiān)控端與Internet網絡連接。系統工作過程為:首先數據采集模塊進行河流水位數據的采集,經信號處理模塊處理后送到單片機,單片機處理后經串口送到GPRS模塊發(fā)送,再經GPRS通信網絡接入Internet網,將數據送到監(jiān)控端。河流水情實時遠程監(jiān)測系統如圖1所示。
圖1 河流水情實時遠程監(jiān)測系統架構
2 系統硬件設計
系統硬件由河流水位信息采集模塊、水位信息顯示模塊、控制單元和數據發(fā)送模塊3部分組成。水情信息采集模塊主要由水位傳感器和I?V轉換電路組成,顯示模塊由字符型液晶顯示模塊LCD1602組成,控制單元由STC12C5A60S2單片機組成。數據發(fā)送模塊主要由SIM900A模塊組成。系統硬件組成如圖2所示。
圖2 系統硬件組成
水位傳感器選用LC?SW1型水位傳感器,LC?SW1型水位傳感器是投入式液位變送器,由殼體、放大器、接線端子、防護帽、中空導線等組成。寬電壓抗沖擊設計,體積小、重量輕、抗震動。輸出有兩線制和三線制,設計中采用兩線制接法,輸出4~20 mA電流信號,正極接24 V,負極接輸入-24 V??紤]到STC12C5A60S2單片機的I/O引腳要求輸入電壓信號,設計了I?V轉換電路,與STC12C5A60S2單片機的連接如圖2所示。
LCD1602的4引腳RS接STC12C5A60S2的P2.0 I/O口,5引腳R/W接P3.5口,使能端6引腳E接P3.6口,數據總線DB0~DB7接P0 I/O口。
STC12C5A60S2單片機是一款功能非常強大的單片機,有兩個串行通信接口,串口1的功能及操作與傳統51單片機串行口相同;串口1可以使用定時器1作為波特率發(fā)生器,而串口2只能使用獨立波特率發(fā)生器作為波特率發(fā)生器,控制水位傳感器和數據發(fā)送模塊SIM900A的工作。在該系統中,使用串口2與SIM900A相連接,P1.2和P1.3作為串口2,負責發(fā)送控制SIM900A指令,串口1主要是用來調試,將相關的調試信息從串口1輸出。
數據發(fā)送模塊SIM900A是SIMCom公司提出的一款尺寸緊湊的GSM/GPRS模塊,內嵌TCP/IP 協議,主要是為了實現SMS與TCP功能,語音接口沒有引出,外部功能模塊主要分為串口、電源、SIM卡、以及單片機相應接口。
硬件系統通過SIM900A模塊接入Internet 和監(jiān)控端相連接,單片機STC12C5A60S2和SIM900A通過串口連接,利用AT指令收發(fā)數據,實現串口通信。由于計算機串口輸出的是RS 232電平,而單片機和SIM900A模塊都是TTL電平,不能直接進行通信,需要進行電平轉換才能進行通信。本系統選擇美信(MAXIM)公司專為RS 232標準串口設計的單電源電平轉換芯片MAX232來進行電平轉換。
3 系統軟件設計
系統軟件設計主要包括:現場監(jiān)測端軟件設計和遠程監(jiān)控端軟件設計?,F場監(jiān)測端軟件設計包括主控制器程序的設計、水位信息采集處理程序設計和監(jiān)測端網絡通信程序的設計。軟件工作過程為: 首先完成主控制器STC12C5A60S2串口的初始化和GPRS模塊的初始化,初始化完成后開始水位信息的采集和處理, GPRS模塊SIM900A發(fā)起TCP連接, 連接成功, 主控制器將水位信息數據打包通過GPRS網絡發(fā)送到遠程監(jiān)控端[3]?,F場監(jiān)測端工作流程如圖3所示。遠程監(jiān)控端軟件設計包括遠程監(jiān)控端網絡通信程序設計。
3.1 主控制器STC12C5A60S2程序設計
主控制器STC12C5A60S2程序設計流程為系統初始化(主要包括定時器初始化、串口初始化、端口初始化等)、串口接收發(fā)送數據、按鍵鍵值的讀取、與SIM900A的通信等。STC12C5A60S2內部有兩個串口,第一個串口與通用51單片機相同,在P3.0和P3.1口;第二個串口是可以配置的,默認在P1.2和P1.3端口。對于串口1初始化,配置串口模式為8位數據位,1位起始位,1位停止位,無奇偶校驗位,使用定時器T1參數波特率,波特率為9 600 b/s。配置完成,開定時器T1中斷,啟動定時器T1,串口接收中斷。串口2的初始化和串口1的類似,只是串口2使用的是STC12C5A60S2內部的波特率發(fā)生器BRT,串口2的配置模式為8位數據位,1位起始位,1位停止位,無奇偶校驗位,波特率為9 600 b/s。
圖3 現場監(jiān)測端工作流程
配置好串口之后,只需要往SBUF寫入字符就可以通過串口發(fā)送出去,在串口發(fā)送的時候需要檢測串口發(fā)送的忙碌位,在不忙時即可串口發(fā)送,同時在發(fā)送的時候暫時關閉串口接收中斷,使發(fā)送和接收互不影響(接收的數據不會丟失,緩存在寄存器中,只是暫時沒有接收中斷,一旦發(fā)送完成,開始接收中斷,就會處理接收),保證了系統的可靠穩(wěn)定性。下面代碼是發(fā)送一個字符的函數,目的是為了方便調試:
void Uart0_PutChar(char ch)
{
ES = 0 ;
SBUF = ch ;
while(!TI);
TI = 0 ;
ES = 1 ;
}
void Uart0_PutString(char * pString,unsigned int len)
{
unsigned short i = 0;
for (i = 0;i < len;i++ ){
Uart0_PutChar(pString[i]);
}
}
串口的接收是以中斷的方式接收的,接收的格式是8位數據位,1位起始位,1位停止位,無奇偶校驗位,波特率為9 600 b/s。當使能串口接收中斷(ES = 1),串口有數據時,STC12C5A60S2會跳轉到串口接收中斷函數中,數據緩存在SBUF里。當串口接收中斷時,RI為1,將數據讀入到Temp,這樣就可以完成串口的接收。
3.2 監(jiān)測端網絡通信
監(jiān)測端網絡通信程序流程為通信模塊SIM900A的初始化、PDP的上下文激活、GPRS數據的讀取/發(fā)送、GPRS網絡狀態(tài)的檢測[4]。SIM900A的初始化完成GPRS網絡連接方式、傳輸方式、附著和分離GPRS業(yè)務、啟動任務并設置接入點、啟動連接和獲取本地IP的設置[5]。連接方式設為單點連接,傳輸方式設為透明傳輸方式,附著GPRS業(yè)務,設置參數為“AT+CGATT=1”,GPRS接入點APN(Access Point Name)設置為"AT+CSTT=\"CMNET\"",CMNET(China Mobile Net)是GPRS接入點名稱,CMNET提供了NAT服務,使用該服務的手機可以直接訪問Internet,CMNET可用于PC,筆記本電腦,PDA等設備實現GPRS上網[5]??紤]到系統設計需要,GPRS接入點名稱設置為CMNET;通過AT 指令"AT+CIICR"激活移動場景,發(fā)起GPRS連接,GPRS連接成功后,向串口發(fā)送指令"AT+CIFSR",獲取本地IP地址[6]。SIM900A的初始化完成后,建立TCP連接,發(fā)送數據。首先進行初始化,設置連接模式、端口號和IP地址,通過指令"AT+CIPSTART=\"TCP\",\"wap.baidu.com\",\"80\""完成。再利用AT指令進行數據的發(fā)送,使采集到的水位信息數據發(fā)送到GPRS網絡。在完成GPRS 數據傳輸過程中,相應AT 命令必須設置,但相鄰AT命令間要有一定延時, 經驗證約為2 s。SIM900A模塊建立TCP連接、打包發(fā)送水位信息數據程序如下:
void GPRS_TCP_LINK()
{
UART_SEND_STR(AT_CIPSTART,strlen(AT_CIPSTART));
UART_SEND_STR(AT_END,2);
m_long_delay(160);
}
void GPRS_TCP_SEND_INIT()
{
UART_SEND_STR(AT_CIPSEND,strlen(AT_CIPSEND));
UART_SEND_STR(AT_END,2);
m_long_delay(160);
}
void GPRS_TCP_SEND_DATA(char * msg,unsigned int len)
{
UART_SEND_STR(msg,len);
UART_SEND_CHAR(0x1A);
UART_SEND_CHAR(0x0D);
m_long_delay(100);
}
3.3 監(jiān)控端網絡通信設計
監(jiān)控端網絡通信設計實現TCP服務器的建立和監(jiān)控端TCP連接的建立。SIM900A分配到GPRS網絡的IP是動態(tài)的,重新連接網絡后IP變化,再次通過設備建立IP連接變得困難。同時設備只要能連接Internet,就能訪問具有公網IP的主機[7]。為了實現數據的穩(wěn)定可靠傳輸,有必要設置服務器,本系統采用云服務器。服務器網絡通信采用Microsoft Visual basic 6.0 進行編寫。利用TCP連接方式,Socket建立一個TCP服務器端口供GPRS模塊連接[8]。在 TCP 連接建立后,監(jiān)控端會將其用戶名和密碼信息發(fā)到服務器,若用戶名和密碼正確,則顯示用戶上線,否則服務器斷開連接。服務器還具有識別命令的功能,它能識別監(jiān)控端發(fā)上來的命令,然后執(zhí)行相應請求[7]。
監(jiān)控端設在能與Internet 連接的計算機上。監(jiān)控端通過向服務器發(fā)送命令來獲取信息,或者傳送數據到水位數據監(jiān)測端。監(jiān)控端和云服務器連接,實現數據的收發(fā),就是監(jiān)控端建立TCP連接。監(jiān)控端TCP連接建立后,就可以開始接收水位監(jiān)測終端發(fā)送來水位信息,并對水位信息處理。
4 系統測試
以陜南漢江作為河流水位監(jiān)測目標,STC12C5A60S2作為水位監(jiān)測端控制中心,SIM900A作為水位信息無線發(fā)送模塊,LC?SW1型水位傳感器測量水位。利用云服務器和一臺連接Internet網絡的計算機作為監(jiān)控端。經過測試,系統運行穩(wěn)定,水位數據無線傳輸正常,滿足系統設計要求。測試中選擇漢江河流某段的5個不同位置進行測試,現場的實際測試值與監(jiān)控端的測試值比較,相對誤差在5%以內。遠程監(jiān)測端的測試結果和監(jiān)控端的值進行比較如表1所示。
表1 遠程監(jiān)測端的測試結果
5 結 語
將遠距離采集數據與GPRS無線數據傳輸技術相結合,改變了以往有線的局限,能夠實現監(jiān)測端的無人值守功能。系統結構簡單,水位采集監(jiān)測端僅需要水位傳感器、單片機、電源模塊和GPRS無線模塊。易于擴展,可以增加或刪減水位監(jiān)測設備。 GPRS網絡覆蓋廣,不受地理位置限制,通信費用低廉,數據實時在線,可廣泛用于地質、水文等領域,可以應用于交通不便、沒有電力的偏遠地區(qū),有較高的應用與推廣價值。這為改善河流水位信息采集工作的效率,實現河流水位監(jiān)測站的無人值守,為積累豐富、詳實的水文資料提供了有力保障。
參考文獻
[1] 胡勝利,萬晉軍.基于GPRS的地下水自動監(jiān)測系統設計[J].水利水電技術,2011,42(1):89?91.
[2] 任肖麗,陳佳喜,王驥.基于GPRS技術在線環(huán)境監(jiān)測系統的研究[J].現代電子技術,2015,38(4):60?62.
[3] 陳東升.基于GPRS的下水道氣體遠程監(jiān)測系統設計[J].計算機測量與控制,2014,22(12):3932?3934.
[4] WEI Dehua, LIU Pan, LU Bo, et al. Water quality automatic monitoring system based on GPRS data communications [J]. Procedia engineering, 2012, 28(12): 840?843.
[5] IONEL R, PITULICE L, VASIU G, et al. Implementation of a GPRS based remote water quality analysis instrumentation [J]. Measurement, 2015, 65(4): 81?93.
[6] 伍連明,陳世元.基于GPRS的遠程數據采集模塊[J].現代電子技術,2009,32(3):25?28.
[7] 張輝,溫澤宏.GPRS在交通圖像采集中的應用[J].計算機工程,2013,39(5):270?272.
[8] 李凌.Winsock2網絡編程實用教程[M].北京:清華大學出版社,2003:120?156.