張子華李曉月張林杰魏冉明張煜榮王啟璠馮凱祺
(1.北京工業(yè)大學(xué)材料與制造學(xué)部,北京 100124;2.北京亦莊數(shù)字基礎(chǔ)設(shè)施科技發(fā)展有限公司,北京 100176)
在傳統(tǒng)農(nóng)耕文明中,食物的生產(chǎn)依賴陽光、土壤,然而,由于自然災(zāi)害因素的影響,食物生產(chǎn)往往會(huì)受到極大的沖擊,尤其是城市地區(qū)的食品供應(yīng)。為了應(yīng)對(duì)這一挑戰(zhàn),植物工廠[1-3]的推廣應(yīng)用為糧食安全提供了一條新出路。植物工廠使用大量先進(jìn)技術(shù)[4-7]不僅可以大幅度提升糧食蔬菜的產(chǎn)能,還可以做到穩(wěn)定持續(xù)[8]的生產(chǎn)。
植物工廠是對(duì)傳統(tǒng)農(nóng)業(yè)生產(chǎn)方式的一種革新。植物工廠的高效生產(chǎn)離不開溫度、濕度、二氧化碳濃度等環(huán)境參數(shù)[9-11]的精準(zhǔn)控制,在達(dá)到所設(shè)定的環(huán)控條件后,植物工廠便能夠采用工廠化的生產(chǎn)方式進(jìn)行輪作式生產(chǎn)。但在此之前,在市面上還沒有完善的監(jiān)管工具,大多數(shù)植物工廠需要額外耗費(fèi)大量人力物力。為解決這些問題,本研究把單一的傳感器通過Arduino開發(fā)板進(jìn)行集成化操作,應(yīng)用物聯(lián)網(wǎng)[12-14]技術(shù)手段實(shí)時(shí)檢測(cè)每個(gè)傳感器的環(huán)境變量變動(dòng),實(shí)現(xiàn)更高效的環(huán)境變量監(jiān)測(cè)和提升農(nóng)業(yè)經(jīng)濟(jì)效益。
對(duì)于植物工廠環(huán)境變量參數(shù)監(jiān)測(cè),南京大學(xué)的趙云霞[15]教授指出,我國在植物工廠的植物栽培技術(shù)方面已經(jīng)非常成熟。無土栽培、水培等技術(shù)已經(jīng)完全應(yīng)用,但我國植物工廠卻面臨自動(dòng)化、智能化程度低,對(duì)外界環(huán)境控制有限,植物工廠技術(shù)體系尚不完善等問題。這一系列未解決的問題有待于植物工廠多環(huán)境變量智能監(jiān)測(cè)平臺(tái)的研究。
Dzaky等[16]研究了一套經(jīng)濟(jì)靈活的微型植物工廠以適應(yīng)城市地區(qū)環(huán)境,其傳感器和執(zhí)行器與Agrieye Cloud系統(tǒng)集成,用于監(jiān)測(cè)和控制,并可自主執(zhí)行數(shù)據(jù)檢索和驅(qū)動(dòng),Mini Plant Factory通過每5min自動(dòng)捕獲監(jiān)測(cè)數(shù)據(jù)進(jìn)行操作。Mulowayi等[17]則是針對(duì)植物工廠中的照明系統(tǒng)開發(fā)出“可移動(dòng)向下照明結(jié)合補(bǔ)光可調(diào)側(cè)式照明系統(tǒng)”(C-S)和無補(bǔ)光側(cè)式照明系統(tǒng)(N-S)。Nugroho等[18]等在植物工廠中采用了立體攝像機(jī)并且基于深度感知實(shí)現(xiàn)了植物生長監(jiān)測(cè)。蘇州大學(xué)的管理[19]基于LabVIEW平臺(tái)建立了植物生長環(huán)境檢測(cè)系統(tǒng),該系統(tǒng)對(duì)于提高單位面積的耕地作物產(chǎn)物、實(shí)行立體式的種植以及利用家庭庭院、室內(nèi)種植等具有重要指導(dǎo)意義。來自浙江大學(xué)的余洋[20]搭建了植物工廠系統(tǒng)作為實(shí)驗(yàn)平臺(tái),使用樹莓派作為主控制器,搭載多型傳感器,實(shí)現(xiàn)了對(duì)植物工廠環(huán)境的全面監(jiān)測(cè),并通過PWM驅(qū)動(dòng)信號(hào)實(shí)現(xiàn)了對(duì)多個(gè)設(shè)備的自動(dòng)調(diào)控,同時(shí)開發(fā)了上位機(jī)軟件系統(tǒng),可實(shí)時(shí)監(jiān)測(cè)環(huán)境參數(shù)的變化,發(fā)送異常數(shù)據(jù)提示短信,查詢歷史數(shù)據(jù)或調(diào)整控制參數(shù)。
綜上所述,本文旨在開發(fā)基于微控制器的環(huán)境監(jiān)測(cè)與控制系統(tǒng),其中包括下位機(jī)和上位機(jī)2部分。下位機(jī)是Arduino數(shù)據(jù)采集和環(huán)境控制技術(shù);上位機(jī)則是基于Java開發(fā)的Android移動(dòng)端APP,用于接收下位機(jī)發(fā)送的環(huán)境參數(shù)并以折線圖形式展示。同時(shí),上位機(jī)還能向下位機(jī)發(fā)送遠(yuǎn)程控制指令,實(shí)現(xiàn)對(duì)植物工廠環(huán)境的精確控制。
本系統(tǒng)總體分為下位機(jī)和上位機(jī)2個(gè)部分。
下位機(jī)數(shù)據(jù)采集模塊由通訊模塊、Arduino開發(fā)板、多路環(huán)境變量傳感器等模塊構(gòu)成,上位機(jī)客戶端是基于Java語言開發(fā)的Android APP。在該系統(tǒng)中,環(huán)境變量傳感器用于監(jiān)測(cè)6種環(huán)境參數(shù),并通過模擬信號(hào)的形式傳輸至Arduino開發(fā)板。Arduino開發(fā)板負(fù)責(zé)對(duì)接收到的模擬信號(hào)進(jìn)行解析和處理,并借助通訊模塊將經(jīng)過處理的模擬數(shù)值以無線信號(hào)的方式發(fā)送至上位機(jī)?;贘ava開發(fā)的Android客戶端實(shí)現(xiàn)了數(shù)據(jù)的接收、處理、實(shí)時(shí)顯示、控制和存儲(chǔ)等功能。通過后臺(tái)邏輯設(shè)計(jì),手機(jī)客戶端APP以簡潔的操作界面形式呈現(xiàn)給管理者。用戶只需安裝控制軟件并登錄系統(tǒng),即可對(duì)植物工廠內(nèi)的環(huán)境變量參數(shù)進(jìn)行智能監(jiān)管和控制。
圖1 植物工廠多變量環(huán)控系統(tǒng)總體設(shè)計(jì)
本研究旨在利用智能測(cè)控技術(shù),實(shí)現(xiàn)對(duì)植物工廠內(nèi)多個(gè)環(huán)境參數(shù)的監(jiān)測(cè)和調(diào)節(jié)。系統(tǒng)功能設(shè)計(jì)如下。
1.2.1 下位機(jī)Arduino模塊系統(tǒng)設(shè)計(jì)
下位機(jī)Arduino模塊系統(tǒng)主要包括2個(gè)功能部分:接收傳感器采集和發(fā)送的環(huán)境變量數(shù)據(jù)部分,以及控制植物工廠通風(fēng)系統(tǒng)、補(bǔ)光系統(tǒng)和照明系統(tǒng)的部分。具體架構(gòu)如圖2所示。在實(shí)現(xiàn)系統(tǒng)功能時(shí),導(dǎo)入傳感器的庫函數(shù),調(diào)用庫函數(shù),經(jīng)過對(duì)傳感器以及WiFi模塊的初始化送數(shù)據(jù)的函數(shù),將數(shù)據(jù)以字符串?dāng)?shù)組的形式向上位機(jī)發(fā)送。在設(shè)計(jì)控制功能時(shí),通過WiFi模塊接收和解碼下位機(jī)所發(fā)送的數(shù)據(jù),通過函數(shù)轉(zhuǎn)換將數(shù)字信號(hào)轉(zhuǎn)換成電信號(hào),對(duì)LED燈以及風(fēng)機(jī)模塊的舵機(jī)進(jìn)行控制,實(shí)現(xiàn)植物工廠對(duì)多變量環(huán)控系統(tǒng)中控制功能要求。
圖2 Arduino下位機(jī)系統(tǒng)架構(gòu)
1.2.2 上位機(jī)Android客戶端APP模塊設(shè)計(jì)
上位機(jī)部分主要對(duì)控制模塊、顯示模塊、設(shè)置模塊、數(shù)據(jù)庫進(jìn)行界面設(shè)計(jì)與開發(fā),具體功能框架如圖3所示。本系統(tǒng)在手機(jī)APP進(jìn)行多環(huán)境變量數(shù)據(jù)的實(shí)時(shí)更新與曲線化展示,方便植物工廠管理者實(shí)時(shí)監(jiān)測(cè)工廠內(nèi)各項(xiàng)變量參數(shù),從而進(jìn)行相應(yīng)操作,對(duì)植物工廠進(jìn)行精準(zhǔn)把控,滿足實(shí)際需求。
圖3 手機(jī)客戶端框架圖
在植物工廠多變量環(huán)境控制系統(tǒng)的設(shè)計(jì)中,使用多種傳感器、控制模塊和通信模塊,實(shí)現(xiàn)對(duì)植物工廠多個(gè)環(huán)境變量參數(shù)的采集、控制以及與Android上位機(jī)之間的數(shù)據(jù)交互。
Arduino是一款便捷靈活的開源電子原型平臺(tái),具有用戶范圍廣,可移植性高,安全性強(qiáng),免費(fèi)開源等特點(diǎn)。包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)2個(gè)部分;硬件部分是可以用來做電路連接的Arduino電路板;軟件部分是Arduino IDE軟件開發(fā)測(cè)試平臺(tái),即計(jì)算機(jī)中的程序開發(fā)環(huán)境。Arduino能通過各種各樣的傳感器來感知環(huán)境,再通過控制其他的裝置來反饋、影響環(huán)境。Arduino開發(fā)板上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器,實(shí)現(xiàn)對(duì)傳感器的數(shù)據(jù)采集以及其他裝置的反饋控制。
本系統(tǒng)采用Arduino Mega 2560開發(fā)板,如圖4所示。其基于ATmega 2560處理器,采用USB接口,具有16路模擬輸入和54路數(shù)字輸入/輸出口。Arduino Mega 2560可以自動(dòng)選擇3種供電方式:外部直流電源通過電源插座供電;電池連接電源連接器的GND和VIN引腳;USB接口直流供電。Arduino Mega 2560開發(fā)板具有4路UART接口,1個(gè)16MHz晶體振蕩器,1個(gè)USB口,1個(gè)電源插座,1個(gè)ICSP header和1個(gè)復(fù)位按鈕,具有支持1個(gè)主控板的所有資源。
具體規(guī)格參數(shù):工作電壓,5V;輸入電壓范圍,6~20V;推薦輸入電壓范圍,7~12V;I/O口的輸出電流,40mA;3.3V管腳的輸出電流,50mA;內(nèi)存空間,256KB;SRAM,8KB;EEPROM,4KB;時(shí)鐘頻率,16MHz。
圖4 Arduino Mega 2560開發(fā)板
植物生長環(huán)境中的環(huán)境變量參數(shù)會(huì)影響植物的生長。在植物工廠中主要對(duì)植物生長環(huán)境中的CO2濃度、有機(jī)物揮發(fā)物濃度、溫濕度、土壤濕度以及光照強(qiáng)度進(jìn)行監(jiān)測(cè)。本系統(tǒng)使用Arduino開發(fā)板連接SGP30傳感器、DHT11數(shù)字傳感器、土壤濕度傳感器和數(shù)字光照傳感器,以實(shí)現(xiàn)對(duì)環(huán)境變量的監(jiān)測(cè)功能。
SGP30傳感器是一款金屬氧化物氣體傳感器,內(nèi)置了4個(gè)氣體傳感元件。該傳感器具備完全校準(zhǔn)的空氣質(zhì)量輸出信號(hào)功能,如圖5所示。GP30的傳感部分基于金屬氧化物納米顆粒的加熱膜,目標(biāo)氣體會(huì)與金屬氧化物顆粒上吸附的氧氣發(fā)生反應(yīng),從而釋放出電子,導(dǎo)致由傳感器測(cè)量的金屬氧化物層的電阻發(fā)生改變。通過電路部分對(duì)電阻進(jìn)行檢測(cè)、信號(hào)處理與轉(zhuǎn)換,可以輸出:有機(jī)物揮發(fā)物濃度,量程為0~60000ppb;CO2濃度,量程為400~60000ppm。因此該傳感器可以用于本系統(tǒng)進(jìn)行CO2濃度與有機(jī)物揮發(fā)物濃度監(jiān)測(cè);DHT11數(shù)字傳感器是一款采用數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù)的溫濕度復(fù)合傳感器,如圖6所示。該傳感器包括1個(gè)電阻式測(cè)濕元件和1個(gè)電阻式熱敏測(cè)溫元件,精度高,具有已校準(zhǔn)的數(shù)字輸出信號(hào),在本系統(tǒng)中,利用DHT11數(shù)字傳感器來檢測(cè)環(huán)境的溫度和濕度。該傳感器的測(cè)量范圍為濕度20%~90% RH和溫度0~50℃,具有較高的分辨率,即濕度1%和溫度1℃。此外,傳感器的精度也相對(duì)較高,濕度精度為±5%,溫度精度為±2℃。土壤濕度傳感器是根據(jù)土壤水分含量與土壤電阻值之間的關(guān)系進(jìn)行設(shè)計(jì)的,如圖7所示,可以寬范圍監(jiān)測(cè)土壤的濕度,測(cè)量范圍為自定義的0%~100%,通過電位器調(diào)節(jié)控制相應(yīng)閾值,濕度低于設(shè)定值時(shí),傳感器輸出高電平,高于設(shè)定值時(shí),傳感器輸出低電平;數(shù)字光照傳感器是基于半導(dǎo)體的光電效應(yīng)原理設(shè)計(jì)的,集成了數(shù)字環(huán)境光傳感器電路的I2C總線接口,如圖8所示;此外,其光譜響應(yīng)接近視覺靈敏度的分光特性,具有明顯的紅外抑制作用,適合于獲取環(huán)境光數(shù)據(jù),在高分辨率(1~65535lx范圍)下檢測(cè)光照強(qiáng)度,調(diào)控系統(tǒng)。
圖5 SGP30傳感器
圖6 DHT11數(shù)字傳感器
圖7 土壤濕度傳感器
環(huán)境變量控制模塊包含通風(fēng)系統(tǒng),補(bǔ)光系統(tǒng)和照明系統(tǒng)3個(gè)部分。通風(fēng)系統(tǒng)通過搭載風(fēng)機(jī)模塊來實(shí)現(xiàn),模塊如圖9所示。植物工廠多變量環(huán)控系統(tǒng)啟動(dòng)運(yùn)行后風(fēng)機(jī)模塊一直處于通電狀態(tài)下,通過閉環(huán)控制實(shí)現(xiàn)對(duì)植物工廠中CO2與有機(jī)物揮發(fā)物濃度的動(dòng)態(tài)控制。當(dāng)CO2濃度或有機(jī)物揮發(fā)物濃度超過設(shè)定標(biāo)準(zhǔn)時(shí),系統(tǒng)產(chǎn)生脈寬,生成方波控制風(fēng)扇電機(jī)轉(zhuǎn)動(dòng);當(dāng)CO2濃度與有機(jī)物揮發(fā)物濃度均下降到標(biāo)準(zhǔn)值以下后,風(fēng)扇轉(zhuǎn)動(dòng)停止。補(bǔ)光系統(tǒng)是通過PWM脈寬調(diào)制控制LED燈的亮度的方式實(shí)現(xiàn),以閉環(huán)控制的方式使植物工廠中的光照強(qiáng)度保持在40000lx左右,模塊如圖10所示。照明系統(tǒng)則能夠?qū)崿F(xiàn)植物工廠照明需求,模塊如圖11所示。
圖9 通風(fēng)系統(tǒng)模塊
圖10 補(bǔ)光系統(tǒng)模塊
圖11 照明系統(tǒng)模塊
由于Arduino開發(fā)板不具備無線通訊功能,為實(shí)現(xiàn)本系統(tǒng)植物工廠的上位機(jī)與下位機(jī)之間的數(shù)據(jù)連接傳輸,本系統(tǒng)選用ESP8266WiFi模塊作為通信模塊,如圖12所示,采用局域網(wǎng)下的WiFi通信方式進(jìn)行通信,并通過Arduino開發(fā)板進(jìn)行驅(qū)動(dòng)。傳輸協(xié)議采用TCP協(xié)議,實(shí)現(xiàn)端對(duì)端的數(shù)據(jù)傳輸。TCP傳輸數(shù)據(jù)時(shí)通過超時(shí)重發(fā)、失序處理、重復(fù)處理和數(shù)據(jù)校驗(yàn)等方式確保植物工廠系統(tǒng)下位機(jī)所采集到的數(shù)據(jù)無差錯(cuò),不丟失,不重復(fù),且按序發(fā)送給上位機(jī),具有可靠性強(qiáng)的優(yōu)點(diǎn)。ESP8266WiFi模塊通過AT指令進(jìn)行初始化。進(jìn)行數(shù)據(jù)傳輸時(shí)通過ESP8266 AT指令可建立1個(gè)TCP服務(wù)器,且使之能連接多個(gè)TCP客戶端。通過將AT指令交給單片機(jī)進(jìn)行硬件串口編寫,可在通電后自動(dòng)創(chuàng)建1個(gè)WiFi熱點(diǎn),并將下位機(jī)采集到的環(huán)境變量數(shù)據(jù)以字符串?dāng)?shù)組的形式發(fā)送給上位機(jī)。
圖12 ESP8266WiFi模塊
植物工廠的多變量環(huán)控系統(tǒng)的顯示模塊包括2個(gè)部分:多環(huán)境變量實(shí)時(shí)顯示模塊和變量曲線顯示模塊。本系統(tǒng)加入變量曲線顯示模塊,將各變量參數(shù)進(jìn)行曲線化展示,能夠使系統(tǒng)管理者更加直觀地監(jiān)管、調(diào)控系統(tǒng)。
管理者需打開手機(jī)客戶端“植物工廠智能調(diào)控”APP,點(diǎn)擊如圖13a所示的跳轉(zhuǎn)界面,APP將根據(jù)后端預(yù)設(shè)端口號(hào)與下位機(jī)IP地址嘗試Socket連接,從而完成與下位機(jī)的通信連接。為實(shí)現(xiàn)植物工廠多變量環(huán)控系統(tǒng)與下位機(jī)的通信連接成功,管理者需要保證上位機(jī)客戶端ESP8266WiFi熱點(diǎn)與下位機(jī)處于同一局域網(wǎng)。
圖13 手機(jī)App系統(tǒng)界面
當(dāng)本系統(tǒng)與下位機(jī)成功建立通信,多環(huán)境變量顯示模塊將對(duì)由下位機(jī)發(fā)送的各環(huán)境變量數(shù)據(jù)進(jìn)行處理并實(shí)時(shí)更新顯示,在如圖13b所示的顯示界面中,6個(gè)顯示框分別用于實(shí)時(shí)更新顯示溫度、濕度、TVOC濃度、CO2濃度、土壤濕度和光照強(qiáng)度等變量參數(shù)。
當(dāng)6個(gè)顯示框分別顯示對(duì)應(yīng)變量數(shù)據(jù),在顯示界面任意點(diǎn)擊一個(gè)變量數(shù)據(jù),本系統(tǒng)將對(duì)這一環(huán)境變量參數(shù)進(jìn)行曲線化展示,并實(shí)時(shí)更新,如圖13c所示。其中,不同環(huán)境變量參數(shù)分別以不同顏色線條展示以便進(jìn)行區(qū)分,便于管理者更加直觀地了解植物環(huán)境變量參數(shù)的變化,以便管理者對(duì)植物工廠的各項(xiàng)環(huán)境參數(shù)進(jìn)行分析,從而進(jìn)行相應(yīng)的精準(zhǔn)調(diào)控。
圖14 通訊連接裝置
如圖14a所示,當(dāng)手機(jī)客戶端系統(tǒng)與下位機(jī)通信連接建立失敗,操控者需打開如圖14b所示“設(shè)置”界面,確認(rèn)端口號(hào)和IP地址是否與下位機(jī)保持一致,若不一致,操控者可以對(duì)端口號(hào)與IP地址進(jìn)行編輯,點(diǎn)擊“連接按鈕”即可實(shí)現(xiàn)手動(dòng)連接。因此,本系統(tǒng)能夠保證上位機(jī)的適配性與容錯(cuò)性。
植物工廠多變量環(huán)控系統(tǒng)控制模塊設(shè)計(jì)囊括植物工廠通風(fēng)系統(tǒng)、植物工廠照明系統(tǒng)以及植物工廠補(bǔ)光系統(tǒng)3部分。
各控制系統(tǒng)如圖15所示。在植物工廠環(huán)境CO2濃度過高時(shí),操控者可借植物工廠通風(fēng)系統(tǒng)控制舵機(jī)的啟動(dòng)與停止對(duì)環(huán)境中CO2濃度進(jìn)行調(diào)控;當(dāng)植物工廠中光照強(qiáng)度不足時(shí),管理者可在手機(jī)端APP提高植物工廠補(bǔ)光系統(tǒng)的光照強(qiáng)度對(duì)植物進(jìn)行多級(jí)補(bǔ)光,保證植物在最適宜光照條件下茁壯成長。
植物工廠多變量環(huán)控系統(tǒng)還具備數(shù)據(jù)存儲(chǔ)功能,采用輕量級(jí)SQLite數(shù)據(jù)庫來實(shí)現(xiàn)。本系統(tǒng)將從下位機(jī)收集到的6路變量參數(shù)存入SQLite數(shù)據(jù)庫中,以便進(jìn)行數(shù)據(jù)分析并提出相應(yīng)改良方案。SQLite數(shù)據(jù)庫是Android內(nèi)置數(shù)據(jù)庫,遵循ACID關(guān)系——事務(wù),具備持久性、原子性、隔離性、一致性,并且處理速度快,占用資源比重低,數(shù)據(jù)庫界面如圖16所示。
圖16 手機(jī)客戶端數(shù)據(jù)存儲(chǔ)
本文結(jié)合Arduino的下位機(jī)多環(huán)境變量參數(shù)采集系統(tǒng)及環(huán)境變量控制系統(tǒng)和Android開發(fā)的上位機(jī)多環(huán)境變量數(shù)據(jù)監(jiān)測(cè)及遠(yuǎn)程環(huán)境調(diào)控系統(tǒng),基于ESP8266WiFi模塊的無線通信技術(shù),實(shí)現(xiàn)對(duì)植物工廠內(nèi)多環(huán)境變量數(shù)據(jù)監(jiān)測(cè)、智能調(diào)控的功能,所應(yīng)用的數(shù)字技術(shù)將加速設(shè)施農(nóng)業(yè)各領(lǐng)域各環(huán)節(jié)的數(shù)字化改造,提高農(nóng)業(yè)生產(chǎn)效率,提高植物產(chǎn)能,實(shí)現(xiàn)農(nóng)業(yè)的精準(zhǔn)種植,機(jī)械化管理,為設(shè)施農(nóng)業(yè)生產(chǎn)管理提供智能決策方案,為后續(xù)植物工廠多變量環(huán)控系統(tǒng)的研究提供一定的參考。