《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于GSM/GPRS的溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
基于GSM/GPRS的溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2012年第18期
黃 培,,徐立鴻,王樂達(dá),,蔚瑞華
(同濟(jì)大學(xué) 電子與信息工程學(xué)院,,上海201804)
摘要: 針對農(nóng)業(yè)生產(chǎn)中部分溫室地點(diǎn)偏僻,、位置分散等特點(diǎn),設(shè)計(jì)了一種通過SMS短消息業(yè)務(wù)和GPRS網(wǎng)絡(luò)對溫室群進(jìn)行遠(yuǎn)程監(jiān)控的系統(tǒng),,并介紹了系統(tǒng)結(jié)構(gòu)和軟硬件設(shè)計(jì),。該系統(tǒng)利用嵌入式技術(shù)構(gòu)建了溫室現(xiàn)場采集和控制終端,利用GPRS無線通信技術(shù)使溫室現(xiàn)場終端和遠(yuǎn)程Server工作于C/S模式,。操作者亦可通過SMS短消息的方式對溫室實(shí)施監(jiān)控,。
Abstract:
Key words :

摘  要: 針對農(nóng)業(yè)生產(chǎn)中部分溫室地點(diǎn)偏僻、位置分散等特點(diǎn),,設(shè)計(jì)了一種通過SMS短消息業(yè)務(wù)和GPRS網(wǎng)絡(luò)對溫室群進(jìn)行遠(yuǎn)程監(jiān)控的系統(tǒng),,并介紹了系統(tǒng)結(jié)構(gòu)和軟硬件設(shè)計(jì)。該系統(tǒng)利用嵌入式技術(shù)構(gòu)建了溫室現(xiàn)場采集和控制終端,,利用GPRS無線通信技術(shù)使溫室現(xiàn)場終端和遠(yuǎn)程Server工作于C/S模式,。操作者亦可通過SMS短消息的方式對溫室實(shí)施監(jiān)控。
關(guān)鍵詞: GSM,;GPRS,;農(nóng)業(yè)環(huán)境;遠(yuǎn)程監(jiān)控

    為合理利用農(nóng)業(yè)資源,,提高農(nóng)業(yè)生產(chǎn)效率,,將現(xiàn)代電子﹑計(jì)算機(jī)﹑通信和自動控制等技術(shù)引進(jìn)到農(nóng)業(yè)生產(chǎn)領(lǐng)域是發(fā)展現(xiàn)代農(nóng)業(yè)的必由之路。在農(nóng)業(yè)環(huán)境監(jiān)控網(wǎng)絡(luò)化,、智能化的發(fā)展趨勢下,,由于部分農(nóng)業(yè)生產(chǎn)環(huán)境地點(diǎn)偏僻、位置分散等因素的制約,,采用有線的方式對其進(jìn)行監(jiān)控面臨眾多的瓶頸問題,,例如以太網(wǎng)接入不便、RS-485總線傳輸距離有限等,。
    近年來興起了很多無線組網(wǎng)技術(shù),,如將ZigBee技術(shù)用于水產(chǎn)養(yǎng)殖環(huán)境監(jiān)測[1]、溫濕度數(shù)據(jù)采集[2]等,。但是ZigBee技術(shù)在實(shí)際應(yīng)用中存在很多缺點(diǎn),,例如易受干擾、通信距離短,、不適合遠(yuǎn)程監(jiān)控等,。移動公網(wǎng)GSM/GPRS通信技術(shù)在工農(nóng)業(yè)生產(chǎn)中的應(yīng)用日益受到人們的關(guān)注。GSM/GPRS有覆蓋域廣﹑接入迅速﹑按量計(jì)費(fèi)等優(yōu)點(diǎn),,在遠(yuǎn)程突發(fā)性數(shù)據(jù)傳輸中具有很好的優(yōu)勢。
    本文通過采用GSM/GPRS無線網(wǎng)絡(luò)通信技術(shù)與嵌入式技術(shù)相結(jié)合的方法,,設(shè)計(jì)了一種對溫室群進(jìn)行遠(yuǎn)程監(jiān)控的系統(tǒng),使操作者可通過GSM網(wǎng)絡(luò)提供的SMS短消息業(yè)務(wù)或GPRS兩種方式獲取溫室現(xiàn)場狀態(tài)和下發(fā)控制命令,。溫室現(xiàn)場具備緊急情況下自動控制的功能,。系統(tǒng)由于加入了通過手機(jī)短消息進(jìn)行監(jiān)控的方法,為溫室遠(yuǎn)程控制提供了一種更為靈活的方式,。
1 系統(tǒng)架構(gòu)
    系統(tǒng)架構(gòu)分為三部分:控制端(分為控制中心Server和移動控制端),、GSM/GPRS無線網(wǎng)絡(luò)傳輸層和溫室現(xiàn)場終端??刂浦行腟erver負(fù)責(zé)溫室現(xiàn)場環(huán)境參量的顯示和存儲,,并可通過GPRS網(wǎng)絡(luò)下發(fā)命令。移動控制端指操作者通過手機(jī)短消息實(shí)施監(jiān)控的方式,,若操作者不在控制中心,,可通過手機(jī)發(fā)短消息查詢溫室環(huán)境參量,并下發(fā)控制指令,,保證遠(yuǎn)程監(jiān)控實(shí)施的靈活性,。溫室現(xiàn)場終端負(fù)責(zé)3個(gè)方面的任務(wù):(1)溫室現(xiàn)場環(huán)境參量的采集和無線發(fā)送;(2)控制端指令的接收和執(zhí)行,;(3)終端內(nèi)運(yùn)行溫室控制算法,,擁有對部分執(zhí)行機(jī)構(gòu)的直接控制權(quán),執(zhí)行緊急情況下自動控制的功能,。系統(tǒng)示意圖如圖1所示,。

    控制中心Server具有固定公網(wǎng)IP地址。上位機(jī)界面基于Visual C++開發(fā),,具備數(shù)據(jù)實(shí)時(shí)顯示和存儲的功能,,通過ADO技術(shù)連接Access數(shù)據(jù)庫,方便操作人員查詢歷史數(shù)據(jù),。溫室現(xiàn)場終端和控制中心Server工作于C/S模式,,Server端建立一個(gè)監(jiān)聽Socket,在Socket上建立消息響應(yīng)函數(shù)來接收溫室現(xiàn)場終端的連接請求,,并用來接收GPRS數(shù)據(jù)。當(dāng)兩者TCP連接建立后,,Server端通過掃描指定端口,,讀取溫室現(xiàn)場終端上傳的溫室環(huán)境參量信息。
2 硬件設(shè)計(jì)
    由于溫室環(huán)境的復(fù)雜性和特殊性,,在溫室現(xiàn)場終端硬件設(shè)計(jì)中需要考慮如下兩個(gè)因素:
    (1)控制終端是整個(gè)系統(tǒng)信息交互的中心,,既要定時(shí)上傳傳感器數(shù)據(jù),又要接受遠(yuǎn)程指令的查詢和控制,數(shù)據(jù)流量較大,,對MCU的內(nèi)存和處理速度有一定要求,。
    (2)被控溫室在無人值守的情況下,為應(yīng)對異常情況的出現(xiàn),,溫室控制終端需具備自動復(fù)位的能力,。
    基于這兩種因素,終端MCU選用STC12C單片機(jī),,STC12C是單時(shí)鐘/機(jī)器周期(1 T)單片機(jī),,速度比普通8051快8~12倍。內(nèi)置看門狗復(fù)位電路,,當(dāng)看門狗沒有被定時(shí)清零時(shí),,將引起復(fù)位,從而防止程序陷入死循環(huán),。終端硬件設(shè)計(jì)采用嵌入式技術(shù),,MCU搭載傳感器、GPS模塊和GPRS模塊等,。終端硬件架構(gòu)如圖2所示,。

    MCU通過串口分別連接GPS模塊和GPRS模塊。GPS模塊采用Ubolx公司的高精度UbloxNEO6M,。通過GPS模塊在服務(wù)器端顯示溫室的位置信息,,同時(shí)截取GPS幀里的時(shí)間戳,為每一幀上傳至服務(wù)器的傳感器數(shù)據(jù)加上時(shí)間標(biāo)記,。
    傳感器用于監(jiān)測溫室內(nèi)重要的環(huán)境參量,,包括溫度、濕度,、光照,、二氧化碳等。其中溫濕度傳感器采用單總線數(shù)字式傳感器DHT11,。DATA引腳用于微處理器與DHT11之間的通信和同步,,采用單總線數(shù)據(jù)格式,工作后可以一次完整傳輸40 bit溫濕度數(shù)據(jù),。數(shù)據(jù)格式為:8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)+8 bit校驗(yàn)和,。
    GPRS模塊采用SIMCOM公司的SIM300,內(nèi)嵌TCP/IP協(xié)議棧,,支持AT指令集,。該模塊負(fù)責(zé)無線通信鏈路的建立,它通過串口與MCU通信,,串口工作于模式1,,波特率設(shè)置為9 600 b/s,。當(dāng)串口接收到數(shù)據(jù)或者需要發(fā)送數(shù)據(jù)時(shí)產(chǎn)生串口中斷,MCU響應(yīng)中斷執(zhí)行相應(yīng)處理程序,。GPRS模塊負(fù)責(zé)傳感器數(shù)據(jù)上傳和遠(yuǎn)程指令接收兩方面的工作,。MCU將傳感器數(shù)據(jù)按通信協(xié)議封裝成幀,交付GPRS模塊定時(shí)發(fā)送,。GPRS模塊接收到手機(jī)短消息指令或控制中心Server指令時(shí),,交付MCU進(jìn)行解析。
    溫室現(xiàn)場終端通過GPIO口,,驅(qū)動繼電器或電機(jī)執(zhí)行溫室天窗開關(guān),、遮陽網(wǎng)開關(guān)、卷簾收放等動作,。
3 軟件設(shè)計(jì)
    系統(tǒng)軟件設(shè)計(jì)圍繞兩個(gè)核心問題:傳感器數(shù)據(jù)的無線發(fā)送和遠(yuǎn)程指令的接收并執(zhí)行,。基于這一思路,,采取模塊化的程序設(shè)計(jì)以保證良好的可維護(hù)性,。系統(tǒng)任務(wù)由各子程序模塊配合協(xié)作完成。例如分別有模塊執(zhí)行GPRS網(wǎng)絡(luò)TCP通信鏈路的建立,、溫室控制算法,、通信協(xié)議的執(zhí)行以及短消息指令的分析等。圖3為系統(tǒng)工作流程圖,。

3.1 TCP無線通信鏈路建立
    GPRS是在現(xiàn)有GSM網(wǎng)絡(luò)中增加GPRS網(wǎng)關(guān)支持節(jié)點(diǎn)GGSN和GPRS服務(wù)支持節(jié)點(diǎn)SGSN來實(shí)現(xiàn)的[3],。圖4為通過AT指令使溫室現(xiàn)場終端的GPRS模塊和控制中心Server建立TCP連接的過程。

    這一過程的實(shí)現(xiàn)用到的AT指令如下:
    AT+CGATT=1(附著GPRS服務(wù))
    AT+CGDCONT=1,,"IP",,"CMNET"(定義PDP 場景)
    AT+CGACT=1,1(激活或解除PDP 移動場景)
    AT+CIPCSGP=1,,"CMNET",,選擇接入點(diǎn)
    AT+CIPSTART="TCP","Server的 IP地址",,
    "Server的端口號",,嘗試TCP連接。
    控制中心Server需具有公網(wǎng)IP地址,,當(dāng)成功建立TCP連接后,,可用AT+CIPSEND發(fā)送數(shù)據(jù)到Server。如果要關(guān)閉TCP連接可用AT+CIPCLOSE命令,。
3.2 通信協(xié)議和優(yōu)先級
    由于控制對象是一個(gè)溫室群,,每個(gè)溫室布置有多種類型傳感器,系統(tǒng)制定了完整的通信協(xié)議和數(shù)據(jù)校驗(yàn)機(jī)制來保證控制中心Server和溫室現(xiàn)場終端的正確握手,。
    為每個(gè)被控溫室分配一個(gè)獨(dú)有的一級ID,,溫室內(nèi)的各個(gè)傳感器分配獨(dú)有的二級ID,每幀上傳數(shù)據(jù)的格式為:幀頭0x21+溫室ID+時(shí)間標(biāo)記+傳感器ID+傳感器數(shù)據(jù)+CRC+幀尾0xFF,。
    由于為溫室提供了SMS和GPRS兩種遠(yuǎn)程控制方法,,溫室終端也嵌入了溫室控制算法,使終端擁有對部分執(zhí)行機(jī)構(gòu)的控制權(quán),,以進(jìn)行緊急情況的判斷處理,。為了避免操作的沖突性,系統(tǒng)為每種控制方式分配了不同的優(yōu)先級,,優(yōu)先級從高到低依次為:溫室終端,、控制中心Server和移動控制端。當(dāng)出現(xiàn)重復(fù)操作指令時(shí),,以優(yōu)先級最高的為準(zhǔn),。不符合通信協(xié)議的指令和數(shù)據(jù)將被直接過濾,避免誤操作和重復(fù)操作情況的發(fā)生,。
3.3 溫室控制算法

 


    如果將全部的控制權(quán)交由控制端(Server端和移動控制端)發(fā)出,,對整個(gè)系統(tǒng)而言是十分危險(xiǎn)的。例如光照傳感器測出當(dāng)前溫室內(nèi)光照強(qiáng)度過大,,而此時(shí)控制端命令發(fā)生傳輸延遲或命令丟失的情況,,這就會導(dǎo)致溫室現(xiàn)場端因?yàn)榈却坏竭h(yuǎn)程命令而不作為的情況。植物很可能因此被強(qiáng)烈的陽光灼傷,。
    在系統(tǒng)設(shè)計(jì)中,,溫室現(xiàn)場終端擁有對部分執(zhí)行機(jī)構(gòu)的直接控制權(quán),終端內(nèi)運(yùn)行溫室控制算法,,將選定的重要溫室環(huán)境參量輸入溫室控制算法進(jìn)行運(yùn)算,,根據(jù)運(yùn)算結(jié)果判斷是否動作相關(guān)執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)緊急情況下自動控制的功能,。
    以溫室控制算法中的遮陽網(wǎng)控制算法為例,,現(xiàn)場終端得到光照傳感器測得的光照值后,會將其與程序內(nèi)設(shè)定的適合作物生長的光照值做比較,,如果實(shí)際值高于設(shè)定值,,終端會驅(qū)動電機(jī)關(guān)閉遮陽網(wǎng),反之驅(qū)動電機(jī)打開遮陽網(wǎng),。圖5所示為溫室遮陽網(wǎng)控制算法的流程圖,。

3.4 短消息指令分析
    SMS(短消息)是GSM系統(tǒng)提供的一種業(yè)務(wù),由于采用了短消息中心的存儲和轉(zhuǎn)發(fā)機(jī)制,,保證了較高的可靠性[4-5],。下面為基本SMS設(shè)置的精簡程序。
    static void init_sms()
    {  send_string_uart1("AT+CMGF=0\x00D\x00A");
    send_string_uart1("AT+CSCS=\"UCS2\"\x00D\x00A");     //設(shè)置字符集
    send_string_uart1("AT+CSMP=17,167,0,241\x00D\x00A");}
//設(shè)置短消息存儲模式
    GPRS模塊上電啟動后,,通過AT指令進(jìn)行基本SMS的設(shè)置,,如“AT+CSCS=UCS2” 設(shè)置所使用字符集為UCS2,,“AT+CMGF=0”設(shè)置使用PDU模式。
    對于移動控制端指令,,需統(tǒng)一消息幀頭,,以方便溫室終端的提取和分析。本系統(tǒng)中所有的短消息指令都以“wenshictr”開頭,。如果操作者發(fā)短消息“wenshictr+hum=,?”至某溫室詢問濕度值,該溫室現(xiàn)場終端收到后,, MCU通過AT+CMGR指令讀出消息幀,,去除幀的時(shí)間標(biāo)記等內(nèi)容,將控制指令提取出來,,然后將實(shí)時(shí)濕度值經(jīng)過UCS2編碼,,打包成PDU幀的格式通過“AT+CMGS”指令回復(fù)給操作者。當(dāng)指定參量超出閾值,,通過“ATD<電話號碼>”指令可實(shí)現(xiàn)電話報(bào)警的功能,。
    本系統(tǒng)在溫室現(xiàn)場經(jīng)過驗(yàn)證,運(yùn)行良好,,GPRS傳輸數(shù)據(jù)穩(wěn)定可靠,,實(shí)時(shí)性較好。但由于移動公司的限制,,發(fā)送數(shù)據(jù)的周期最好設(shè)置在幾分鐘以內(nèi),。因?yàn)橐欢〞r(shí)間內(nèi)如果通信鏈路沒有產(chǎn)生流量,移動公司會取消分配給GPRS模塊的網(wǎng)內(nèi)IP,。本系統(tǒng)設(shè)計(jì)的初衷是針對偏僻分散溫室群的監(jiān)控,,但也可用于其他需要遠(yuǎn)距離監(jiān)控的場合,具有良好的可移植性,。
參考文獻(xiàn)
[1] 宦娟,,劉星橋,程立強(qiáng),,等.基于ZigBee的水產(chǎn)養(yǎng)殖水環(huán)境無線監(jiān)控系統(tǒng)設(shè)計(jì)[J].漁業(yè)現(xiàn)代化,,2012,39(1):34-38.
[2] 李永成,,凌青,,吳剛,等.基于ZigBee的溫濕度數(shù)據(jù)無線采集監(jiān)測系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,,2012,,31(7):61-63.
[3] 盧偉,楊建華,袁雪堯.基于GPRS的嵌入式數(shù)據(jù)采集與遠(yuǎn)傳系統(tǒng)[J].微計(jì)算機(jī)信息,,2011,,27(1):12-13.
[4] 朱萬貴,鄭國君,,顧新建,,等.基于SMS的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].制造業(yè)自動化,2003,,25(12):32-34.
[5] 周國祥,周俊,,苗玉彬,,等.基于GSM的數(shù)字農(nóng)業(yè)遠(yuǎn)程監(jiān)控系統(tǒng)研究與應(yīng)用[J].農(nóng)業(yè)工程學(xué)報(bào),2005,,21(6):87-91.

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