劉忠超, 范偉強, 常有周
(1.南陽理工學院電子與電氣工程學院,河南南陽 473004; 2.西北農(nóng)林科技大學機械與電子工程學院,陜西楊凌 712100; 3.中國礦業(yè)大學(北京)機電與信息工程學院,北京 100083)
我國是人口大國,人均耕地占有率排名較靠后,占有世界近22%人口的國家,卻依靠著占世界近7%的耕地來生存著[1]。此外,我國耕地質(zhì)量呈下滑的趨勢,這對糧食產(chǎn)量有著較大的影響,提高單位面積糧食產(chǎn)量和擴大糧食種植面積是農(nóng)業(yè)發(fā)展迫在眉睫的要求。溫室栽培改變了傳統(tǒng)農(nóng)業(yè)生產(chǎn)模式。打破了植物生長的地域和時空界限,推動了農(nóng)業(yè)生產(chǎn)和社會文明的發(fā)展?,F(xiàn)代溫室越來越廣泛地應用于設施農(nóng)業(yè)生產(chǎn)中,溫室生產(chǎn)成為現(xiàn)代農(nóng)業(yè)的標志。隨著現(xiàn)代農(nóng)業(yè)的發(fā)展,特別是隨著農(nóng)業(yè)人口向城市轉(zhuǎn)移,對農(nóng)業(yè)自動化的要求越來越高,溫室技術(shù)也逐步向智能化方向發(fā)展[2]。
智能溫室能將溫度、濕度、光照度等環(huán)境量自動調(diào)節(jié)到農(nóng)作物生長所需要的范圍內(nèi),從而可以不受自然環(huán)境的影響,實現(xiàn)全年任何季節(jié)都能生產(chǎn)的需求。傳統(tǒng)的溫室大多采用人工方式進行環(huán)境數(shù)據(jù)的測量,費時費力,在溫室面積較大時更是增加了勞動量[3]。當采用有線的方式進行監(jiān)控時,需要布設較多的線纜,出現(xiàn)故障的可能性較大,并且成本較高,降低了溫室的效益[4]。針對傳統(tǒng)溫室存在的問題,課題借助ZigBee無線傳感網(wǎng)絡和以太網(wǎng)通信技術(shù)的優(yōu)勢,設計了一種智能溫室無線監(jiān)控系統(tǒng),利用傳感器自動采集溫室環(huán)境參數(shù),實現(xiàn)對溫室環(huán)境的智能化監(jiān)控。
為了實現(xiàn)溫室環(huán)境參數(shù)的遠程自動監(jiān)控,系統(tǒng)主要由溫室終端環(huán)境因子采集系統(tǒng)和遠程網(wǎng)絡傳輸系統(tǒng)組成。終端通過溫濕度傳感器、光照度傳感器采集環(huán)境因子,并通過ZigBee組建的網(wǎng)絡將溫室環(huán)境量上傳至協(xié)調(diào)器,協(xié)調(diào)器和STM32控制器之間采用串口直連的方式進行數(shù)據(jù)間的雙向傳遞,單片機在收到數(shù)據(jù)后會在液晶屏上進行環(huán)境數(shù)據(jù)的就地顯示及動態(tài)曲線的繪制,同時通過網(wǎng)絡模塊將數(shù)據(jù)上傳到基于WEB的上位機上,上位機會對溫室內(nèi)的環(huán)境量進行實時顯示。同時上位機開啟自動控制功能,如果溫室內(nèi)溫濕度、光照度高于或低于設定值,則會自動發(fā)送相應的命令給下位機,終端會對收到的命令進行解析,控制風扇、加熱器、除濕器、風機的開和關(guān),以此來實現(xiàn)溫室的智能調(diào)節(jié)。系統(tǒng)總體架構(gòu)如圖1所示。
STM32系列單片機是意法半導體公司推出的高性能、低成本、低功耗的嵌入式微處理器,該芯片的配置非常強大,片上資源十分豐富。結(jié)合系統(tǒng)的功能需求,系統(tǒng)選用STM32F103ZET6作為ZigBee網(wǎng)關(guān)的微控制器,通過2路串口與協(xié)調(diào)器和電腦進行數(shù)據(jù)傳輸,并借助1路SPI接口和網(wǎng)絡模塊相連,實現(xiàn)與上位機之間的以太網(wǎng)通信[5]。
系統(tǒng)選用DHT11傳感器來測量溫濕度,該傳感器已經(jīng)對輸出的數(shù)字信號進行了校準,可靠性與穩(wěn)定性極高。傳感器采用單總線的串行通信方式,使硬件連線變得簡單,使用起來較為方便[6]。DHT11傳感器電路如圖2所示。
光照度的測量通常簡便的方法是采用光敏電阻。它是一種光照度與其阻值成反比的元器件,在強光條件下,光敏電阻的阻值僅有數(shù)百歐姆,在暗光條件下,它的阻值最大可達 10 MΩ。BH1750FVI是一種采用I2C總線來進行通信的數(shù)字式光照度傳感器,這種傳感器具有很高的分辨率,能夠檢測的光照度變化范圍較大,并且受紅外線、溫度的影響很小[7]。光照度檢測電路如圖3所示。
為了在現(xiàn)場實時監(jiān)控溫室里的溫濕度、光照度等環(huán)境量,顯示界面必不可少。常用的顯示方式有數(shù)碼管、液晶屏和點陣等。本系統(tǒng)要顯示的數(shù)據(jù)比較多,數(shù)碼管只能顯示單一數(shù)字,不能顯示出數(shù)據(jù)的變化趨勢,而TFT LCD液晶屏不僅能顯示不同顏色的漢字和數(shù)字,而且還能繪制出溫濕度、光照度的變化曲線,作為溫室監(jiān)控的顯示界面較為合適[8]。系統(tǒng)采用尺寸為3.2英寸、分辨率為240×320像素的液晶屏,液晶顯示電路如圖4所示。
智能溫室不僅需要實時監(jiān)視溫濕度、光照度等環(huán)境量,而且還需要對風扇、加熱器、除濕器、風機等進行控制。終端節(jié)點帶負載能力有限,輸出信號不足以驅(qū)動這些大功率器件,因此采用繼電器的方式來控制[9]。選用松樂直流5 V繼電器,最大承受10 A/30 V的直流電,能滿足系統(tǒng)設計要求??紤]到風機等大功率器件啟動時電流的影響,加入光耦來對信號進行隔離。繼電器輸出電路如圖5所示。
ZigBee網(wǎng)關(guān)數(shù)據(jù)傳輸?shù)暮诵木褪蔷W(wǎng)絡模塊。STM32單片機一般有2種方式接入以太網(wǎng):即軟件TCP/IP協(xié)議棧和硬件TCP/IP協(xié)議棧的方式。系統(tǒng)采用W5500以太網(wǎng)芯片來實現(xiàn)硬件協(xié)議棧方案,采用硬件協(xié)議棧能減輕單片機處理的數(shù)據(jù)量。W5500是Wiznet公司設計的全硬件協(xié)議棧芯片,具有超高的性價比。在使用過程中,不需要再植入軟件協(xié)議棧,大大降低了代碼量,同時具有較高的安全性[10]。用STM32控制W5500網(wǎng)絡模塊,用TCP Client的方式來接入互聯(lián)網(wǎng)。
W5500硬件電路如圖6所示。
系統(tǒng)中ZigBee芯片、傳感器、STM32單片機工作電壓均為3.3 V,而單片機對電壓要求較高,因此單獨采用穩(wěn)壓芯片為其供電。選擇2節(jié)鋰電池串聯(lián)來為系統(tǒng)提供電能, 由于系統(tǒng)正常工作的電流不是太大,選擇常用的AMS1117-3.3 V線性穩(wěn)壓芯片來轉(zhuǎn)換成需要的電壓[11]。AMS1117-3.3 V電源電路如圖7所示。
軟件系統(tǒng)包括兩大部分:第一部分是由ZigBee無線傳感網(wǎng)絡構(gòu)成的溫室數(shù)據(jù)采集軟件系統(tǒng),第二部分是以ZigBee網(wǎng)關(guān)為核心的數(shù)據(jù)監(jiān)控軟件系統(tǒng)。數(shù)據(jù)采集軟件系統(tǒng)主要有ZigBee組網(wǎng)、 無線通信、傳感器采集、 I/O輸出控制4個模塊組成。數(shù)據(jù)監(jiān)控軟件系統(tǒng)主要有MCU、以太網(wǎng)通信、LCD顯示、上位機監(jiān)控4個模塊組成[12]。軟件系統(tǒng)總體框架如圖8所示。
終端節(jié)點上的DHT11溫濕度傳感器與ZigBee進行通信的方式為串行單總線,通信1次的時間需要約4 ms,開始時主機發(fā)送1個下降沿啟動信號,傳感器響應該信號并從低功耗模式變?yōu)楦咚倌J?。DHT11將在啟動信號結(jié)束后輸出一個響應脈沖信號同時發(fā)送包含需要的5個字節(jié)的溫濕度數(shù)據(jù),完成一次信號采樣過程[13]。讀出完整的一幀數(shù)據(jù)格式為1個字節(jié)的濕度整數(shù),1個字節(jié)的濕度小數(shù),1個字節(jié)的溫度整數(shù),1個字節(jié)的溫度小數(shù),最后1個字節(jié)是校驗和。溫濕度程序流程如圖9所示。
光照度程序流程如圖10所示。
網(wǎng)關(guān)與協(xié)調(diào)器之間以串行方式進行數(shù)據(jù)傳輸,單片機每收到1字節(jié)的數(shù)據(jù)都會進入中斷進行判斷、讀取,直至完成1幀數(shù)據(jù)的接收并將其放在數(shù)據(jù)緩沖區(qū)。單片機通過W5500模塊將收到的1幀完整數(shù)據(jù)轉(zhuǎn)換成TCP/IP協(xié)議的數(shù)據(jù)格式并發(fā)送到WEB上,并在LCD上實時顯示數(shù)據(jù)及曲線,實現(xiàn)了本地和遠程可以同時監(jiān)控溫室環(huán)境因子的功能。網(wǎng)關(guān)主程序流程如圖11所示。
根據(jù)系統(tǒng)需求,溫室環(huán)境因子在上位機上以WEB的形式實時顯示數(shù)據(jù)和曲線。PHP是一種適合WEB開發(fā)的開源腳本語言,因此采用PHP作為上位機的編程語言。ZigBee網(wǎng)關(guān)與上位機之間使用TCP協(xié)議進行通信,網(wǎng)關(guān)TCP通信用C語言進行編程,上位機TCP通信用PHP語言進行編程,兩者編程語言不同,網(wǎng)關(guān)設備作為TCP Client,調(diào)用Connect函數(shù)接口,上位機作為TCP Server,調(diào)用Listen函數(shù)接口,通過調(diào)用Socket提供的函數(shù)接口來實現(xiàn)兩者間的通信。上位機登錄界面如圖12所示。
系統(tǒng)軟硬件測試完成后在南陽某溫室大棚放置2個終端節(jié)點對系統(tǒng)整體功能進行測試。終端液晶屏就地顯示結(jié)果如圖13所示,紅線代表溫度,綠線代表濕度,藍線代表光照度,在液晶屏上實時顯示了終端采集節(jié)點1、2的溫濕度和光照度,并且改變溫濕度和光照度時曲線有相應的變化,能反映出變化的趨勢。從系統(tǒng)整體測試結(jié)果來看,液晶屏能準確反映出溫室內(nèi)環(huán)境參數(shù)的變化趨勢。
通過遠端WEB頁面登錄上位機成功后可以查看不同時間的溫度、濕度和光照度的變化趨勢,溫度、濕度曲線、光照度曲線分別如圖14至圖16所示。
借助于ZigBee技術(shù),網(wǎng)關(guān)作為數(shù)據(jù)轉(zhuǎn)換中心,把溫室內(nèi)的環(huán)境因子無線發(fā)送到上位機,實現(xiàn)了溫室的智能遠程監(jiān)控功能,系統(tǒng)具有布線簡單、結(jié)構(gòu)合理、使用方便的特點。
利用DHT11溫濕度傳感器和BH1750FVI光照傳感器采集終端所在溫室的環(huán)境因子,并實現(xiàn)了溫室環(huán)境因子的無線遠距離傳送。
基于PHP和以太網(wǎng)開發(fā)了溫室環(huán)境人機交互界面,實現(xiàn)了能通過Web遠程監(jiān)控溫室環(huán)境參數(shù)。