潘瑞娟,陳曉寧,黃石原,季宏強(qiáng)
(安徽大學(xué) 電氣工程與自動(dòng)化學(xué)院,安徽 合肥 230601)
隨著科技的發(fā)展,農(nóng)業(yè)智能化已成趨勢[1-4].通過農(nóng)業(yè)大數(shù)據(jù)及自動(dòng)控制,可有效控制農(nóng)作物生長環(huán)境,使農(nóng)作物在適宜環(huán)境中發(fā)育.Qt是Qt Company 開發(fā)的跨平臺(tái) C+ + 圖形用戶界面應(yīng)用程序開發(fā)框架.文獻(xiàn)[5]基于Qt設(shè)計(jì)了大棚溫濕度監(jiān)控系統(tǒng),使用了串口通信,但未實(shí)現(xiàn)遠(yuǎn)距離實(shí)時(shí)監(jiān)測.文獻(xiàn)[6]基于Qt設(shè)計(jì)了紅外傳感監(jiān)測系統(tǒng),但未實(shí)現(xiàn)農(nóng)業(yè)大棚環(huán)境的反饋控制.文獻(xiàn)[7]基于單片機(jī)設(shè)計(jì)了水產(chǎn)養(yǎng)殖的水質(zhì)監(jiān)控系統(tǒng),但不能對數(shù)據(jù)進(jìn)行大量存儲(chǔ).該文設(shè)計(jì)農(nóng)業(yè)辣椒大棚自動(dòng)監(jiān)控系統(tǒng),基于GPRS(general packet radio service)及UDP(user datagram protocol)將數(shù)據(jù)傳送至MySQL(my structured query language)數(shù)據(jù)庫,實(shí)時(shí)監(jiān)控調(diào)整大棚環(huán)境數(shù)據(jù),使辣椒處于最佳的生長環(huán)境.
該文設(shè)計(jì)的基于Qt的農(nóng)業(yè)辣椒大棚自動(dòng)監(jiān)控系統(tǒng)包括以下3個(gè)子系統(tǒng):采集存儲(chǔ)、反饋控制及數(shù)據(jù)顯示.采集存儲(chǔ)子系統(tǒng)基于GPRS(general packet radio service)及UDP(user datagram protocol),將前端設(shè)備采集到的數(shù)據(jù)包,傳送至MySQL(my structured query language)數(shù)據(jù)庫.反饋控制子系統(tǒng)能調(diào)控風(fēng)機(jī)風(fēng)速、光照度、溫度、窗戶開合等.數(shù)據(jù)顯示子系統(tǒng)能實(shí)時(shí)顯示溫度、濕度、光照度、氣壓、CO2濃度、風(fēng)速及風(fēng)向等數(shù)據(jù),且具有圖像顯示和導(dǎo)出功能.圖1為監(jiān)測系統(tǒng)框架.
圖1 監(jiān)測系統(tǒng)框架
TCP(transmission control protocol)可對數(shù)據(jù)進(jìn)行傳輸控制,可靠性強(qiáng).UDP協(xié)議占用資源小,處理速度快[8-9].在農(nóng)業(yè)大棚采集到的溫度、濕度、光照度、氣壓、CO2濃度、風(fēng)速及風(fēng)向等數(shù)據(jù),通過UDP打包發(fā)送,能大幅提升數(shù)據(jù)的傳輸速率,更快地控制大棚環(huán)境.
建立STM32微控制器與RS485接口的數(shù)據(jù)通信,基于GPRS網(wǎng)絡(luò)及UDP將采集到的大棚辣椒數(shù)據(jù)發(fā)送至數(shù)據(jù)終端.大氣溫度、大氣濕度、氣壓、風(fēng)速、土壤濕度、土壤溫度、pH、光照度、CO2濃度、風(fēng)向和EC(electrical conductivity)等數(shù)據(jù)為十六進(jìn)制,需對其進(jìn)行十進(jìn)制轉(zhuǎn)化.上位機(jī)對數(shù)據(jù)進(jìn)行處理的步驟如下:
(1)判斷是否為32個(gè)字節(jié)、分別以0x55 0x55和0xAA 0xAA開頭和結(jié)尾.
(2)通過十進(jìn)制轉(zhuǎn)化得到實(shí)際數(shù)值.
(3)分類管理,存入數(shù)據(jù)庫對應(yīng)表格.
通過反饋控制可對農(nóng)業(yè)大棚中控制辣椒生長的不同設(shè)備進(jìn)行統(tǒng)一管理.監(jiān)控系統(tǒng)發(fā)送的指令,通過UDP傳至服務(wù)器,服務(wù)器進(jìn)行接收和轉(zhuǎn)發(fā),相關(guān)設(shè)備對風(fēng)機(jī)風(fēng)速、光照度、溫度、窗戶開合等進(jìn)行調(diào)控.反饋控制分為手動(dòng)控制和自動(dòng)控制,以增強(qiáng)實(shí)用性.
(1)手動(dòng)控制.使用者根據(jù)現(xiàn)場農(nóng)業(yè)大棚環(huán)境,下發(fā)相應(yīng)指令.手動(dòng)控制流程如圖2所示.
圖2 手動(dòng)控制流程圖
(2)自動(dòng)控制.在控制頁面設(shè)有自動(dòng)控制按鈕,設(shè)備會(huì)根據(jù)采集到的實(shí)時(shí)數(shù)據(jù)自動(dòng)反饋控制.當(dāng)監(jiān)測到大棚的溫度、濕度、光照度、氣壓、CO2濃度、風(fēng)速及風(fēng)向等數(shù)據(jù)異常時(shí),系統(tǒng)自動(dòng)發(fā)送數(shù)據(jù)指令,對風(fēng)機(jī)風(fēng)速、光照度、溫度、窗戶開合等數(shù)據(jù)進(jìn)行必要的調(diào)控.自動(dòng)控制流程如圖3所示.
圖3 自動(dòng)控制流程圖
目前,多數(shù)界面開發(fā)者使用WPF(windows presentation foundation)界面框架,采用C#編程語言進(jìn)行開發(fā)[10],其不足之處為不支持跨平臺(tái)操作.將Qt Creator[11-12]作為開發(fā)環(huán)境,Qt Creator不依賴虛擬機(jī)、完全面向?qū)ο蟆⒉僮骱啽愀咝?界面的模塊化能降低軟件使用的復(fù)雜性,為測試、調(diào)試、維護(hù)等工作提供方便.界面分為數(shù)據(jù)查詢模塊、圖像顯示模塊和反饋控制模塊.
在.Pro文件中添加QT+= sql,通過類QSqlDatabase[13]連接MySQL數(shù)據(jù)庫.輸入主機(jī)名、端口號、用戶名和密碼,即可查詢數(shù)據(jù).該辣椒大棚設(shè)置3個(gè)站點(diǎn),每個(gè)站點(diǎn)設(shè)置4個(gè)監(jiān)測點(diǎn).該文辣椒大棚夏季8月的環(huán)境數(shù)據(jù)查詢結(jié)果如圖4所示.
圖4 大棚夏季8月的環(huán)境數(shù)據(jù)查詢結(jié)果
在項(xiàng)目.Pro文件中添加QT+= axcontainer,在.cpp文件中設(shè)置行高及標(biāo)題.獲取TableView的數(shù)據(jù)信息后,便可導(dǎo)出數(shù)據(jù)對應(yīng)的Excel表格.直觀的Excel表格,改善了用戶體驗(yàn).
通過C++類繪圖構(gòu)件QCustomPlot[14]能有效顯示實(shí)時(shí)數(shù)據(jù)圖像.辣椒大棚夏季8月溫度、濕度、EC以及pH隨時(shí)間變化的情況如圖5所示.
圖5 大棚夏季8月溫度、濕度、EC以及pH隨時(shí)間變化的情況
系統(tǒng)有手動(dòng)及自動(dòng)控制2個(gè)模式.不對控制界面進(jìn)行操作時(shí),系統(tǒng)不發(fā)生指令,大棚設(shè)備處于待機(jī)狀態(tài).當(dāng)點(diǎn)擊進(jìn)入自動(dòng)控制模式時(shí),監(jiān)控系統(tǒng)根據(jù)設(shè)定的閾值發(fā)送相應(yīng)指令,對大棚相關(guān)數(shù)據(jù)進(jìn)行調(diào)控.必要時(shí),也可在界面主頁對風(fēng)機(jī)風(fēng)速、光照度等進(jìn)行手動(dòng)控制.
為了驗(yàn)證辣椒大棚自動(dòng)監(jiān)控系統(tǒng)的準(zhǔn)確性,對2號站點(diǎn)的1號監(jiān)測點(diǎn)的2021年8月某時(shí)刻的數(shù)據(jù)進(jìn)行實(shí)際測量.通過辣椒大棚里的溫濕度表、光照度測量儀和CO2濃度測量儀讀取實(shí)際測量數(shù)據(jù).表1為監(jiān)控系統(tǒng)記錄數(shù)據(jù)與實(shí)際測量數(shù)據(jù).
表1 監(jiān)控系統(tǒng)記錄數(shù)據(jù)與實(shí)際測量數(shù)據(jù)
由表1可知,辣椒大棚的溫度誤差范圍為[-0.3%,+0.3%],濕度誤差范圍為[-0.5%,+0.5%],CO2濃度誤差范圍為[-0.7%,+0.7%],光照誤差范圍為[-1%,+1%],可見監(jiān)控系統(tǒng)的測量數(shù)據(jù)準(zhǔn)確度高.
1~2月是辣椒最佳育苗期,此段時(shí)間的溫度為15~30 ℃,濕度為50%~75%.若在8月播種辣椒,此時(shí)的濕熱環(huán)境不是最佳的辣椒育苗環(huán)境,但可通過監(jiān)控系統(tǒng)控制溫濕度,使辣椒在適宜環(huán)境中發(fā)育.對監(jiān)控系統(tǒng)進(jìn)行如下設(shè)置:當(dāng)大棚溫度在22~29 ℃、濕度在50%~75%時(shí),監(jiān)控系統(tǒng)不發(fā)送指令;當(dāng)溫濕度低于22 ℃或高于29 ℃,濕度低于50%或高于75%時(shí),系統(tǒng)發(fā)送相應(yīng)指令,通過相關(guān)設(shè)備進(jìn)行調(diào)控.表2,3分別為不同溫度、濕度下監(jiān)控系統(tǒng)自動(dòng)控制的結(jié)果.
表2 不同溫度下監(jiān)控系統(tǒng)自動(dòng)控制的結(jié)果
表3 不同濕度下監(jiān)控系統(tǒng)自動(dòng)控制的結(jié)果
由表2,3可知,在溫濕度過低情況下,風(fēng)機(jī)能自動(dòng)關(guān)閉,噴灌設(shè)備及窗戶自動(dòng)打開,燈光調(diào)強(qiáng);在溫濕度的設(shè)定范圍內(nèi),風(fēng)機(jī)能調(diào)至低速擋,噴灌設(shè)備及窗戶自動(dòng)關(guān)閉,燈光調(diào)弱;在溫濕度過高情況下,風(fēng)機(jī)能調(diào)至高速擋,噴灌設(shè)備及窗戶自動(dòng)打開,燈光關(guān)閉.可見,在不同溫濕度下,監(jiān)控系統(tǒng)能使辣椒大棚的溫濕度處于設(shè)定的范圍,在反季節(jié)里辣椒也能在適宜的環(huán)境中生長.
該文設(shè)計(jì)的基于Qt的農(nóng)業(yè)辣椒大棚自動(dòng)監(jiān)控系統(tǒng),能準(zhǔn)確測量環(huán)境數(shù)據(jù),根據(jù)設(shè)定的數(shù)據(jù)范圍進(jìn)行自動(dòng)調(diào)節(jié),在濕熱夏季也能營造出適宜辣椒發(fā)育的類春季氣候環(huán)境,滿足了智慧農(nóng)業(yè)的需求.該自動(dòng)監(jiān)控系統(tǒng)可靠性高、操作簡單,已成功應(yīng)用于安徽省潁上縣的大棚果蔬種植基地.