賴祿安,陳婷,常杰,王浩
(650500 云南省 昆明市 昆明理工大學(xué) 機(jī)電工程學(xué)院)
農(nóng)業(yè)是社會(huì)穩(wěn)定與發(fā)展的基礎(chǔ)。隨著我國(guó)城市化發(fā)展和全球氣候變暖,農(nóng)業(yè)面臨諸如土地資源緊缺、生態(tài)環(huán)境壓力大等突出問(wèn)題,農(nóng)產(chǎn)品的產(chǎn)量和品質(zhì)成為農(nóng)民和政府關(guān)注的焦點(diǎn)。越來(lái)越多的種植戶使用溫室大棚種植農(nóng)作物,以提高農(nóng)產(chǎn)品的產(chǎn)量和品質(zhì),但大部分還是依靠種植人員的經(jīng)驗(yàn)進(jìn)行粗放式管理,沒(méi)有發(fā)揮溫室大棚最大的作用。
互聯(lián)網(wǎng)等現(xiàn)代信息技術(shù)的發(fā)展推動(dòng)了傳統(tǒng)農(nóng)業(yè)的轉(zhuǎn)型升級(jí),溫室大棚中安裝監(jiān)控系統(tǒng)已隨處可見(jiàn)。基于物聯(lián)網(wǎng)的溫室大棚監(jiān)控系統(tǒng)具有環(huán)境參數(shù)精準(zhǔn)采集、實(shí)時(shí)監(jiān)控、減少勞動(dòng)力和成本投入的特點(diǎn)[1-4]。孫陽(yáng)等[5]基于物聯(lián)網(wǎng)技術(shù),設(shè)計(jì)了對(duì)農(nóng)產(chǎn)品生長(zhǎng)環(huán)境監(jiān)控和溯源的物聯(lián)網(wǎng)植物工廠監(jiān)管系統(tǒng)。韓毅等[6]基于物聯(lián)網(wǎng)技術(shù)開(kāi)發(fā)了日光溫室智能監(jiān)控系統(tǒng)。ZigBee 無(wú)線通信技術(shù)被應(yīng)用到溫室大棚的監(jiān)控系統(tǒng)中,提高了系統(tǒng)的精度、穩(wěn)定性[7-10]。
數(shù)字孿生技術(shù)的概念被Grieves 提出后,經(jīng)過(guò)十幾年的發(fā)展,數(shù)字孿生技術(shù)已被廣泛應(yīng)用于各行各業(yè)。陶飛等[11]提出數(shù)字孿生五維模型,探討了其在衛(wèi)星/空間通信網(wǎng)絡(luò)等10 個(gè)領(lǐng)域的應(yīng)用思路與方案,同時(shí)也指出了在農(nóng)業(yè)領(lǐng)域的應(yīng)用。雖然數(shù)字孿生的應(yīng)用熱點(diǎn)在制造業(yè),但是還是有學(xué)者將數(shù)字孿生技術(shù)應(yīng)用到農(nóng)業(yè)領(lǐng)域。毛雨晗[12]研究了溫室自動(dòng)化多層栽培裝備數(shù)字孿生監(jiān)控方法,實(shí)現(xiàn)了環(huán)境數(shù)據(jù)的監(jiān)測(cè)與溫室場(chǎng)景的可視化;梁晨光[13]基于數(shù)字孿生技術(shù)理論搭建了稻田環(huán)境監(jiān)測(cè)系統(tǒng),解決了農(nóng)業(yè)上因環(huán)境因素不確定性帶來(lái)的數(shù)據(jù)誤差問(wèn)題;王志強(qiáng)等[14]將數(shù)字孿生與區(qū)塊鏈技術(shù)結(jié)合,以金銀花采摘應(yīng)用場(chǎng)景對(duì)該系統(tǒng)進(jìn)行了設(shè)計(jì);顧生浩[15]等探討了數(shù)字孿生系統(tǒng)在農(nóng)業(yè)生產(chǎn)中的應(yīng)用,為推進(jìn)我國(guó)農(nóng)業(yè)生產(chǎn)智能化提供了參考。
綜上所述,基于數(shù)字孿生的溫室大棚可視化監(jiān)控系統(tǒng)目前還沒(méi)有得到較多應(yīng)用,數(shù)字孿生溫室大棚的應(yīng)用可以實(shí)時(shí)監(jiān)測(cè)溫室大棚環(huán)境信息,查詢歷史環(huán)境信息,提高管理效率,為種植戶提供種植參考依據(jù),同時(shí)場(chǎng)景漫游查看農(nóng)作物信息,比傳統(tǒng)的監(jiān)控系統(tǒng)更具優(yōu)勢(shì)。
目前,市面上的溫室大棚監(jiān)控系統(tǒng)雖然實(shí)現(xiàn)了環(huán)境監(jiān)控、數(shù)據(jù)展示、故障預(yù)警等功能,但是還未實(shí)現(xiàn)虛實(shí)映射,用戶使用體驗(yàn)感較低,基于數(shù)字孿生的溫室大棚可視化監(jiān)控系統(tǒng)恰好解決了這一問(wèn)題。數(shù)字孿生溫室大棚是溫室大棚物理實(shí)體、虛擬實(shí)體、孿生數(shù)據(jù)、服務(wù)和連接的集成融合,溫室大棚物理實(shí)體和溫室大棚虛擬實(shí)體通過(guò)連接進(jìn)行孿生數(shù)據(jù)傳輸,服務(wù)連接孿生數(shù)據(jù)實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)交互和真實(shí)映射。本文通過(guò)可視化監(jiān)控從幾何維度展現(xiàn)數(shù)字孿生溫室大棚,并從監(jiān)控需求出發(fā),建立了溫室大棚可視化監(jiān)控系統(tǒng)五維模型,如圖1 所示。
圖1 溫室大棚可視化監(jiān)控系統(tǒng)五維模型Fig.1 Five dimensional model of visual monitoring system for greenhouse
溫室大棚數(shù)字孿生可視化監(jiān)控系統(tǒng),要求能對(duì)溫室大棚的環(huán)境參數(shù)進(jìn)行狀態(tài)監(jiān)控并通過(guò)界面展示實(shí)時(shí)、歷史環(huán)境數(shù)據(jù)信息、溫室大棚三維環(huán)境、警報(bào)信息和場(chǎng)景漫游。
基于數(shù)字孿生的溫室大棚可視化監(jiān)控系統(tǒng)分為2 部分:數(shù)字孿生可視化展示和場(chǎng)景漫游功能,功能框圖如圖2 所示。
圖2 系統(tǒng)功能框圖Fig.2 System function block diagram
數(shù)字孿生可視化展示包含實(shí)時(shí)環(huán)境參數(shù)可視化、歷史環(huán)境參數(shù)可視化、溫室大棚三維環(huán)境可視化和警報(bào)信息。實(shí)時(shí)環(huán)境參數(shù)可視化功能實(shí)時(shí)展示傳感器獲取得到的環(huán)境數(shù)據(jù)參數(shù);歷史環(huán)境參數(shù)展示功能對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的環(huán)境數(shù)據(jù)參數(shù)進(jìn)行展示;溫室大棚三維環(huán)境展示是根據(jù)實(shí)際溫室大棚的建筑結(jié)構(gòu)、布局建立的虛擬溫室大棚三維模型場(chǎng)景,包含了各類農(nóng)作物,以三維模型的形式進(jìn)行1∶1的展示,以及溫室大棚環(huán)境參數(shù)不適合農(nóng)作物生長(zhǎng)則在界面上顯示警報(bào)信息。
數(shù)字孿生場(chǎng)景漫游包含場(chǎng)景漫游功能,用戶可使用鼠標(biāo)在主界面和歷史數(shù)據(jù)界面進(jìn)行場(chǎng)景漫游,查看溫室大棚的農(nóng)作物信息,使用戶如同身臨其境。
針對(duì)溫室大棚可視化監(jiān)控系統(tǒng)的功能需求,對(duì)溫室大棚可視化監(jiān)控系統(tǒng)進(jìn)行了總體設(shè)計(jì)。本文采用Uinty3D 引擎的C/S 兩層架構(gòu),服務(wù)端采用MySQL 數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),數(shù)據(jù)庫(kù)中存儲(chǔ)了溫室大棚的環(huán)境參數(shù)信息,通過(guò)編輯C#腳本連接MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)Unity3D 與數(shù)據(jù)的交互和顯示。
本系統(tǒng)使用Arduino UNO 開(kāi)發(fā)板讀取傳感器的數(shù)據(jù),采集溫室大棚的空氣溫濕度、光照強(qiáng)度、土壤濕度等環(huán)境參數(shù)數(shù)據(jù)。Arduino UNO 開(kāi)發(fā)板如圖3 所示,選用的傳感器如圖4 所示。
圖3 Arduino 開(kāi)發(fā)板Fig.3 Arduino development board
圖4 傳感器Fig.4 Sensor
(1)空氣溫濕度傳感器的選擇。本文選用AM2301A 型溫濕度傳感器,其溫度測(cè)量范圍為-40~+80 ℃,精度為±0.5 ℃;濕度測(cè)量范圍為0~99.9% RH,精度為±3% RH。
(2)光照傳感器的選擇。選用GY-302 光強(qiáng)度光照度模塊傳感器,測(cè)量范圍為0~65 535 Lux。
(3)土壤濕度傳感器的選擇。選用土壤濕度傳感器模塊4 線制,其輸出值有2 種類型。當(dāng)土壤濕度低于設(shè)定的閾值時(shí),DO 輸出高電平,同時(shí)其模塊的提示燈會(huì)變亮;當(dāng)濕度高于設(shè)定的閾值時(shí),DO 輸出低電平,同時(shí)其模塊的提示燈會(huì)變亮。該型號(hào)傳感器的工作電壓為3.3~5.0 V,其測(cè)量范圍也有所不同。當(dāng)接通3 V 電壓,空氣中AO 讀取的值最大為695,浸泡在水里的最小值245;當(dāng)接通5 V 電壓時(shí),空氣中AO 讀取的值最大為1 023,浸泡在水里的最小值245。
數(shù)字孿生完美實(shí)現(xiàn)了現(xiàn)實(shí)世界與虛擬世界的虛實(shí)交互,而三維模型是對(duì)現(xiàn)實(shí)世界對(duì)象進(jìn)行忠實(shí)映射的載體,是數(shù)字孿生的骨骼,因此模型的逼真程度決定了溫室大棚數(shù)字孿生系統(tǒng)的使用體驗(yàn)。本文使用Unity 3D 中Asset Store 的溫室大棚模型,并結(jié)合實(shí)際研究?jī)?nèi)容對(duì)模型進(jìn)行適當(dāng)修改,使物理實(shí)體與虛擬實(shí)體盡可能保持一致,提高數(shù)字孿生的溫室大棚可視化監(jiān)控系統(tǒng)的逼真程度,增加用戶的體驗(yàn)感。溫室大棚模型如圖5 所示。
圖5 溫室大棚模型Fig.5 Greenhouse model
在Arduino IDE 上編寫(xiě)代碼,驗(yàn)證無(wú)誤后將代碼上傳(燒錄)到Arduino UNO 開(kāi)發(fā)板,通過(guò)Arduino IDE串口監(jiān)視器即可查看實(shí)時(shí)的環(huán)境數(shù)據(jù),如圖6 所示。編寫(xiě)的核心代碼如下:
圖6 串口監(jiān)視器信息Fig.6 Serial monitor information
由于采集到的溫室大棚環(huán)境數(shù)據(jù)需要和Unity3D 游戲引擎實(shí)時(shí)交互、傳輸數(shù)據(jù),而Arduino IDE 串口監(jiān)視器只能查看實(shí)時(shí)的環(huán)境數(shù)據(jù)并不能存儲(chǔ)數(shù)據(jù),因此需要將采集得到的環(huán)境數(shù)據(jù)進(jìn)行存儲(chǔ),小型關(guān)系型的MySQL 數(shù)據(jù)庫(kù)是最好的選擇。在Python 文件中導(dǎo)入serial、pymysql 庫(kù)配置環(huán)境信息,編寫(xiě)代碼實(shí)時(shí)讀取串口數(shù)據(jù),最后將串口數(shù)據(jù)保存在MySQL數(shù)據(jù)庫(kù)中。數(shù)據(jù)結(jié)構(gòu)表如圖7所示。
圖7 數(shù)據(jù)結(jié)構(gòu)表Fig.7 Data structure table
監(jiān)控系統(tǒng)使用Unity3D 游戲引擎對(duì)UI 界面布局。在場(chǎng)景中創(chuàng)建UI 組件后,該組件自動(dòng)放置在Canvas 組件中,系統(tǒng)也會(huì)自動(dòng)創(chuàng)建一個(gè)EventSystem 組件。Unity3D 的常見(jiàn)組件類型有Image 組件、Text 組件、Button 組件、Toggle 組件、Slider 組件、Input Field 組件等,根據(jù)UI 界面的要求,將各組件組合使用、設(shè)置UI 組件的參數(shù)完成UI 界面的開(kāi)發(fā)工作。本文的系統(tǒng)UI 界面包含開(kāi)始界面、主界面和歷史數(shù)據(jù)界面。
UI 界面開(kāi)發(fā)完成后,創(chuàng)建編輯C#腳本使Unity3D 獲取MySQL 數(shù)據(jù)庫(kù)的數(shù)據(jù),通過(guò)自帶的Update 函數(shù)將溫室大棚的環(huán)境參數(shù)實(shí)時(shí)顯示到UI主界面上,進(jìn)而實(shí)現(xiàn)在主界面上實(shí)時(shí)查看溫室大棚的環(huán)境參數(shù)信息和警報(bào)信息;通過(guò)C#腳本獲取鼠標(biāo)的輸入,使得在主界面和歷史數(shù)據(jù)界面都具有場(chǎng)景漫游功能,實(shí)現(xiàn)溫室大棚三維環(huán)境的可視化,查看溫室大棚的農(nóng)作物信息。查閱文獻(xiàn)資料設(shè)定警報(bào)信息的預(yù)警界限范圍:溫度18~37℃,空氣濕度50~85 RH,光照2 000~10 000 Lux,超出此范圍均有警報(bào)信息。
系統(tǒng)設(shè)計(jì)完成后對(duì)系統(tǒng)進(jìn)行測(cè)試,以驗(yàn)證其穩(wěn)定性、可靠性。設(shè)置每秒獲取一次傳感器數(shù)據(jù)。將傳感器置于溫室大棚適當(dāng)位置,打開(kāi)系統(tǒng)運(yùn)行測(cè)試。為了檢驗(yàn)測(cè)試性能,在試驗(yàn)中人為調(diào)節(jié)溫度、濕度和光照強(qiáng)度,以檢驗(yàn)環(huán)境參數(shù)變化時(shí)系統(tǒng)的靈敏度。測(cè)試結(jié)果表明,系統(tǒng)能夠?qū)崿F(xiàn)對(duì)溫室大棚的溫濕度、光照強(qiáng)度等參數(shù)實(shí)時(shí)監(jiān)測(cè),超出預(yù)警范圍發(fā)出警報(bào)信息,能在系統(tǒng)內(nèi)實(shí)現(xiàn)漫游功能,系統(tǒng)性能、數(shù)據(jù)存儲(chǔ)占用也符合要求。系統(tǒng)主界面如圖8所示,歷史界面數(shù)據(jù)如圖9 所示。
圖8 系統(tǒng)主界面Fig.8 System main interface
圖9 歷史數(shù)據(jù)界面Fig.9 Historical data interface
本文結(jié)合數(shù)字孿生技術(shù)設(shè)計(jì)實(shí)現(xiàn)了溫室大棚可視化監(jiān)控系統(tǒng),通過(guò)傳感器采集溫室大棚環(huán)境數(shù)據(jù)并保存到MySQL 數(shù)據(jù)庫(kù),在Unity 3D 引擎中編輯C#腳本連接MySQL 數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)的交互顯示。系統(tǒng)可方便種植戶實(shí)時(shí)監(jiān)控溫室大棚環(huán)境,查看歷史數(shù)據(jù),發(fā)出警報(bào)信息,讓種植戶及時(shí)決策調(diào)節(jié)環(huán)境參數(shù),促進(jìn)作物在最佳環(huán)境中健康生長(zhǎng)。種植戶可將溫室大棚的環(huán)境數(shù)據(jù)發(fā)送給專業(yè)機(jī)構(gòu)分析、整理,進(jìn)一步提高溫室大棚農(nóng)作物的產(chǎn)量和品質(zhì)。本文只是實(shí)現(xiàn)了溫室大棚的可視化監(jiān)控,并沒(méi)有與大棚的灌溉控制系統(tǒng)等進(jìn)行連接,不能實(shí)現(xiàn)“以虛控實(shí)”,此外數(shù)據(jù)的傳輸還是采用傳統(tǒng)的纜線連接。下一步研究將采用藍(lán)牙傳輸數(shù)據(jù),同時(shí)接入溫室大棚的控制系統(tǒng),實(shí)現(xiàn)真正的以虛控實(shí)。