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