GSM遠程監控系統的設計與實現
GSM(Global System for Mobile Communication)全球數字移動通信系統,是目前國內覆蓋范圍最廣、系統可靠性最高、用戶數量最大的數字移動蜂窩通訊系統?;贕SM網絡的短信服務SMS(short Message Service),作為一種廉價的無線應用方案越來越受到用戶的歡迎和關注,在數據采集、遠程監控等領域得到了廣泛的應用。
1 系統的總體設計
系統通過各類傳感器獲取房間供電電壓、浸水、溫濕度等環境信息,通過網絡獲取重要服務器的通斷情況,當遇到異常情況通過GSM 向機房管理員發送報警短消息,通過網絡向遠程管理中心發送網絡報警信息,同時機房值班室報警喇叭響,報警指示燈閃亮。用戶隨時可通過短信發送命令控制機房設備開關機如開啟空調等。具有如下特性:(1)實時檢測機房環境信息;(2) 支持中英文短信;(3)遠程短信修改系統控制參數;(4)登錄監控主機需要密碼;(5)報警方式多樣;(6)預留16 路繼電器輸出供用戶自定義;(7) 穩定可靠,適合無人值守。
2 軟件的設計
軟件基于WindowsXP 系統平臺, 開發語言使用VC++6.0,數據庫采用SQL Sever2000。系統軟件策略:基于單文檔模式使用定時器定時查詢傳感器狀態,有異常發送報警指令。
2.1 GSM Moderm 讀寫
GSM Moderm 通過標準RS232 接口與PC 機相連,支持標準AT 指令。監控主機與GSM 模塊通信通過內嵌AT 指令的串口命令完成。用到的串口命令及嵌入方法為:
WriteFile (ATcmd,nLength of ATcmd,&dwNumRead, NULL)和ReadFile(ATcmd,nLength of ATcmd ,ReadFile), 這里ATcmd 一般為char 類型,通過sprintf()函數將AT 指令裝入ATcmd 中,示例:sprintf(ATcmd, "AT+CMGF=0\r\n",12),該語句將AT 指令“AT+CMGF=0 回車換行”放入ATcmd 中,表示采用中文格式顯示短消息內容。
2.2 雙向短信防沖突策略
實時短信報警和短信遠程控制功能要求GSM 雙向收發短信。系統軟件建立了兩個子循環A 和B,分別負責發送和接收短信,兩循環相互獨立運行,操作串口。由于不管是發送還是接收一條短消息都需要多次寫讀串口,為避免“答非所問”的兩子循環搶占串口現象,系統創新研制了“雙向鎖”機制。通過兩個全局變量控制子循環對串口的操作:當子循環A 操作串口時,使變量B 無效,子循環B 不能操作串口,待子循環A 完成串口操作后,使變量B 有效,子循環B 可操作串口,同時使變量A 無效,子循環A 不能操作串口,待子循環B 完成操串口作后,使變量A 有效。此機制有效解決了讀寫GSM 模塊沖突的問題。
2.3 命令短信的安全密鑰控制
操作員隨時可以向系統發送短消息查看機房環境狀態或者控制系統完成如重啟服務器、關閉空調等操作,實現遠程無線控制功能。為保證系統安全、準確處理接收到的命令短信,設計中采用如下策略:用定時查詢方式處理GSM 接收到的短信,采用密鑰策略對短信內容和來電身份雙重驗證。具體來說,就是在定時循環中先正確配置GSM 工作模式,然后讀取當前GSM 中短信數量,找未讀短信(避免重復處理以前的命令),判斷該短信是否來自預定手機號碼(避免被非操作員指揮),比對口令是否正確,以上任何一步不正確退出循環,否則分析短信內容,決定是重啟、還是關機以及具體對哪一臺設備操作??诹畈欢ㄆ谛薷?,確保安全。采用該策略有效保證了短信命令的穩健性。
3 水源井現場監控終端電路設計
現場監控系統由PIC16F877單片機、通信模塊MC35、數據采集電路、外圍控制電路、時鐘及電源電路等組成。
數據采集部分主要由模擬電路、電流變送器、電壓變送器及壓力傳感器構成,負責將設備的運行狀態、電流、電壓及壓力值轉換為適于單片機模擬端口的電壓值;外圍控制電路受控于單片機數字輸出端口,根據相應端口輸出電平變化,改變外圍電路狀態;MC35通信模塊負責將單片機的指令發送至服務器或值班手機,將接收的來自服務器或手機的信息傳送給單片機系統;時鐘電路負責給系統提供時鐘信號;電源電路負責給系統供電;系統的核心部分單片機負責將數據采集電路采集的模擬信號轉化為數字信號,經分析判斷是否改變外圍控制電路的工作狀態,是否向服務器值班手機發送信息,同時還要接收分析MC35模塊接收的控制指令信息,以控制現場工作狀態。
作者:王文彬