左志宇,卓敏敏,毛罕平,譚 潔,唐學(xué)平,張文忠,趙 常
(1.江蘇大學(xué) 現(xiàn)代農(nóng)業(yè)裝備與技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 鎮(zhèn)江 212013;2.江蘇白雪電器股份有限公司,江蘇 蘇州 215500)
近年來(lái),由于生態(tài)環(huán)境惡化、自然災(zāi)害頻繁、傳統(tǒng)農(nóng)業(yè)種植方式生產(chǎn)效率低和生產(chǎn)成本高,使得農(nóng)業(yè)發(fā)展面臨著新的挑戰(zhàn)。因此,如何利用設(shè)施農(nóng)業(yè)技術(shù)以最少的能源、原料和人力進(jìn)行高品質(zhì)植物的大規(guī)模生產(chǎn)將是設(shè)施農(nóng)業(yè)研究的主要方向[1-2]。
作為科學(xué)技術(shù)發(fā)展到一定階段的必然產(chǎn)物,植物工廠應(yīng)運(yùn)而生。植物工廠( Plant Factory)的概念最早是由日本提出來(lái)的,根據(jù)日本植物工廠學(xué)會(huì)的解釋?zhuān)参锕S是通過(guò)設(shè)施內(nèi)高精度環(huán)境控制實(shí)現(xiàn)農(nóng)作物周年連續(xù)生產(chǎn)的高效農(nóng)業(yè)系統(tǒng),受到各國(guó)的普遍關(guān)注[3-5];但植物工廠體積龐大,能耗較高,操作不方便,不適合家庭使用。微型植物工廠將植物工廠技術(shù)進(jìn)一步濃縮,集成在一個(gè)冰箱大小的密閉環(huán)境里,通過(guò)智能自動(dòng)控制系統(tǒng)控制作物生長(zhǎng)的環(huán)境,為其提供適宜的光照、溫度、濕度條件及成分配比合理的營(yíng)養(yǎng)液等[6-8]。這種高端栽培模式的興起,使蔬菜生產(chǎn)、消費(fèi)零距離,不僅提供綠色無(wú)公害的蔬菜,為城市居民生活帶來(lái)極大方便,而且可以降低室內(nèi)二氧化碳、增加氧氣,也可以作為綠色裝飾,美化家居,增添了居民的生活樂(lè)趣[9-10]。
設(shè)計(jì)合理高效的控制系統(tǒng),使其內(nèi)部作物始終處于適宜的生長(zhǎng)環(huán)境,是微型植物工廠研制的關(guān)鍵所在。為此,設(shè)計(jì)了一款基于嵌入式平臺(tái)的智能控制系統(tǒng),以STM32F407單片機(jī)為核心,采用LCD液晶屏和獨(dú)立按鍵進(jìn)行人機(jī)交互,為作物生長(zhǎng)提供適宜的生長(zhǎng)環(huán)境。
控制系統(tǒng)主要由基于STM32F407單片機(jī)的主控單元和基于STC單片機(jī)的執(zhí)行單元組成。主控單元主要實(shí)現(xiàn)數(shù)據(jù)采集和處理、數(shù)據(jù)存儲(chǔ)、參數(shù)設(shè)置、控制決策、超限報(bào)警、與執(zhí)行單元之間的信息交互、與遠(yuǎn)程控制端的無(wú)線通信等功能,包括微控制器模塊、數(shù)據(jù)采集模塊、時(shí)鐘模塊、攝像頭模塊、存儲(chǔ)模塊、報(bào)警模塊、通信模塊及網(wǎng)絡(luò)模塊等;執(zhí)行單元主要實(shí)現(xiàn)與主控單元的通信和驅(qū)動(dòng)執(zhí)行機(jī)構(gòu),包括壓縮機(jī)、加熱板、風(fēng)機(jī)及進(jìn)水閥等。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
微型植物工廠控制系統(tǒng)工作原理:
1)LCD19264液晶屏和獨(dú)立式鍵盤(pán)作為人機(jī)交互模塊,實(shí)現(xiàn)微型植物工廠系統(tǒng)參數(shù)設(shè)置和顯示、執(zhí)行機(jī)構(gòu)狀態(tài)查看和設(shè)置;
2)數(shù)據(jù)采集模塊將采集到的環(huán)境信息輸送至主控制器進(jìn)行處理,根據(jù)調(diào)控策略,確定相應(yīng)執(zhí)行機(jī)構(gòu)的運(yùn)行狀態(tài),通過(guò)RS485總線發(fā)送到執(zhí)行單元,經(jīng)過(guò)隔離放大,驅(qū)動(dòng)相應(yīng)執(zhí)行機(jī)構(gòu)動(dòng)作;
3)采用OV2640攝像頭監(jiān)控作物,系統(tǒng)定時(shí)獲取照片發(fā)送至遠(yuǎn)程控制端;
4)網(wǎng)絡(luò)通信采用ESP8266串口轉(zhuǎn)WIFI網(wǎng)絡(luò)模塊,實(shí)現(xiàn)微型植物工廠與遠(yuǎn)程控制端的數(shù)據(jù)傳輸。
主控單元的主控制器選用STM32F407ZGT6單片機(jī)。該芯片集成 FPU 和 DSP 指令,工作頻率達(dá)168MHz,具有 192、1024kb FLASH,以及I2 C、 SPI、 USART、DMA、FSMC、 SDIO 、DCMI等接口模塊[11],能滿足系統(tǒng)的工作要求。
執(zhí)行單元選用宏晶公司STC系列STC89C54RD+芯片。該芯片是高速、高可靠、低功耗、超強(qiáng)抗干擾的增強(qiáng)型8051單片機(jī),工作頻率達(dá)80MHz,內(nèi)部包括16kB的Flash程序存儲(chǔ)器ROM、1kB的數(shù)據(jù)存儲(chǔ)器RAM,能夠滿足執(zhí)行機(jī)構(gòu)驅(qū)動(dòng)要求。
人機(jī)交互模塊包含液晶屏和按鍵兩個(gè)部分。液晶屏選用19264并行LCD,用于顯示系統(tǒng)設(shè)定參數(shù)、作物信息、環(huán)境檢測(cè)信息、系統(tǒng)工作狀態(tài)和系統(tǒng)時(shí)間等;按鍵采用獨(dú)立按鍵,包括功能菜單鍵、確認(rèn)退出鍵、左鍵、右鍵、上鍵和下鍵等6個(gè)按鍵。主要完成的功能如下:
1)設(shè)置環(huán)境因子、時(shí)間等參數(shù);
2)選擇作物的種類(lèi)、工作模式;
3)查看執(zhí)行機(jī)構(gòu)的運(yùn)行狀態(tài)。
數(shù)據(jù)采集模塊主要包括溫濕度傳感器、液位傳感器和圖像傳感器。
溫濕度傳感器選用AM2302數(shù)字溫濕度傳感器。這是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,包括電容式感濕元件和 DS18B20 感溫器件,并與高性能 8 位單片機(jī)相連接,采樣信息以串行通信方式傳輸。
液位傳感器采用側(cè)裝式浮球開(kāi)關(guān),利用浮球內(nèi)的磁鐵吸引磁簧開(kāi)關(guān)的閉合,產(chǎn)生開(kāi)關(guān)動(dòng)作;浮球位置隨營(yíng)養(yǎng)液液面高度變化,從而起到檢測(cè)液位的功能。
圖像傳感器采用OmniVision公司OV2640芯片,這是一顆 1/4 寸的 CMOS UXGA( 1632*1232)圖像傳感器。該傳感器體積小、工作電壓低,通過(guò)SCCB總線控制,支持圖像壓縮,可通過(guò)STM32F4自帶的數(shù)字?jǐn)z像頭(DCMI)接口輸出JPEG圖像數(shù)據(jù)流。由于傳感器本身接口比較復(fù)雜,本系統(tǒng)選用成型的OV2640攝像頭模塊來(lái)對(duì)微型植物工廠內(nèi)部的植株生長(zhǎng)情況進(jìn)行記錄。
網(wǎng)絡(luò)模塊用于實(shí)現(xiàn)微型植物工廠內(nèi)部的遠(yuǎn)程監(jiān)控和通信。本系統(tǒng)選用ESP8266串口WiFi模塊。ESP8266是樂(lè)鑫公司生產(chǎn)的低功耗WIFI芯片,內(nèi)置32位CPU,支持串口透明數(shù)據(jù)傳輸,內(nèi)置TCP/IP協(xié)議棧和IEEE802.11協(xié)議棧,能夠獨(dú)立運(yùn)行,也可以作為從機(jī)搭載于其它主機(jī)MCU運(yùn)行。模塊支持3種工作模式,可快速構(gòu)建數(shù)據(jù)傳輸方案,接入互聯(lián)網(wǎng)傳輸數(shù)據(jù),滿足系統(tǒng)設(shè)計(jì)的要求。實(shí)物如圖2所示。
圖2 ESP8266模塊
配置ESP8266芯片工作在Station模式,VCC、GND、UTXD和URXD 4個(gè)引腳和STM32F407單片機(jī)相應(yīng)引腳連接,電路原理如圖3所示。STM32F407通過(guò)串口與ESP8266通信,處理接收到的指令數(shù)據(jù)。當(dāng)微型植物工廠設(shè)定參數(shù)或者設(shè)備工作狀態(tài)發(fā)生改變時(shí),STM32F407單片機(jī)通過(guò)串口將數(shù)據(jù)發(fā)送給ESP8266,ESP8266轉(zhuǎn)發(fā)到服務(wù)器;如果用戶(hù)或?qū)<彝ㄟ^(guò)手機(jī)端或電腦端對(duì)微型植物工廠進(jìn)行控制,將控制數(shù)據(jù)發(fā)送給ESP8266,ESP8266轉(zhuǎn)發(fā)到STM32F407單片機(jī),執(zhí)行相應(yīng)的指令操作,實(shí)現(xiàn)對(duì)微型植物工廠內(nèi)部的遠(yuǎn)程決策和托管服務(wù)。
圖3 網(wǎng)絡(luò)模塊電路圖
微型植物工廠的執(zhí)行機(jī)構(gòu)主要包括降溫設(shè)備、加熱設(shè)備、內(nèi)空氣循環(huán)設(shè)備、營(yíng)養(yǎng)液循環(huán)設(shè)備、換新風(fēng)設(shè)備及補(bǔ)光設(shè)備等。
降溫設(shè)備由壓縮機(jī)與散布在機(jī)器內(nèi)表面的冷凝管及兩側(cè)的風(fēng)機(jī)等構(gòu)成。壓縮機(jī)放置在機(jī)器的底部;加溫設(shè)備由3塊加熱板構(gòu)成,放置于機(jī)器的左側(cè);內(nèi)空氣循環(huán)設(shè)備為3個(gè)內(nèi)循環(huán)風(fēng)機(jī),放置于每層栽培區(qū)的左側(cè);營(yíng)養(yǎng)液循環(huán)設(shè)備包括水泵、3個(gè)進(jìn)水閥(放置于箱體左側(cè))、水消毒紫外燈管(放置于箱體左側(cè))和3個(gè)出水閥(放置于箱體右側(cè));換新風(fēng)設(shè)備由增氧泵和空氣消毒紫外燈管組成,分別放置在機(jī)器的底部和左側(cè);補(bǔ)光設(shè)備為紅藍(lán)配比5:1的LED生長(zhǎng)燈,每層栽培區(qū)頂部放3支,共9支。各執(zhí)行機(jī)構(gòu)的參數(shù)和功能如表1所示。
表1 執(zhí)行機(jī)構(gòu)的參數(shù)和功能描述
執(zhí)行機(jī)構(gòu)均采用開(kāi)關(guān)量控制。由于STM32F407單片機(jī)的GPIO口不能直接驅(qū)動(dòng)設(shè)備,故在GPIO口與執(zhí)行機(jī)構(gòu)之間增加光耦、達(dá)林頓驅(qū)動(dòng)電路和繼電器,利用光耦隔離強(qiáng)電設(shè)備在啟動(dòng)和關(guān)閉過(guò)程中電流波動(dòng)對(duì)系統(tǒng)整體穩(wěn)定性的影響;達(dá)林頓驅(qū)動(dòng)電路增強(qiáng)GPIO口輸出信號(hào),驅(qū)動(dòng)繼電器,控制執(zhí)行機(jī)構(gòu)動(dòng)作。
控制系統(tǒng)軟件采用模塊化設(shè)計(jì)方法,各模塊之間既相互獨(dú)立,又協(xié)同工作。控制單元軟件是整個(gè)微型植物工廠控制系統(tǒng)的核心部分,主要完成環(huán)境參數(shù)的實(shí)時(shí)顯示、參數(shù)設(shè)置、數(shù)據(jù)信息采集、智能控制、超限報(bào)警及數(shù)據(jù)傳輸?shù)裙δ?;?zhí)行單元軟件完成與控制單元的信息交互和驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)。
當(dāng)系統(tǒng)沒(méi)有進(jìn)行按鍵操作時(shí),LCD19264主界面會(huì)循環(huán)顯示作物名稱(chēng)、種植顆數(shù)、當(dāng)前溫濕度、工作模式、設(shè)定溫濕度及當(dāng)前工作狀態(tài)等信息;當(dāng)系統(tǒng)的功能菜單鍵被按下,液晶屏進(jìn)入功能選擇界面,包括執(zhí)行機(jī)構(gòu)設(shè)置、作物信息設(shè)置、控制參數(shù)設(shè)置和系統(tǒng)信息設(shè)置4個(gè)選項(xiàng),分別點(diǎn)擊4個(gè)選項(xiàng)可進(jìn)入相應(yīng)參數(shù)的設(shè)置界面,通過(guò)點(diǎn)擊系統(tǒng)的確認(rèn)退出鍵返回到上一層界面。系統(tǒng)人機(jī)交互界面的主框圖如圖4所示。
圖4 系統(tǒng)人機(jī)交互界面主框圖
Modbus協(xié)議物理層選用RS485標(biāo)準(zhǔn),采用一對(duì)一主從方式。主控單元作為主機(jī),執(zhí)行單元作為從機(jī),使用Modbus03(讀取保持寄存器)和16(預(yù)置多寄存器)功能碼。系統(tǒng)的典型數(shù)據(jù)幀:
1)查詢(xún)執(zhí)行機(jī)構(gòu)工作狀態(tài)。
主機(jī)發(fā)送:01 03 00 00 00 02 C4 0B
從機(jī)響應(yīng):01 03 04 00 00 00 00 FA 3
2)發(fā)送執(zhí)行機(jī)構(gòu)控制指令。
主機(jī)發(fā)送:01 10 00 02 00 02 00 01 00 01 26 02
從機(jī)響應(yīng):01 10 00 02 00 02 E0 08
以執(zhí)行單元為例,系統(tǒng)通信過(guò)程可簡(jiǎn)單描述為:程序開(kāi)始運(yùn)行后,初始化串口,設(shè)置通信參數(shù);程序初始化完成后,不停地查詢(xún)是否有接收中斷,同時(shí)在主函數(shù)中調(diào)用串口通信處理函數(shù)。執(zhí)行單元串口通信處理函數(shù)軟件流程如圖5所示。
3.3.1 遠(yuǎn)程通信流程
當(dāng)遠(yuǎn)程控制終端設(shè)備把需要傳遞的命令通過(guò)Internet和WiFi發(fā)送給ESP8266芯片,ESP8266芯片把WiFi信號(hào)轉(zhuǎn)換成串口數(shù)據(jù),發(fā)送給STM32F407單片機(jī);STM32F407單片機(jī)根據(jù)接收到的指令數(shù)據(jù)執(zhí)行相關(guān)操作,并且在執(zhí)行完畢后把需要反饋的信息發(fā)送至ESP8266芯片,ESP8266芯片把串口信號(hào)轉(zhuǎn)換成WiFi信號(hào),并通過(guò)無(wú)線網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程控制終端設(shè)備。
3.3.2 無(wú)線通信協(xié)議制定
微型植物工廠內(nèi)包含多種控制信息,必須通過(guò)標(biāo)記才能區(qū)別不同的控制命令。因此既要保證系統(tǒng)有效地完成數(shù)據(jù)傳輸,又要保證參數(shù)設(shè)置功能、控制功能等系統(tǒng)功能實(shí)現(xiàn),需要相應(yīng)的通信協(xié)議進(jìn)行規(guī)范。協(xié)議格式如表2所示,控制信息類(lèi)型及功能數(shù)據(jù)對(duì)應(yīng)關(guān)系如表3所示。
圖5 執(zhí)行單元串口通信處理程序流程圖
表2 無(wú)線通信協(xié)議格式
表3 控制信息類(lèi)型及功能數(shù)據(jù)對(duì)應(yīng)關(guān)系
通信協(xié)議中不同字段用#分割,沒(méi)有數(shù)據(jù)的字段補(bǔ)0,最后以$結(jié)尾。比如:#01#00#01#01#3600#$,含義為打開(kāi)通道1對(duì)應(yīng)的執(zhí)行機(jī)構(gòu),并讓其維持打開(kāi)狀態(tài)3 600s。
3.3.3 網(wǎng)絡(luò)通信軟件設(shè)計(jì)
在網(wǎng)絡(luò)通信中,微控制器STM32F407單片機(jī)接收遠(yuǎn)程控制終端傳來(lái)的指令,執(zhí)行相關(guān)操作,并將反饋信息回傳給遠(yuǎn)程控制終端。系統(tǒng)設(shè)定參數(shù)發(fā)生改變時(shí),及時(shí)將改變后的數(shù)據(jù)上傳至遠(yuǎn)程控制終端。
在程序設(shè)計(jì)中,首先初始化串口設(shè)置參數(shù),接著查詢(xún)是否有網(wǎng)絡(luò)數(shù)據(jù)接收中斷。在有接收中斷的時(shí)候,對(duì)接收到的數(shù)據(jù)進(jìn)行處理,同時(shí)在控制單元主函數(shù)中調(diào)用網(wǎng)絡(luò)通信處理函數(shù),在該函數(shù)中對(duì)接收到的信號(hào)進(jìn)行判斷,完成相應(yīng)的操作。程序流程如圖6所示。
圖6 網(wǎng)絡(luò)處理程序流程圖
本控制系統(tǒng)中包括溫濕度控制、營(yíng)養(yǎng)液循環(huán)、換新風(fēng)、栽培區(qū)補(bǔ)光、育苗室澆水與補(bǔ)光等控制策略,在此以溫度控制及營(yíng)養(yǎng)液循環(huán)控制策略為例進(jìn)行介紹。
3.4.1 溫度控制策略
微型植物工廠溫度控制包括制冷和加熱兩種模式。STM32F407單片機(jī)通過(guò)AM2302采集植物工廠內(nèi)部的溫度信息,進(jìn)行數(shù)據(jù)濾波處理,然后將溫度值與設(shè)定值進(jìn)行比較,決定當(dāng)前微型植物工廠內(nèi)部溫度控制模式。軟件流程如圖7所示。
圖7 溫度控制模式選擇流程圖
3.4.2 營(yíng)養(yǎng)液循環(huán)控制策略
本系統(tǒng)采用營(yíng)養(yǎng)液栽培技術(shù),營(yíng)養(yǎng)液循環(huán)方式采取3層集中定時(shí)提供營(yíng)養(yǎng)液,即每層營(yíng)養(yǎng)液供應(yīng)周期相同,但每層的營(yíng)養(yǎng)液流量及浸泡時(shí)間可單獨(dú)控制。
營(yíng)養(yǎng)液循環(huán)的具體工作流程分為7個(gè)步驟:下層營(yíng)養(yǎng)液輸入、中層營(yíng)養(yǎng)液輸入、上層營(yíng)養(yǎng)液輸入、浸泡時(shí)間、下層營(yíng)養(yǎng)液排出、中層營(yíng)養(yǎng)液排出和上層營(yíng)養(yǎng)液排出。
為了防止在營(yíng)養(yǎng)液循環(huán)周期中意外斷電,導(dǎo)致系統(tǒng)當(dāng)前循環(huán)周期沒(méi)有結(jié)束便等待下個(gè)循環(huán)周期的到來(lái),在程序中定義2個(gè)單字節(jié)變量,即營(yíng)養(yǎng)液循環(huán)進(jìn)程標(biāo)志(NSCProgressFlag)和營(yíng)養(yǎng)液相關(guān)執(zhí)行機(jī)構(gòu)狀態(tài)標(biāo)志(NSCDriverStateFlag),分別用來(lái)保存營(yíng)養(yǎng)液循環(huán)進(jìn)程和營(yíng)養(yǎng)液相關(guān)執(zhí)行機(jī)構(gòu)狀態(tài),并將其即寫(xiě)入到AT24C08存儲(chǔ)芯片中;待系統(tǒng)再次上電后,MCU先從AT24C08中讀取NSCProgressFlag和NSCDriverStateFlag的值,恢復(fù)斷電之前的營(yíng)養(yǎng)液循環(huán)進(jìn)程狀態(tài)及水泵、進(jìn)水閥、出水閥等相關(guān)執(zhí)行機(jī)構(gòu)的工作狀態(tài),再調(diào)用營(yíng)養(yǎng)液循環(huán)函數(shù),完成系統(tǒng)掉電之前的循環(huán)周期。
通過(guò)生菜種植試驗(yàn)對(duì)微型植物工廠智能控制系統(tǒng)性能進(jìn)行測(cè)試。試驗(yàn)中,溫度設(shè)置為白天 23℃、夜間 18℃;3層栽培層光照環(huán)境相同,均為紅藍(lán)光配比為5:1的LED生長(zhǎng)燈,且光周期和暗周期相等,均為12h;營(yíng)養(yǎng)液循環(huán)方式采取3層集中定時(shí)提供營(yíng)養(yǎng)液。試驗(yàn)中的微型植物工廠如圖8所示。
圖8 試驗(yàn)中的微型植物工廠
微型植物工廠智能控制系統(tǒng)在生菜種植性能測(cè)試過(guò)程中,主控單元和執(zhí)行單元均運(yùn)行穩(wěn)定,各部分功能均能實(shí)現(xiàn)。限于篇幅,下面僅以2017年12月21日10:00-17:00的溫度數(shù)據(jù)為例進(jìn)行分析。微型植物工廠內(nèi)各層溫度變化曲線如圖9所示。
圖9 溫度變化曲線
由圖9可以看出:升溫模式中,微型植物工廠內(nèi)溫度變化分為上升時(shí)期和溫度保持時(shí)期。在溫度保持時(shí)期,上層和中層的溫度基本相同,稍高于下層溫度,上層、中層和下層溫度的平均控制誤差分別為0.3、0.2、0.9℃,能滿足常見(jiàn)作物的生長(zhǎng)要求。
在整個(gè)試驗(yàn)生長(zhǎng)周期內(nèi),生菜生長(zhǎng)狀態(tài)良好,沒(méi)有出現(xiàn)生長(zhǎng)停滯、徒長(zhǎng)、葉片萎靡不振及根部腐爛等現(xiàn)象,表明該微型植物工廠智能控制系統(tǒng)性能穩(wěn)定,可以為作物提供良好的生長(zhǎng)環(huán)境。
為保證微型植物工廠內(nèi)部作物處于適宜的生長(zhǎng)環(huán)境,設(shè)計(jì)了一種基于嵌入式平臺(tái)的微型植物工廠智能控制系統(tǒng)。該系統(tǒng)在硬件上采用高性能的 STM32F407 芯片作為主控制器,以LCD19264液晶屏加獨(dú)立按鍵作為人機(jī)交互設(shè)計(jì),在降低研制成本的同時(shí),保證系統(tǒng)的穩(wěn)定性和可靠性;軟件上對(duì)溫度、營(yíng)養(yǎng)液循環(huán)、補(bǔ)光、換新風(fēng)等均制定了合理的控制策略,保證了系統(tǒng)運(yùn)行的準(zhǔn)確性。經(jīng)試驗(yàn)驗(yàn)證,系統(tǒng)運(yùn)行穩(wěn)定可靠,作物生長(zhǎng)狀態(tài)良好。