焦作大學信息工程學院 邢文生
基于瀏覽器和GSM卡流量的潛水泵遠程控制保護系統
焦作大學信息工程學院 邢文生
為了實現手機遠程檢測和控制潛水泵,本文設計了基于單片機、HTML和GSM卡的遠程潛水泵控制系統,闡述了系統的整體設計方案、硬件設計和軟件設計。系統的潛水泵端以單片機為處理器,使用壓力傳感器檢測水流壓力,以SIM900A模塊為通信模塊,通過HTTP協議,使用手機卡的流量與遠程WEB服務器通信。手機控制端使用瀏覽器訪問WEB服務器,可以遠程控制潛水泵運行。系統使用方便,穩定性和可靠性高,有較高的實用價值和應用前景。
SIM900;GSM;HTTP協議;潛水泵
潛水泵在農業灌溉、工廠生產廣泛使用。傳統的控制方式是人工直接給潛水泵通電,有兩大弊端:①需要人工進行送電和斷電,需要付出人力;②潛水泵工作時,需要水淹沒潛水泵給潛水泵降溫。如果水位低,水沒有淹沒潛水泵,潛水泵可能會發熱損壞;③如果水泵的三相電缺相,潛水泵不出水但會過度發熱,水泵可能會發熱損壞。
隨著網絡和現代通信技術的不斷發展,智能手機都支持瀏覽器訪問WEB網站,瀏覽器支持標準HTTP協議。使用HTTP協議的控制系統,不需要安裝其他應用軟件,與硬件平臺無關。
本系統通過智能手機的瀏覽器,發出啟動、停止潛水泵的命令。瀏覽器同時能夠接收到潛水泵控制端返回的數據,包括潛水泵工作狀態和出水壓力等數據。系統能夠在水流壓力不正常情況下,關閉潛水泵。
控制系統設計如圖1所示,由單片機主控模塊、通信模塊、壓力檢測模塊、潛水泵驅動模塊組成。

圖1 系統整體設計
主控模塊采用TC12LE5A60S2單片機為主控芯片,控制系統的核心,實現的功能如下:①系統參數的設置及儲存,如設置SIM900A的接收頻率、功耗大小、工作模式等參數;②與SIM900A模塊通過串口連接,使用標準AT命令,控制SIM900A模塊信息的接收和發送,信息傳輸使用HTTP協議;③與壓力傳感器連接,接收傳感器值,并判斷出水泵工作狀態。如果水泵水壓不正常,關閉水泵,并發送信息到手機;④與固態繼電器連接,控制潛水泵的啟動與停止。
通信網絡采用SIMCom公司的SIM900A作為通信芯片。SIM900A是一款尺寸緊湊型、高可靠性的無線模塊,采用SMT封裝的雙頻GSM/GPRS模塊解決方案。模塊使用工業標準界面,以小尺寸和低功耗實現語音、SMS、數據和傳真信息的高速傳輸。
SIM900A通信模塊,支持HTTP協議,使用GSM卡與WEB服務器通信。支持標準的AT命令,單片機通過串口控制SIM900A模塊的信息傳輸。
SIM900A支持短信收發、文本和PDU模式、嵌入型TCP/UDP協議、FTP/HTTP協議。其中HTTP協議是瀏覽器或其他程序與Web服務器之間的應用層通信協議,手機瀏覽器支持該協議。本系統使用HTTP協議實現SIM900A與WEB服務器的通信。
SIM900A通信模塊安裝GSM手機卡后,可以使用手機卡的流量與WEB網站進行信息傳輸。GSM手機信號覆蓋范圍廣,使用GSM手機卡作為通信方式有下面優點:①不需要架設無線WIFI,適合潛水泵在野外安裝作業;②使用手機卡流量與WEB服務器通信,與手機短信比較費用比較低;③GSM手機信號覆蓋范圍廣。
系統使用壓力傳感器檢測水流壓力,并通過壓力值判斷水泵出水狀態。
潛水泵沒有專門的風扇來散熱,工作時所產生得熱量靠的就是其工作環境中的水來散熱的,所以潛水泵工作時應該全部在水中。如果沒有水,潛水泵會因散熱不好而起熱燒毀。如果潛水泵供電有問題(缺相),潛水泵不出水,而且大量發熱,電機損毀。如果供水的高度是否超出潛水泵的揚程,電機只運轉而不出水。使用傳感器檢測是否出水,如果不出水關閉潛水泵并在手機端提醒。
固體繼電器的輸入端是3-24V信號,輸出端是0-380V交流電。單片機輸出啟動或停止控制信號,控制信號決定固態繼電器的通斷,進而控制潛水泵。如果是三相電水泵,加交流接觸器進行控制。
硬件設計如圖2所示,包括單片機、SIM900A、手機卡、壓力傳感器、固態繼電器等部分。

圖2 系統硬件設計
單片機選擇STC12LE5A60S2,工作電壓為3.3V。該單片機是增強型高速8051 單片機,指令及引腳完全兼容8051,有8個AD轉換引腳,2個串口[6]。
SIM900A模塊電源為3.1~4.6 V,GSM_ANT引腳外接天線,15~18引腳接SIM卡。單片機與SIM900A模塊通信采用串口方式,SIM900A模塊的TXD、RXD引腳與單片機串口連接,實現WEB數據的收發[1]。
系統選用電壓輸出的壓力傳感器,檢測水流壓力。單片機已經包含有8路A/D轉換器[6],選用P1.0引腳作為壓力傳感器的A/D轉換。
按鍵1與按鍵2配合,實現參數設置,如訪問密碼,動作延時時間等參數。
使用固態繼電器,能夠使用單片機的控制信號控制220V交流電的通斷。固態繼電器是開關器件,輸入端是單片機引腳的控制信號,輸出端是480V以下的交流電,輸出控制電流選擇20A。
軟件開發包括網站設計、傳感器信息采集、GSM通信軟件設計等。GSM通信軟件編寫如下:
單片機與SIM900A模塊通信采用串口方式,使用標準AT指令[2]。實現AT指令的代碼如下:

代碼如下:
Second_AT_Command("ATE0"); //取消回顯
Second_AT_Command("AT+CIPSHUT");//關閉移動場景
Second_AT_Command("AT+CREG?");//查詢GPRS網絡注冊狀態
Second_AT_Command("AT+CGATT?",1,40);//附著GPRS業務網絡
Second_AT_Command("AT+SAPBR=3,1,"Contype","GPRS"");// 設置網絡參數
Second_AT_Command("AT+SAPBR=3,1,"APN","UNINET"");//設置接入點名稱(聯通卡為例)
Second_AT_Command("AT+SAPBR=1,1",;// 打開承載
Second_AT_Command("AT+HTTPTERM");
Second_AT_Command("AT+HTTPINIT",1,40);//初始化HTTP
Second_AT_Command("AT+HTTPPARA="CID");// 設置承載上下文標括識
首先準備要訪問的網站的URL網址(支持域名),例如HTTP://www.xxx.xom/sb.asp?a=2.7&b=3。域名后面的“a=2.7”表示上傳潛水泵壓力信息到WEB服務器,“b=3”表示上傳潛水泵工作狀態到WEB服務器。
代碼如下:
Second_AT_Command("AT+HTTPPARA="URL","網址"");//要訪問的網站,支持域名
Second_AT_Command("AT+HTTPACTION=0");// 激活HTTP請求,Post方式
Second_AT_Command("AT+HTTPREAD");//設置接收數據顯示IP頭
delay(2500);//延時一段時間
執行上述代碼后,等待一段時間(0.5秒左右),WEB服務器會返回信息。
發送請求后,WEB服務器返回數據,ISM900A模塊通過串口發送給單片機。單片機程序通過串口中斷讀出數據,該數據包括潛水泵的啟動或停止命令。
web服務器支持HTTP的服務請求。本系統的SIM900A模塊和手機瀏覽器都可以訪問WEB服務器,瀏覽器輸入域名后,向服務器發出請求,并將數據存儲到服務器和接收服務器返回信息。
以asp為例說明,代碼中網址的訪問格式如下:http://www.XXX.asp?參數=5。可以是asp、PHP 、aspx等方式訪問,參數是需要上傳到WEB服務器的參數。
asp網站代碼中,返回數據的命令如下:response.write(返回的數據)。
本系統能夠遠程控制潛水泵,節省人力。系統使用GSM卡流量通信,不需要架設WIFI,安裝方便。系統直接使用瀏覽器進行控制,不需要下載安裝APP,非常新穎實用。
系統使用SIM900A模塊,運行穩定可靠,設計成本較低,具有商業價值。
[1]SIM900A_Hardware_design_V1.03[Z/OL].HTTP://wm.sim.com/documenten.aspx.2016.11.29.SIMCom.
[2]SIM900-HTTP-FTP-AP.pdf[Z/OL].HTTP://wm.sim.com/documenten.aspx.2016.11.29.SIMCom.
[3]甘志偉,閆凱.基于SIM900A的無線數據采集卡設計與實現[J].山西電子技術,2013,(1).
[4]敖麟欽.基于GSM/SMS的信息查詢系統設計與實現[J].軟件導刊,15.12(2016):77-79.
[5]楊光,蘭志光,戴華林.基于STM32和SIM900A車載通訊系統的設計與實現[J].中國民航飛行學院學報,2017,28(3):39-42.
[6]陳勇.單片機原理與應用-基于匯編.C51及混合編程[M].北京:高等教育出版社,2014.
[7]馮昊等.ASP動態網頁設計與應用(第2版)[M].北京:清華大學出版社,2016.
邢文生(1969-),男,河南焦作人,控制工程碩士,焦作大學信息工程學院副教授,研究方向:物聯網。