任瑞仙
(山西工程技術(shù)學(xué)院,山西 陽泉 045000)
在過去的農(nóng)業(yè)大棚管理工作中,主要是通過負(fù)責(zé)管理各個農(nóng)業(yè)大棚的現(xiàn)場工作人員定時使用溫度計、濕度計、照度計等儀器測量各項主要參數(shù)并記錄在紙質(zhì)工作簿上,按月進(jìn)行統(tǒng)一匯總。這種工作模式存在著操作繁瑣、效率低等諸多問題。在農(nóng)業(yè)大棚的運行過程中,空氣的溫濕度、二氧化碳與氧氣的含量變化是幾個非常重要的參數(shù),同時大棚內(nèi)部的光照條件也會直接影響蔬菜的生長發(fā)育、產(chǎn)量和品質(zhì)[1]。因此,將上述條件通過技術(shù)手段將其人為控制在最優(yōu)范圍內(nèi),對農(nóng)業(yè)大棚的農(nóng)作物產(chǎn)量與經(jīng)濟(jì)效益有著重要影響。
本系統(tǒng)是基于物聯(lián)網(wǎng)、人工智能與大數(shù)據(jù)等新興技術(shù),在租賃的服務(wù)器平臺上部署智能農(nóng)業(yè)生產(chǎn)管理體系,主要采用了Raspberry PI平臺、Python語言、微型傳感器技術(shù)、B/S運行模式、PHP語言、Javascript語言以及MYSQL數(shù)據(jù)庫等,實現(xiàn)了無人托管、智能栽培、實時監(jiān)測、遠(yuǎn)程診斷、大數(shù)據(jù)分析等功能,從技術(shù)上解決了傳統(tǒng)人工模式的多種弊端。
該系統(tǒng)的主要任務(wù)是通過在農(nóng)業(yè)大棚內(nèi)部安裝多組不同類型的微型傳感器設(shè)備對農(nóng)業(yè)大棚中影響農(nóng)作物生長的空氣環(huán)境數(shù)據(jù)以及短的時間間隔(考慮到網(wǎng)絡(luò)通信中存在的延遲問題,該間隔最低設(shè)置為10 s)開展連續(xù)的采集,并通過網(wǎng)絡(luò)上傳至遠(yuǎn)程服務(wù)器進(jìn)行存儲和處理。向農(nóng)戶提供對分布在不同地點的多個農(nóng)業(yè)大棚基地中的所有大棚內(nèi)部的空氣環(huán)境信息的實施監(jiān)控功能,便于管理層實時掌握農(nóng)業(yè)生產(chǎn)大棚的運轉(zhuǎn)情況。在完成數(shù)據(jù)實時采集工作的同時,當(dāng)系統(tǒng)監(jiān)測到參數(shù)異常時會自動提醒相關(guān)的大棚的管理與值班人員,以便及時進(jìn)行現(xiàn)場處置,避免造成損失。系統(tǒng)功能模塊圖如圖1所示。
圖1 系統(tǒng)功能模塊圖
◆數(shù)據(jù)采集終端模塊:該模塊主要負(fù)責(zé)農(nóng)業(yè)大棚內(nèi)部的各類空氣環(huán)境參數(shù)的采集與數(shù)據(jù)上傳。其具體功能包括:
1) 氣體成分?jǐn)?shù)據(jù)的采集功能:包括對二氧化碳數(shù)據(jù)的采集和對氧氣濃度數(shù)據(jù)的采集。
2) 溫濕度數(shù)據(jù)的采集功能:負(fù)責(zé)檢測當(dāng)前空氣的溫度與水分含量。
3) 光照數(shù)據(jù)的采集功能:負(fù)責(zé)檢測大棚內(nèi)部的光照強(qiáng)度[2]。
4) 數(shù)據(jù)的實時采集功能,負(fù)責(zé)以10s為間隔調(diào)用1)—3)的功能,并收集數(shù)據(jù)。
5) 數(shù)據(jù)格式的轉(zhuǎn)換功能:負(fù)責(zé)將傳感器發(fā)送至平臺IO接口的高低電平信號進(jìn)行一系列的轉(zhuǎn)換,最終得到準(zhǔn)確的10進(jìn)制數(shù)據(jù)。
6) 網(wǎng)絡(luò)連接與數(shù)據(jù)上傳功能:負(fù)責(zé)與遠(yuǎn)處服務(wù)器之間建立連接,并將每次采集到并完成轉(zhuǎn)換的最終數(shù)據(jù)上傳至服務(wù)器。
◆后臺管理系統(tǒng)模塊:該模塊主要負(fù)責(zé)數(shù)據(jù)的接收、存儲、實時顯示以及統(tǒng)計分析,同時在數(shù)據(jù)發(fā)生異常時提供預(yù)警短信發(fā)送功能,此外還提供了登錄身份驗證與系統(tǒng)故障恢復(fù)功能。其具體功能包括:
1) 數(shù)據(jù)的接收與存儲功能:負(fù)責(zé)接收由數(shù)據(jù)采集終端模塊通過公共網(wǎng)絡(luò)發(fā)送來的空氣環(huán)境數(shù)據(jù)并插入到系統(tǒng)數(shù)據(jù)庫中。
2) 數(shù)據(jù)的實時顯示功能:負(fù)責(zé)將采集到的信息以數(shù)據(jù)表格的方式直觀的展示給用戶,并根據(jù)數(shù)據(jù)庫中數(shù)據(jù)的實時變化動態(tài)刷新數(shù)據(jù)表格的內(nèi)容。
3) 數(shù)據(jù)的統(tǒng)計分析功能:負(fù)責(zé)根據(jù)用戶的要求對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行檢索與統(tǒng)計,并將結(jié)果以數(shù)據(jù)圖表的形式展示在用戶界面上。
4) 預(yù)警短信功能:負(fù)責(zé)在連續(xù)收到數(shù)據(jù)采集終端發(fā)來的異常數(shù)據(jù)(預(yù)警上限與下限值可由管理員在系統(tǒng)中提前設(shè)置)時,以短信方式提醒相關(guān)人員(其手機(jī)號可預(yù)先添加至系統(tǒng)數(shù)據(jù)表中)前往現(xiàn)場進(jìn)行處理。
5) 用戶身份驗證功能:負(fù)責(zé)向用戶手機(jī)(提前在系統(tǒng)中置入手機(jī)號碼)發(fā)送短信驗證碼對登錄后臺管理系統(tǒng)的用戶身份合法性進(jìn)行驗證,并記錄其每次登錄系統(tǒng)的信息以提高系統(tǒng)安全性。
6) 系統(tǒng)數(shù)據(jù)庫備份/還原功能:負(fù)責(zé)在不影響系統(tǒng)正常運行的情況下對系統(tǒng)后臺數(shù)據(jù)庫中的全部信息進(jìn)行定期備份并在系統(tǒng)或服務(wù)器發(fā)生故障時對原有數(shù)據(jù)進(jìn)行還原[3]。
對于數(shù)據(jù)采集終端,由于其一直長期處于農(nóng)業(yè)大棚內(nèi)部的高溫度、高濕度環(huán)境下運行,在設(shè)備選型時選用了英國原版的Raspberry Pi 3B+平臺,該平臺作為Raspberry Pi系列的最新型號,具有硬件配置高、性能穩(wěn)定、環(huán)境適應(yīng)性好等特點,非常適合用于搭載本系統(tǒng)中所需各類微型空氣傳感器設(shè)備。
數(shù)據(jù)采集終端包括對農(nóng)業(yè)大棚內(nèi)部的5項空氣環(huán)境參數(shù)的采集以及數(shù)據(jù)的格式轉(zhuǎn)換與上傳功能,空氣環(huán)境參數(shù)采集功能通過在Raspberry Pi 3B+平臺上搭載微型傳感器設(shè)備來實現(xiàn),這些傳感器使用杜邦線與Raspberry Pi 3B+平臺所提供的GPIO接口(針腳接口)(40個接口中含多個電源輸出即數(shù)據(jù)I/O接口)連接并進(jìn)行信號傳輸。而數(shù)據(jù)的格式轉(zhuǎn)換與遠(yuǎn)程上傳功能則由在Raspberry Pi 3B+平臺運行的Python程序?qū)崿F(xiàn)。系統(tǒng)硬件結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)
由于RasPberry Pi 3B+平臺上提供了RJ-45接口并且在系統(tǒng)部署后各農(nóng)業(yè)大棚中將完成網(wǎng)線鋪設(shè)工作,因此數(shù)據(jù)遠(yuǎn)程上傳功能的實現(xiàn)主要是使用Python程序連接遠(yuǎn)處服務(wù)器上的MySQL數(shù)據(jù)庫并執(zhí)行數(shù)據(jù)插入語句來完成的。
Python語言中的數(shù)據(jù)庫訪問接口為Python DB-API,該接口提供了一系列數(shù)據(jù)庫模塊及訪問對象,為開發(fā)人員從不同種類的數(shù)據(jù)庫的存取信息提供了良好的支持。對于MySQL數(shù)據(jù)庫,Python DB-API中與之對應(yīng)的是MySQLdb模塊[4],該模塊基于MySQL C API建立,在使用之前需要在RasPberry Pi 3B+平臺的Linux系統(tǒng)中下載并安裝此模塊。
從數(shù)據(jù)采集終端提交的各項空氣環(huán)境指標(biāo)數(shù)據(jù)在插入數(shù)據(jù)庫后,會被立即顯示在數(shù)據(jù)監(jiān)測頁面上,該頁面采用JavaScript中的execCommand方法實現(xiàn)自動刷新,其時間間隔設(shè)置為10s,與數(shù)據(jù)采集終端提交數(shù)據(jù)的周期相同。數(shù)據(jù)顯示的數(shù)量為當(dāng)前安裝的數(shù)據(jù)終端數(shù)量,當(dāng)前為12(大棚數(shù)量)×6=72,即每次從數(shù)據(jù)庫中讀取最新的72條信息。該功能的實現(xiàn)頁面如圖3所示。
圖3 數(shù)據(jù)實時監(jiān)測頁面
隨著系統(tǒng)運行時間的增加,大量的數(shù)據(jù)被積累下來并存儲在遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫中,用戶通過對這些數(shù)據(jù)的分析可以更加準(zhǔn)確的掌握空氣環(huán)境數(shù)據(jù)的變化規(guī)律以及對農(nóng)作物生長的影響。通過用戶對統(tǒng)計方法與參數(shù)的設(shè)置,系統(tǒng)可以提供多種數(shù)據(jù)顯示模式。除以圖形模式直觀的顯示數(shù)據(jù)外,系統(tǒng)還允許用戶將數(shù)據(jù)導(dǎo)出并下載至本地計算機(jī)以進(jìn)一步處理。
由于需要生成數(shù)據(jù)圖表,因此用戶使用本功能時,需要先在向?qū)ы撝信渲脭?shù)據(jù)檢索條件并提交,系統(tǒng)根據(jù)該條件從數(shù)據(jù)庫中調(diào)取數(shù)據(jù)并生成圖表。此外,該條件還將被保存至服務(wù)器Session變量中,用于執(zhí)行導(dǎo)出Excel的導(dǎo)出與下載功能。MYSQL導(dǎo)出為Excel的功能通過MySQL查詢語言中select語句中的into outfile關(guān)鍵字實現(xiàn)。
預(yù)警短息的發(fā)送通過第三方短信運營商(本系統(tǒng)選用的是短信寶平臺)提供的接口實現(xiàn),而觸發(fā)短信發(fā)送操作的條件是被提交至數(shù)據(jù)庫中的信息有超過預(yù)先設(shè)置的范圍(預(yù)警上限與下限值)的情況。同時需要預(yù)先設(shè)置的還有預(yù)警短信接收人員的手機(jī)號碼及相關(guān)信息。
為保證系統(tǒng)數(shù)據(jù)具備良好的故障恢復(fù)能力,將遠(yuǎn)處服務(wù)器上的MySQL數(shù)據(jù)庫系統(tǒng)安裝在獨立的磁盤分區(qū)中,而該分區(qū)是由3塊獨立硬盤組成的1T×3的Raid0磁盤陣列模式,在該模式下,MySQL數(shù)據(jù)庫所在分區(qū)中的內(nèi)容被同時完整的存儲在3塊獨立硬盤中,當(dāng)服務(wù)器發(fā)生硬件故障時,只要其中的任意一塊硬盤未被損壞,數(shù)據(jù)即可保存下來。
對于系統(tǒng)的日常備份操作,我們同時采用了兩種備份方案,自動備份功能由服務(wù)器操作系統(tǒng)中創(chuàng)建的任務(wù)計劃進(jìn)行,該任務(wù)計劃每隔24小時執(zhí)行一次編寫有MySQL數(shù)據(jù)庫備份文件導(dǎo)出命令的bat文件。而手動備份功能則由管理員在備份管理界面通過按鈕調(diào)用MySQL數(shù)據(jù)庫中的存儲過程執(zhí)行mysqldump命令來實現(xiàn)。
本系統(tǒng)所設(shè)計的農(nóng)業(yè)大棚內(nèi)部空氣環(huán)境監(jiān)測系統(tǒng),為日光溫室的信息化、智能化管理體系的建立提供了技術(shù)支撐。系統(tǒng)在為農(nóng)戶提供空氣質(zhì)量異常短信提示功能的同時,也可以通過本系統(tǒng)可以實時獲取到來自一線的真實現(xiàn)場環(huán)境數(shù)據(jù),并將數(shù)據(jù)集中存儲在遠(yuǎn)程服務(wù)器上,農(nóng)業(yè)技術(shù)人員與專家可以在對大量的歷史數(shù)據(jù)進(jìn)行綜合分析的基礎(chǔ)上進(jìn)一步完善現(xiàn)有的大棚種植模式、方法。在提高農(nóng)作物產(chǎn)量、降低運營成本的同時,提升農(nóng)業(yè)大棚生產(chǎn)管理工作的效率,為現(xiàn)代化農(nóng)業(yè)的長遠(yuǎn)發(fā)展做出積極的貢獻(xiàn)[5]。