黃道,陳敏敏
(1.汕尾職業(yè)技術(shù)學(xué)院,廣東 汕尾 516600;2.汕尾市海洋產(chǎn)業(yè)研究院,廣東 汕尾 516600)
隨著汕尾積極推進(jìn)農(nóng)業(yè)和旅游業(yè),目前在汕尾周邊的各類種植基地正在快速增加,種植作物的種類多樣,已成規(guī)模;在監(jiān)測植物的環(huán)境參數(shù)方面,采用的都是普通獨立的測試儀器,如水銀溫度計等,其測量需要人工進(jìn)行觀察和記錄,最后再由技術(shù)人員進(jìn)行分析,結(jié)合植物的生長情況,給予接下來的種植策略[1]。噴灑和灌溉也是由人工控制時間和水量,需要較多的人工去管理和實施。結(jié)合上面的情況,針對其中的草莓種植,融合物聯(lián)網(wǎng)、圖像識別、傳感器、軟件設(shè)計、芯片編程等技術(shù)和草莓生長需求的環(huán)境因素,設(shè)計一套集生長環(huán)境監(jiān)測、生長狀況分析、智能給予種植策略和控制方案于一體的種植系統(tǒng)模型。
系統(tǒng)總體框圖如圖1 所示。 系統(tǒng)主控芯片為STM32103C8T6,其負(fù)責(zé)對各傳感器信息的采集,包括溫濕度傳感器、光照傳感器、土壤pH 值傳感器等,主要對草莓的生長環(huán)境的各項參數(shù)進(jìn)行監(jiān)測。主控芯片對電磁閥、水泵、RGB 燈等外部執(zhí)行設(shè)備進(jìn)行驅(qū)動控制,此部分主要是通過施肥、澆水、補充光照、通風(fēng)等手段,實現(xiàn)對環(huán)境因素的調(diào)整和改變[2]。通過GPRS 模塊將系統(tǒng)接入互聯(lián)網(wǎng),從而實現(xiàn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集分析、遠(yuǎn)程操控和處理。
圖1 系統(tǒng)總體框圖
系統(tǒng)軟件和服務(wù)器方面,包括手機應(yīng)用、網(wǎng)絡(luò)數(shù)據(jù)庫、網(wǎng)頁服務(wù)器,主要實現(xiàn)數(shù)據(jù)的互聯(lián)網(wǎng)存儲、分享和傳輸以及人機的交互。
系統(tǒng)硬件主要包括主控芯片電路、傳感器電路、控制外設(shè)電路、圖像處理模塊電路、GPRS 模塊電路、電源電路等部分。
系統(tǒng)主控芯片采用STM32C8T6,主控芯片電路主要由其最小系統(tǒng)電路構(gòu)成,具體電路及與外部連接如圖2 所示。
圖2 系統(tǒng)主控芯片STM32 最小系統(tǒng)電路及連接
主控芯片電路的作用主要是完成整個系統(tǒng)的協(xié)調(diào)、管理、控制,包括驅(qū)動各類傳感器實現(xiàn)環(huán)境參數(shù)的監(jiān)測,驅(qū)動各個電機、電磁閥等外設(shè)實現(xiàn)控制灌溉、遮陽、施肥、照射等功能;與圖像處理模塊OpenMVplus 進(jìn)行通信,獲取其處理圖像的識別結(jié)果;與GPRS 模塊進(jìn)行通信,并通過其接入互聯(lián)網(wǎng)服務(wù)器,總體分析、處理信息,采用對應(yīng)的種植策略。
GPRS 模塊電路及其連接如圖3 所示。GPRS 模塊電路主要實現(xiàn)將系統(tǒng)通過移動4G 網(wǎng)絡(luò)接入互聯(lián)網(wǎng)的功能,采用串口通信與主控芯片進(jìn)行交互[3]。
圖3 GPRS 模塊電路
OpenMVplus 圖像處理模塊電路如圖4 所示。
圖4 OpenMVplus 圖像處理模塊電路
OpenMVplus 圖像處理模塊電路主要功能是對草莓生長圖像進(jìn)行分析和處理,通過機器學(xué)習(xí)識別草莓的各個生長期及生長狀況異常與否,并將結(jié)果通過串口通信發(fā)送給主控芯片進(jìn)行處理。
傳感器電路包括空氣溫濕度傳感器、土壤濕度傳感器、pH 傳感器、光照傳感器等。
DHT11 溫濕度傳感器電路如圖5 所示,其功能主要是對種植環(huán)境空氣的溫濕度值進(jìn)行檢測。
圖5 DHT11 溫濕度傳感器電路
土壤pH 值傳感器電路如圖6 所示,其使用探頭對土壤的酸堿度進(jìn)行測試,傳感器可將pH 值轉(zhuǎn)化為電壓值,主控芯片通過A/D 口進(jìn)行讀取,同時使用實驗測試得到的轉(zhuǎn)化公式,將其轉(zhuǎn)化為pH 值。
圖6 土壤pH 值傳感器電路
土壤濕度傳感器主要使用探頭對土壤的濕度進(jìn)行檢測,其輸出的濕度量為電壓模擬值,主控芯片使用A/D 口對其進(jìn)行讀取,再轉(zhuǎn)化為濕度值。土壤濕度傳感器電路如圖7所示。
光照傳感器電路如圖8 所示,采用GY30 光照傳感器模塊,主控芯片使用I2C 通信與其進(jìn)行通信,獲取光照值[4]。主要用于測試種植環(huán)境的光照度和對系統(tǒng)光照度的調(diào)整。
圖8 光照傳感器電路
外部設(shè)備電路包括步進(jìn)電機及驅(qū)動電路模塊、電磁閥、水流霍爾傳感器、太陽膜卷動電機及其驅(qū)動電路、RGB 全彩LED 燈板、固態(tài)肥料施肥電機電路等。
RGB 燈板電路采用WS_2812 燈板,燈板自帶驅(qū)動,主控芯片只需要用一個I/O 口便可進(jìn)行驅(qū)動控制,驅(qū)動控制方便,如圖9 所示。燈板主要起到補照藍(lán)紫燈光的作用,使用PID 算法進(jìn)行調(diào)制,當(dāng)日間照射的光照度不夠時,增加藍(lán)紫燈光的照射,保存穩(wěn)定的光照。
圖9 WS_2812 RGB 燈板電路
太陽膜卷動步進(jìn)電機電路分兩個電機進(jìn)行控制,一個步進(jìn)電機控制頂部的遮陽膜的卷開和卷合,控制陽光的入射;另外一個步進(jìn)電機控制側(cè)面的太陽膜的卷合,此部分主要通過卷閉來控制大棚的通風(fēng),調(diào)節(jié)空氣的流動,從而間接控制大棚內(nèi)的溫濕度。采用步進(jìn)電機可精準(zhǔn)控制其卷合的程度,搭配重力塊,可實現(xiàn)拉和放兩個方向移動。太陽膜卷動控制步進(jìn)電機電路如圖10 所示。
圖10 太陽膜卷動控制步進(jìn)電機電路
滴灌控制電路如圖11 所示。主控芯片使用管腳PB0 對霍爾元件的輸出脈沖信號進(jìn)行采集,判斷、計算當(dāng)前的出水流量,并通過PA6 管腳控制水流電磁閥的關(guān)閉,控制出水,兩者結(jié)合,精確控制出水流量,從而實現(xiàn)對水、水肥定量滴灌的控制[5]。
圖11 滴灌控制電路
固態(tài)肥料施肥電機電路如圖12 所示。采用底部漏孔配合履帶旋轉(zhuǎn)擋板的步進(jìn)電機,當(dāng)電機旋轉(zhuǎn)一周時,擋板推動肥料經(jīng)過底孔,完成一次量的下料,通過控制旋轉(zhuǎn)次數(shù)控制肥料的下料量。
圖12 固態(tài)肥料施肥電機電路
系統(tǒng)電源電路主要提供系統(tǒng)芯片、驅(qū)動板、電磁閥等各模塊的需求的電壓值。對220 V 交流電進(jìn)行變壓整流,再經(jīng)穩(wěn)壓芯片處理,從而提供不同的電壓需求。電源電路如圖13所示。
圖13 系統(tǒng)電源電路
軟件系統(tǒng)主要包括以下幾個部分的設(shè)計:主控芯片的程序設(shè)計、OpenMV 圖像識別模塊的程序設(shè)計、手機應(yīng)用APP軟件設(shè)計、網(wǎng)絡(luò)服務(wù)器和數(shù)據(jù)庫的軟件設(shè)計。
主控芯片STM32F103C8T6 的程序設(shè)計流程如圖14所示。
圖14 主控芯片程序流程
主控芯片主要負(fù)責(zé)整個系統(tǒng)各個模塊之間的通信、協(xié)調(diào)、驅(qū)動、控制等工作。
(1)系統(tǒng)初始化:各個串口波特率設(shè)置、I/O 口模式設(shè)置、與服務(wù)器時鐘芯片進(jìn)行時間校準(zhǔn)等工作。
(2)讀傳感器:驅(qū)動DHT11 空氣溫濕度模塊讀取空氣的溫濕度,采用ADC 管腳獲取土壤濕度模塊的濕度A/D 值,并經(jīng)過比例轉(zhuǎn)化,從而獲取土壤的濕度值;使用第二路ADC管腳獲取pH 傳感器模塊輸出的pH 轉(zhuǎn)化A/D 值,經(jīng)換算,獲得土壤的pH 值;同樣,使用第三路ADC 管腳獲取光照傳感器的光照值。
(3)讀取圖像處理結(jié)果:使用設(shè)定的協(xié)議,經(jīng)串口與OpenMVplus 進(jìn)行通信,讀取其圖像分析的結(jié)果。
(4)數(shù)據(jù)聯(lián)網(wǎng):將獲取到的傳感器和圖像信息經(jīng)GPRS模塊,通過4G 網(wǎng)絡(luò)發(fā)送到網(wǎng)絡(luò)服務(wù)器,并存儲到網(wǎng)絡(luò)數(shù)據(jù)庫相對應(yīng)數(shù)據(jù)標(biāo)簽的數(shù)據(jù)條中,同時獲取控制指令標(biāo)簽的值。
(5)數(shù)據(jù)分析和控制:對獲取到的信息進(jìn)行分析,當(dāng)空氣中溫度過高或過低時,驅(qū)動側(cè)面太陽膜電機卷開或卷合太陽膜,通過密閉或流動來調(diào)節(jié)相同棚內(nèi)的溫度。當(dāng)土壤或空氣的濕度過低、干燥時,則通過控制電磁閥打開進(jìn)行點滴灌溉;同時讀取水流霍爾傳感器的脈沖數(shù),并將脈沖數(shù)換算為水容量,通過控制電磁閥控制滴灌給水量。當(dāng)濕度太大時,則控制卷膜打開,進(jìn)行通風(fēng)降濕。對土壤pH 值進(jìn)行分析,如果處于草莓適合的環(huán)境5.5 ~6.5 時,則不作處理;如果超過了,則控制施肥電機工作,施加硫磺粉、生石灰的肥料來調(diào)整土壤的pH 值。pH 值的調(diào)整正常在種植前(配合APP操控)完成調(diào)整。分析獲取的光照值,當(dāng)白天光照值較低時,采用PID 算法[6]進(jìn)行調(diào)控,公式為:
為了在芯片程序中實現(xiàn),做離散處理,公式如下:
經(jīng)實驗測試和調(diào)參,Kp值設(shè)置為0.5,Ki值設(shè)置為0.2,Kd值設(shè)置為0.1,調(diào)節(jié)頻率為500 μs/次,燈光系統(tǒng)照射穩(wěn)定,使得RGB 全彩燈在白天照射度不足時,保持恒定的藍(lán)紫燈光,促進(jìn)草莓生長。OpenMV 圖像處理模塊采用機器學(xué)習(xí)的方法,使其能夠?qū)Σ葺母鱾€生長階段進(jìn)行識別區(qū)分。主控芯片則根據(jù)識別的結(jié)果按照苗期、現(xiàn)蕾期、果實膨大期、采收期結(jié)合種植時間(結(jié)合APP 設(shè)置種植日期點以及時鐘芯片獲取種植時間)進(jìn)行特定種類和容量的施肥[7]。當(dāng)識別到生長異常時,則通過網(wǎng)絡(luò)和APP 提醒技術(shù)人員及時進(jìn)行分析和處理。
OpenMVplus 圖像處理模塊主要用于對草莓生長圖像的分析。借助邊緣設(shè)備機器學(xué)習(xí)開發(fā)平臺Edge Impulse 服務(wù)器進(jìn)行訓(xùn)練,準(zhǔn)備草莓4 個生長周期的各數(shù)百張正常生長圖片和特殊的異常圖片,創(chuàng)建采用遷移學(xué)習(xí)模型,設(shè)置模型訓(xùn)練的參數(shù),進(jìn)行訓(xùn)練機器分類[8]。最終生成機器識別模型,將該模型生成Python代碼,再調(diào)配到OpenMV上作為程序基礎(chǔ),進(jìn)行程序設(shè)計。具體程序流程如下:
(1)初始化:進(jìn)行波特率設(shè)置、圖像識別準(zhǔn)備工作等。
(2)定時識別:每隔一個小時,拍攝一張草莓生長圖片,將該圖片加載入訓(xùn)練的模型中進(jìn)行識別,獲取該圖片與各模型的相似度,取相似度最高的作為識別結(jié)果。
(3)串口通信:將該數(shù)據(jù)以設(shè)定的通信協(xié)議發(fā)送到主控芯片上進(jìn)行處理。
Android 手機APP 采用AppInventor 進(jìn)行設(shè)計,其功能主要是實現(xiàn)對種植系統(tǒng)的遠(yuǎn)程查看和控制,其設(shè)計分為組件設(shè)計和程序設(shè)計兩塊。
組件設(shè)計主要為APP 界面設(shè)計,主要包括兩個部分:
(1)顯示部分:主要作為監(jiān)測數(shù)據(jù)的顯示,包括溫濕度、光照度、種植時間、生長時間、生長期、生長情況、pH 值、近3 個區(qū)域天氣等顯示標(biāo)簽設(shè)計。
(2)操控部分:主要用于遠(yuǎn)程操控的按鍵和雙態(tài)開關(guān)組件,包括滴灌、施肥、開啟/卷合頂部和側(cè)邊太陽膜、藍(lán)紫燈照射控制等對應(yīng)系統(tǒng)外部硬件設(shè)備的控制組件。
程序設(shè)計思路:
(1)應(yīng)用啟動后,通過HTTP 協(xié)議發(fā)送get 請求到網(wǎng)絡(luò)服務(wù)器中,獲取數(shù)據(jù)庫種植系統(tǒng)上傳的各個環(huán)境參數(shù),當(dāng)服務(wù)器返回參數(shù)信息時,進(jìn)行json 解碼和提取,再將相對應(yīng)的信息寫入到各個顯示組件,按照信息設(shè)置雙態(tài)開關(guān)的狀態(tài)。通過HTTP 協(xié)議接入和風(fēng)天氣網(wǎng)站服務(wù)器,發(fā)送包含城市位置和鑒權(quán)信息的get 請求到和風(fēng)天氣網(wǎng)站接口,當(dāng)獲取到天氣信息時,進(jìn)行json 格式解碼,并按天數(shù)進(jìn)行提取和顯示,系統(tǒng)目前使用和風(fēng)天氣免費的接口,能提供未來3 天內(nèi)的天氣信息[9]。
(2)當(dāng)用戶控制組件進(jìn)行操作時,則將控制信息轉(zhuǎn)化為對應(yīng)的修改網(wǎng)絡(luò)數(shù)據(jù)庫中對應(yīng)標(biāo)簽的修改指令語句,使用HTTP 協(xié)議封裝,并采用post 請求的方式發(fā)送到網(wǎng)絡(luò)服務(wù)器中,網(wǎng)絡(luò)服務(wù)器接收后再將其寫入網(wǎng)絡(luò)數(shù)據(jù)庫中,從而修改數(shù)據(jù)庫中相對應(yīng)的數(shù)據(jù)標(biāo)簽。
網(wǎng)絡(luò)服務(wù)器和數(shù)據(jù)庫主要作為物聯(lián)網(wǎng)平臺,連接硬件系統(tǒng)和手機應(yīng)用,還有正在開發(fā)中的PC 應(yīng)用,實現(xiàn)它們之間的通信功能。
網(wǎng)絡(luò)服務(wù)器和數(shù)據(jù)庫采用購買網(wǎng)絡(luò)空間進(jìn)行搭建,數(shù)據(jù)庫采用SQL 數(shù)據(jù)庫,比較輕便靈活。由于該空間支持的數(shù)據(jù)庫不能直接進(jìn)行遠(yuǎn)程訪問,所以采用PHP 語言設(shè)計了一個中轉(zhuǎn)的網(wǎng)頁程序服務(wù)器asp 程序。通過HTTP 協(xié)議為遠(yuǎn)程的軟、硬件系統(tǒng)提供接入中轉(zhuǎn)服務(wù),使得種植系統(tǒng)的軟、硬件能夠間接接入數(shù)據(jù)庫[10]。SQL 數(shù)據(jù)庫中為種植系統(tǒng)建立數(shù)據(jù)表,表中每一個環(huán)境參數(shù)和控制狀態(tài)量分別建立一個數(shù)據(jù)列,而網(wǎng)頁服務(wù)器程序主要做中轉(zhuǎn)作用,執(zhí)行硬件系統(tǒng)與應(yīng)用的寫入、讀取數(shù)據(jù)庫的指令,再將獲取的信息返回到請求源。
系統(tǒng)結(jié)合草莓的種植,采用物聯(lián)網(wǎng)技術(shù)、傳感器技術(shù)、軟件應(yīng)用設(shè)計、芯片編程技術(shù)、人工智能應(yīng)用等技術(shù),設(shè)計一套具有以下優(yōu)勢的種植系統(tǒng)模型:
(1)智能化:自動檢測種植環(huán)境的各項參數(shù),并自動或人工進(jìn)行調(diào)節(jié),智能識別草莓的各個生長周期及異常情況,結(jié)合種植時間和生長情況采用相對應(yīng)的種植策略。
(2)遠(yuǎn)程監(jiān)控:草莓種植環(huán)境的各個環(huán)境參數(shù)、生長情況和種植系統(tǒng)滴灌、施肥、補光等都進(jìn)行網(wǎng)絡(luò)接入,完成遠(yuǎn)程監(jiān)視和控制。
綜上所述,該種植系統(tǒng)模型結(jié)合草莓種植的需求,具有推廣價值和經(jīng)濟效益。