孫 倩,何 文,于 忠 得
(大連工業(yè)大學 信息科學與工程學院,遼寧 大連 116034)
農(nóng)業(yè)溫室是蔬菜、花卉等具有較高經(jīng)濟價值農(nóng)作物的種植場所。對溫室的溫度、濕度、光照度參數(shù)進行遠程監(jiān)控,實時了解溫室的環(huán)境參數(shù),實時進行遠程調整,不僅有利于農(nóng)作物的優(yōu)質高產(chǎn),而且節(jié)省人力成本[1]。
目前,國內在農(nóng)業(yè)溫室遠程控制中,大都采用基于WSN(無線傳感網(wǎng)絡)結合ZigBee的數(shù)據(jù)采集系統(tǒng)[2]。但是ZigBee技術在實際應用中存在很多缺點,例如易受干擾、通信距離短、不適合遠程監(jiān)控等。移動網(wǎng)絡(GSM)覆蓋域廣、接入迅速、按量計費,在遠程數(shù)據(jù)傳輸中具有很好的優(yōu)勢。
作者將嵌入式技術和GSM 技術相結合,用于農(nóng)業(yè)溫室的就地與遠程監(jiān)控,實現(xiàn)了參數(shù)的自動采集和遠程傳輸,降低了采集工作量,提高了數(shù)據(jù)采集精度和信息處理能力。
硬件系統(tǒng)組成如圖1所示,主要實現(xiàn)就地監(jiān)控與遠程監(jiān)控兩項功能。
圖1 硬件系統(tǒng)組成框圖Fig.1 Block diagram of the hardware system
就地監(jiān)控由數(shù)據(jù)采集處理、微處理器和存儲器構成的主機、控制信號輸出及人-機接口幾部分組成。
數(shù)據(jù)采集部分,選取溫室內比較敏感的3個點,安裝溫度、濕度以及光照度傳感器,采集3種傳感器輸出的數(shù)據(jù)。
溫度傳感器選用Pt100,其長期穩(wěn)定性、測量精度滿足溫室溫度檢測的需求。在前向通道中,設計了惠斯登電橋電路實現(xiàn)R/V 轉換;設計了自穩(wěn)零放大電路,對電橋電路輸出的微弱電壓信號進行放大,達到S3C2440 內部A/D 轉換器要求的模擬電壓輸入范圍[3]。
濕度傳感器選用瑞士Sensirion公司生產(chǎn)的SHT11,它將濕度傳感器、信號放大調理、A/D 轉換、I2C總線接口集成于一個芯片中。測量范圍:0~100% RH,測量精度:3% FS。輸出數(shù)字信號,可以直接接到S3C2440的I2C接口上。
光照傳感器選用美國TAOS 公司生產(chǎn)的TSL2561光強度傳感器,具有標準I2C 總線接口,涵蓋1~1 000 000lx的光照度范圍,適合農(nóng)業(yè)溫室光照強度的測量。
ARM 微處理器與存儲器構成硬件系統(tǒng)的主機電路,選用韓國三星公司生產(chǎn)的S3C2440作為微處理器。選用了4 MB 的NOR FLASH 作為程序存儲器,32 MB 的SDRAM 作為數(shù)據(jù)存儲器;128 MB的NAND FLASH,作為大容量數(shù)據(jù)存儲器。
選用遮陽網(wǎng)作為光照度參數(shù)的執(zhí)行器,選用加熱器作為溫度參數(shù)的執(zhí)行器,選用加濕器作為濕度參數(shù)的執(zhí)行器,三類執(zhí)行器均采用兩位式控制。采集的實時參數(shù)與設定值比較,出現(xiàn)偏差經(jīng)過相應的控制運算后,經(jīng)后向通道功率放大,開啟或關閉執(zhí)行器。
設計了帶有觸摸按鍵的彩色LCD 顯示屏作為監(jiān)控系統(tǒng)的人機接口,實現(xiàn)設置參數(shù)、觀察實時參數(shù)、歷史記錄數(shù)據(jù)和人工控制輸出的功能。
采用西門子公司生產(chǎn)的TC35系列GSM 模塊,實現(xiàn)將采集到的實時數(shù)據(jù)通過GSM 網(wǎng)絡,以短信方式發(fā)送到指定的手機,并接收指定手機發(fā)出的遠程控制命令,啟動或關閉溫室內的控制設備,從而實現(xiàn)遠程監(jiān)控。
TC35系列GSM 模塊內部由GSM 基帶處理器,GSM 射頻模塊,供電模塊,閃存模塊,ZIF(Zero Insertion Force,零阻力插座)連接器,天線接口組成。它與ARM 系統(tǒng)之間的通信是通過RS-232 串 行 接 口 進 行 的,通 信 速 率 為112.5 MB/s,采用8 位異步通訊方 式,1 個起始位,8個數(shù)據(jù)位,1個停止位。
軟件系統(tǒng)設計包括系統(tǒng)軟件移植、數(shù)據(jù)采集、數(shù)據(jù)處理、控制輸出、GUI界面設計和遠程通信設計。
系統(tǒng)軟件移植包括BootLoader移植、Linux內核移植、GTK 軟件移植和文件系統(tǒng)構建等。
數(shù)據(jù)采集主要是通過Linux系統(tǒng)的底層驅動來控制ARM 微處理器的I/O 口,實現(xiàn)傳感器數(shù)據(jù)的讀取。
數(shù)據(jù)處理采集傳感器輸出的數(shù)據(jù),經(jīng)過處理、封裝、轉換,將數(shù)據(jù)轉化成便于對比和繪制的數(shù)據(jù)格式。
控制輸出是將采集的數(shù)據(jù)和用戶設定值進行比較,根據(jù)比較結果,通過Linux系統(tǒng)底層驅動實現(xiàn)對執(zhí)行器的控制。
GTK+(GIMP Toolkit)是一套跨多平臺的圖形工具包,完全采用C 語言開發(fā)的圖形用戶編程接口[5]。
用戶操作界面有當前參數(shù)顯示、越限參數(shù)設置、越限報警提示、歷史數(shù)據(jù)顯示查詢、參數(shù)設置等。
系統(tǒng)主要對溫室中比較敏感的3 個點的溫度、濕度以及光照度進行數(shù)據(jù)采集和監(jiān)控。根據(jù)實際需要,每10s采集一組數(shù)據(jù)。其中,溫度數(shù)據(jù)采集顯示界面如圖2所示,顯示了不同溫室的溫度變化情況。
圖2 溫度曲線顯示界面Fig.2 The display interface for temperature curve
主要函數(shù)如下:
通過gdk_cairo_create函數(shù)創(chuàng)建一個cairo上下文,在該區(qū)域中畫線,最后利用cairo_stroke_preserve和cairo_fill對線條進行輪廓的描繪和區(qū)域的填充。
越限參數(shù)設置的界面如圖3所示。
圖3 越限參數(shù)設置界面Fig.3 Parameters setting interface
參數(shù)設置界面是對溫度、濕度和光照度的期望值進行設置。越限參數(shù)設置界面實現(xiàn)參數(shù)越限值設置,圖3所示為溫室1、2、3點的報警上下限值設置。
主要的函數(shù)如下:
通過gtk_notebook_new 創(chuàng)建筆記本構件,將它加入到主窗體中。報警上下限參數(shù)的設置是通過創(chuàng)建option和gtk_option_menu_set_menu來實現(xiàn)的。
GSM 模塊通過RS-232串行接口與ARM 處理器通信,應用程序通過操作串行接口,實現(xiàn)數(shù)據(jù)交互。在遠程通信設計中,主要是串行接口程序設計和GSM 模塊通信程序設計。
2.2.1 串行接口程序設計
串行接口在Linux 系統(tǒng)下被表述為終端設備,用tty表示。以下是打開串口設備代碼:
打開串口設備后,需要進行串口的初始化工作,主要是設置struct termios結構體的各個成員值。如下所示:
系統(tǒng)調用函數(shù)tcsetattr 設置串口的屬性,TCSANOW 參數(shù)可以使設置的屬性立刻生效。根據(jù)實際應用進行參數(shù)設置完成后,通過readdatafromtty函數(shù)讀取串口數(shù)據(jù),并檢測數(shù)據(jù)的有效性。
2.2.2 GSM 模塊通信程序設計
TC35I有AT 命令集接口,支持文本和PDU模式的短消息、第三組的二類傳真等模式[6]。在軟件編程中,通過向GSM 通信模塊寫入不同的AT 指令,完成相應的功能。常用AT 命令如表1所列。
數(shù)據(jù)傳輸時,需要對傳輸?shù)臄?shù)據(jù)進行封裝,即按確定的通信協(xié)議實現(xiàn)通信。
查詢某檢測點實測參數(shù)命令如下:Rs#m/n。其中:R 為固定字符,表示查詢實測參數(shù);s#為檢測點,s=1、2、3分別表示1、2、3號檢測點;m 為參數(shù)類型,m=1、2、3 分別表示溫度、濕度、光照度;/n為固定字符,表示結束。如:R1#2/n表示查詢1號檢測點的濕度。
表1 常用AT 命令Tab.1 Common command order of AT
短信查詢流程圖如圖4所示。
圖4 短信發(fā)送流程圖Fig.4 Flow chart of sending messages
短信查詢設計中,系統(tǒng)初始化串口和GSM模塊后使用AT+CNUM 指令判斷號碼有效性。通過AT+CMGF=1 指令設置短信發(fā)送模式;AT+CMGS=“**/n”設置短信接收端號碼;系統(tǒng)返回“>”時,發(fā)送查詢的內容;系統(tǒng)返回“+CMGS OK”時,表示發(fā)送成功。
系統(tǒng)收到短信查詢時,先判斷是否與設定的號碼一致,再讀取短信內容。設置系統(tǒng)回復格式如下:Ts#m(xx.y)/n。其中:T 為固定字符,表示系統(tǒng)回復;s#為檢測點,s=1、2、3分別表示1、2、3號檢測點;m 為參數(shù)類型,m=1、2、3分別表示溫度、濕度、光照度;(xx.y)為參數(shù)值,xx表示2位整數(shù),y表示1位小數(shù);/n為固定字符,表示結束。如:T2#1(35.2)/n表示2號檢測點的溫度值是35.2 ℃。
系統(tǒng)還具備遠程預警和控制功能。遠程預警是指檢測到參數(shù)異常時,系統(tǒng)會自主向工作人員發(fā)送報警信息。工作人員通過發(fā)送控制指令,實現(xiàn)溫室遠程控制。
系統(tǒng)在模擬環(huán)境下,進行了遠程監(jiān)控測試,測試結果說明了基于GSM 模塊的遠程雙向通信可靠、穩(wěn)定。數(shù)據(jù)采集、控制輸出部分采用了成熟的技術,其硬件電路方案和相應的軟件處理也經(jīng)實際考核,能夠滿足農(nóng)業(yè)溫室測控環(huán)境要求。
嵌入式系統(tǒng)技術和GSM 技術相結合的監(jiān)控系統(tǒng)設計方案,創(chuàng)新之處在于農(nóng)業(yè)溫室中利用ARM9控制GSM 模塊,借助手機收發(fā)短信實現(xiàn)遠程監(jiān)控,提高了農(nóng)業(yè)溫室控制水平和監(jiān)控的便利性,降低了人工成本。
[1]楊靜,張磊.農(nóng)業(yè)溫室控制系統(tǒng)的設計與實現(xiàn)[J].廣東農(nóng)業(yè)科學,2011(4):166-167.
[2]PARK D H,PARK J W.Wireless sensor networkbased greenhouse environment monitoring and automatic control system for dew condensation prevention[J].Sensors,2011,11(4):3640-3651.
[3]于忠得,林敏,申華.嵌入式系統(tǒng)基礎教程[M].北京:國防工業(yè)出版社,2009:1-16.
[4]陳莉莉,楊雪瑩,周寧軒.基于ARM 的溫度監(jiān)控系統(tǒng)設計[J].信息技術,2012(4):36-39.
[5]韋東山.嵌入式Linux應用開發(fā)完全手冊[M].北京:中國人民郵電出版社,2010:194-205.
[6]何華斌.基于嵌入式GSM 模塊的水文監(jiān)測系統(tǒng)的設計[J].現(xiàn)代電子技術,2012,35(8):8-11.