徐磊 陳德勝
(武漢輕工大學(xué)人文與傳媒學(xué)院,湖北 武漢 430000)
隨著科技的飛速發(fā)展,智慧農(nóng)業(yè)已成為現(xiàn)代農(nóng)業(yè)領(lǐng)域的一個重要趨勢,不僅提高了農(nóng)業(yè)生產(chǎn)效益,還有助于實現(xiàn)農(nóng)村振興和建設(shè)農(nóng)業(yè)強國的目標[1]。智慧農(nóng)業(yè)借助先進的信息技術(shù)和傳感器設(shè)備,實現(xiàn)了農(nóng)業(yè)生產(chǎn)過程的自動化、精細化和智能化,為農(nóng)民提供了更多的生產(chǎn)手段和管理工具,也有助于保護環(huán)境和資源的可持續(xù)利用[2]。
在智慧農(nóng)業(yè)中,傳感器技術(shù)是關(guān)鍵的基礎(chǔ)。傳感器可以實時監(jiān)測土壤溫度、濕度、光照強度、氣溫等環(huán)境參數(shù),以及作物的生長狀態(tài),將這些數(shù)據(jù)傳輸?shù)睫r(nóng)場管理系統(tǒng)中[3]。這些數(shù)據(jù)不僅幫助農(nóng)民更好地了解農(nóng)田的狀況,還可以通過智能算法進行分析,提供決策支持,如何更好地管理灌溉、施肥、病蟲害防治等[4],智慧農(nóng)業(yè)還可以通過機器視覺技術(shù)來檢測作物的生長情況和質(zhì)量,進一步提高農(nóng)產(chǎn)品的質(zhì)量和產(chǎn)量[5]。
LabVIEW軟件是一個非常有用的工具,其基于數(shù)據(jù)流和并行運行的原理,提供了豐富的VISA(Virtual Instrument Software Architecture)和數(shù)據(jù)處理工具,非常適合用于智慧農(nóng)業(yè)中的數(shù)據(jù)采集、處理和分析[6,7]。LabVIEW的波形圖顯示功能使用戶能夠直觀地查看采集到的數(shù)據(jù),幫助農(nóng)民和農(nóng)場管理人員更好地理解農(nóng)田的狀況[8]。
總的來說,智慧農(nóng)業(yè)是未來農(nóng)業(yè)發(fā)展的重要方向,通過優(yōu)化和改善數(shù)據(jù)采集、處理和分析的過程,可以更好地實現(xiàn)農(nóng)業(yè)現(xiàn)代化和提高生產(chǎn)效益,為農(nóng)村振興和農(nóng)業(yè)強國的目標作出更大的貢獻。本文針對我國現(xiàn)代化農(nóng)業(yè)發(fā)展現(xiàn)狀,結(jié)合大量的參考資料和相關(guān)領(lǐng)域研究成果,設(shè)計了一套基于LabVIEW的智能農(nóng)業(yè)信息采集處理系統(tǒng),用戶可以通過該系統(tǒng)實時地監(jiān)測到農(nóng)作物的相關(guān)信息。
本課題是要實現(xiàn)基于LabVIEW的智能農(nóng)業(yè)信息采集處理,利用LabVIEW對溫濕度傳感器進行實時數(shù)據(jù)收集,實現(xiàn)對農(nóng)田、大棚、溫室等農(nóng)業(yè)環(huán)境和植物生態(tài)的智能監(jiān)控,目的是實現(xiàn)對溫濕度、光照等數(shù)據(jù)信息進行實時的顯示。
本文主要著手于建立結(jié)構(gòu)簡單、功耗低、易操作、功能穩(wěn)定的智能農(nóng)業(yè)監(jiān)控系統(tǒng),該下系統(tǒng)的設(shè)計分為數(shù)據(jù)采集和數(shù)據(jù)處理2個部分,其中數(shù)據(jù)采集部分包括蜂鳴器模塊、LED指示燈模塊、單片機模塊、串口模塊和供電電池等[9];數(shù)據(jù)處理部分是由上位機LabVIEW組成,主要提供數(shù)據(jù)接受、顯示界面、人機交互的平臺。整個系統(tǒng)是由單片機負責(zé)對當前環(huán)境進行數(shù)據(jù)采集,之后在上位機進行后續(xù)的數(shù)據(jù)分析以及處理。
溫濕度傳感器的選擇對監(jiān)測溫度數(shù)據(jù)至關(guān)重要。傳感器的種類不同會對測量對象的溫度產(chǎn)生一定的影響,從而產(chǎn)生誤差,因此經(jīng)過調(diào)查研究,加上條件限制,本文決定選取AM2302作為數(shù)據(jù)采集的傳感器,其采用STM8S處理器,傳感器工作電壓為5V,濕度最大量程是99.9%RH,濕度分辨率為0.1%RH 16bits,而溫度最低量程是-40℃,最高溫度是80℃,溫度分辨率為0.1℃ 16bits[10,11]。
本次實驗使用的是STM8S單片機,其通過A/D轉(zhuǎn)換口將模擬信號轉(zhuǎn)換為數(shù)字信號,具有電路結(jié)構(gòu)簡單、降低實驗成本、低電健壯性等優(yōu)點,溫濕度傳感器的STM8S單片機功能主要可分為以下幾個部分:頻率采集部分、電壓采集部分、PWM輸出部分、串口通信部分[12]。頻率采集部分是用來采集溫濕度采集電路所采集的方波頻率;電壓采集部分是用來獲取溫濕度傳感器輸出的電壓信號;PWM輸出部分是將單片機處理的數(shù)據(jù)再進行處理;串口通信部分是將單片機處理好的數(shù)據(jù)通過串口發(fā)送給上位機。
美國NI公司自行研發(fā)的LabVIEW是NI設(shè)計平臺的核心,其是一種與C和BASIC相似的開發(fā)環(huán)境[13]。其是一種易上手、簡潔的圖形化編程語言,可以將復(fù)雜的文本語言轉(zhuǎn)換成用圖標表示的語言,用戶在使用時不必編寫代碼,只需添加控件以及連線即可,可以直觀的顯示所收集的數(shù)據(jù)[14]。
LabVIEW可以與GPIB、VXI、RS-2302和RS-485等串口實現(xiàn)通信,并且可以代替數(shù)據(jù)采集卡的功能,而且提供了支持TCP/IP、ActiveX等軟件標準的庫函數(shù),從而讓用戶能夠使用各種通信協(xié)和標準庫函數(shù)完成數(shù)據(jù)的采集處理等功能[15,16]。本系統(tǒng)是通過RS-485和LabVIEW提供的VISA節(jié)點實現(xiàn)數(shù)據(jù)傳輸?shù)摹?/p>
上位機可以利用該VISA庫函數(shù)來控制傳感器。在使用LabVIEW軟件進行信息采集時,可以利用VISA配置串口接收數(shù)據(jù)報,再利用VISA讀取串口讀取出來。在LabVIEW2018中,共有8個VISA函數(shù),分別用于串口配置、串口讀寫、串口字節(jié)數(shù)設(shè)置等方面。
在每一個完整的LabVIEW中都有一個前面板和對應(yīng)的程序框圖,前面板是由一個個控件組成的,是直接與用戶溝通的界面,程序框圖是由各種函數(shù)組成的。LabVIEW目前較多應(yīng)用于汽車、工業(yè)、航天、學(xué)校等領(lǐng)域,是一種數(shù)據(jù)采集和測量儀器的標準軟件。
LabVIEW前面板中含有許多顯示控件,如數(shù)值輸出控件、布爾、數(shù)組等,用戶可以直接使用。因此,LabVIEW大大縮短了軟件的研發(fā)周期。LabVIEW可以和其它語言聯(lián)合編程,如JAVA、C等,如可以將C語言放到LabVIEW程序,這樣可以使LabVIEW實現(xiàn)一些其不曾擁有的功能。
綜上所述,系統(tǒng)的總方案確定如下:傳感器采集數(shù)據(jù)部分是由AM2302和單片機STM8S構(gòu)成,采集當前環(huán)境中的溫濕度值。通過RS-485和VISA節(jié)點將數(shù)據(jù)傳輸給上位機,通過設(shè)計的LabVIEW程序?qū)崟r顯示數(shù)據(jù)。
系統(tǒng)仿真設(shè)計部分是為了驗證LabVIEW的實時數(shù)據(jù)采集功能,并為后續(xù)實際應(yīng)用做好準備。本節(jié)將詳細描述系統(tǒng)的框架圖、界面以及各個功能模塊的設(shè)計。
系統(tǒng)的整體框架如圖1所示。確保上位機與下位機的通信波特率一致,以確保通信的可靠性。上位機程序包括初始化工作,數(shù)據(jù)采集和顯示、數(shù)據(jù)存儲以及溫濕度報警幾個部分。
在初始化階段,設(shè)置通信波特率為9600bit·s-1,確保上位機與下位機的通信參數(shù)一致。此外,要確保前面板已正確設(shè)置串口通信的COM口,以建立穩(wěn)定的通信連接。在數(shù)據(jù)采集和顯示部分,數(shù)據(jù)采集和顯示模塊使用自定義函數(shù)和條件結(jié)構(gòu),以實現(xiàn)溫度數(shù)據(jù)的實時顯示。采集到的數(shù)據(jù)會以直觀的方式呈現(xiàn)在上位機界面上,為用戶提供了即時的信息。
為了方便后續(xù)查詢和分析,設(shè)計了數(shù)據(jù)存儲功能,將采集到的數(shù)據(jù)信息存儲在文本文件中。這有助于記錄歷史數(shù)據(jù),進行長期趨勢分析,以及滿足數(shù)據(jù)備份需求。溫度報警功能是系統(tǒng)的重要組成部分。如果采集到的溫度數(shù)據(jù)超過預(yù)設(shè)的閾值,報警燈將亮起,提醒操作人員采取必要的措施。這一功能可以幫助及時發(fā)現(xiàn)溫度異常情況,防止可能的損害或事故。
在設(shè)計模擬發(fā)送的正弦函數(shù)時,需要注意正弦信號的范圍通常在-1~+1,因此需要進行適當?shù)恼{(diào)節(jié),以確保程序的正常運行。同時,設(shè)置溫度報警功能是確保操作人員能夠及時應(yīng)對溫度異常情況的重要一步。
總之,系統(tǒng)的設(shè)計應(yīng)確保正確解讀通信協(xié)議、準確采集和顯示數(shù)據(jù),以及實現(xiàn)必要的報警和數(shù)據(jù)存儲功能,從而保證系統(tǒng)的可靠性和有效性。這一仿真設(shè)計為系統(tǒng)的實際應(yīng)用奠定了堅實的基礎(chǔ)。
圖1 程序框圖
仿真部分的界面可以分為2部分,數(shù)據(jù)發(fā)送部分,利用正弦函數(shù)生成模擬數(shù)據(jù),通過VISA通信接口與下位機建立連接并循環(huán)發(fā)送數(shù)據(jù),同時提供用戶界面元素以便調(diào)整正弦函數(shù)參數(shù)(如振幅、頻率或相位),并在前面板上實時顯示數(shù)據(jù),模擬實際傳感器采集到的信息并支持連續(xù)數(shù)據(jù)采集。
數(shù)據(jù)接收以及顯示處理部分,使用VISA通信接口接收來自下位機或設(shè)備的數(shù)據(jù),將這些數(shù)據(jù)以可視化形式顯示在波形圖上,同時設(shè)置了上限報警機制,以確保數(shù)據(jù)安全性,當數(shù)據(jù)超過預(yù)設(shè)上限時會觸發(fā)報警,如指示燈亮起。此外,還實現(xiàn)了延時顯示功能,以降低數(shù)據(jù)顯示的刷新率,提高界面的穩(wěn)定性和可讀性,并設(shè)計了保存數(shù)據(jù)到文件的功能,以便用戶進行后續(xù)的數(shù)據(jù)分析或存檔操作。
這2部分的設(shè)計能夠模擬實際的數(shù)據(jù)采集和處理過程。確保在實際實施時,數(shù)據(jù)的發(fā)送和接收之間的通信協(xié)議和參數(shù)設(shè)置是一致的,以確保仿真的準確性和可靠性。
為了驗證系統(tǒng)的合理性,本部分使用模擬軟件來測試所設(shè)計的系統(tǒng)的功能是非常重要的步驟。模擬軟件可以模擬系統(tǒng)的運行和交互,以評估系統(tǒng)在不同情境下的性能和功能是否符合預(yù)期。
在開始測試之前,需要打開vspd軟件,并點擊“Add pair”來創(chuàng)建虛擬串口對,這對后續(xù)操作非常重要,因為其為程序的順利運行提供了虛擬串口的支持。接下來,打開LabVIEW軟件,并加載設(shè)計的VI程序。在程序中,選擇將數(shù)據(jù)保存到以.txt結(jié)尾的記事本文件,并將數(shù)據(jù)保存格式設(shè)置為保留小數(shù)點后2位。
在LabVIEW程序的前面板中,需要配置VISA接收口為COM2,VISA發(fā)送口為COM1,并確保其波特率、數(shù)據(jù)比特和停止位等參數(shù)保持一致。一切準備就緒后,單擊“運行”按鈕。在本次設(shè)計中,使用正弦函數(shù)模擬發(fā)送溫度數(shù)據(jù),這些數(shù)據(jù)會實時顯示在波形圖上。此外,當溫度超過60℃時,報警燈會點亮。測試過程中生成的數(shù)據(jù)會被保存在之前選擇的記事本文件中。
通過這些步驟,能夠驗證系統(tǒng)的功能是否按照預(yù)期工作,并且能夠在不同情境下模擬系統(tǒng)的性能。這對于確保系統(tǒng)的合理性和穩(wěn)定性非常重要。
為了進一步驗證系統(tǒng)的可行性,本節(jié)通過LabVIEW設(shè)計了一個數(shù)據(jù)處理程序,主要用于采集AM2302溫濕度傳感器發(fā)送的數(shù)據(jù),并對這些數(shù)據(jù)進行可視化處理。在整個程序中先設(shè)置好VISA函數(shù),再設(shè)計數(shù)據(jù)解析部分,將接收到的串口數(shù)據(jù)包進行處理,然后得到所需要的溫濕度值,再分別對溫濕度值進行處理,之后顯示到波形圖上,并且對溫濕度值進行閾值報警處理,最后將數(shù)據(jù)分別保存到文本文件中。
為了更便于監(jiān)控,本文創(chuàng)建一個用戶友好的界面,使用戶能夠輕松操作和監(jiān)控數(shù)據(jù)采集和處理過程。這包括添加控件用于啟動和停止數(shù)據(jù)采集、調(diào)整參數(shù)以及保存數(shù)據(jù)等功能。
實現(xiàn)部分的程序是在仿真程序的基礎(chǔ)上進行加工,是接收處理AM2302溫濕度傳感器所采集的數(shù)據(jù),該界面可以分為3大部分:數(shù)據(jù)解析、數(shù)據(jù)保存格式、數(shù)據(jù)波形顯示。
數(shù)據(jù)解析部分,在進行設(shè)計前,需要先查詢串口協(xié)議等信息,傳感器所發(fā)送的串口數(shù)據(jù)包總共包含14個字節(jié),其中前2個字節(jié)表示幀的開始(SOF),第3個字節(jié)表示傳感器類型,第4個字節(jié)表示傳感器ID,第5個字節(jié)表示命令I(lǐng)D,第6~13個字節(jié)表示濕度和溫度數(shù)據(jù),最后1個字節(jié)表示幀的結(jié)束位。
在AM2302傳感器的數(shù)據(jù)包中,HH和HL分別表示濕度的高八位和低八位數(shù)據(jù),TH和TL表示溫度的高八位和低八位數(shù)據(jù)。根據(jù)《CBT模塊通訊協(xié)議》文檔的查詢,濕度的值可以通過將HH的值轉(zhuǎn)換為十進制并乘以256,然后加上HL的十進制值,最后除以10來得出,單位為百分比(%)。溫度的值可以通過將TH的值轉(zhuǎn)換為十進制并乘以256,然后加上TL的十進制值,最后除以10來得出,單位為攝氏度(℃)。
以1組數(shù)據(jù)“EE CC OA 01 01 00 00 02 61 00 F2 00 00 FF”為例來計算,HH=02,HL=61,TH=00,TL=F2,計算濕度為60.9%,溫度為24.2℃。這個數(shù)據(jù)解析方法可以用來準確地從傳感器發(fā)送的數(shù)據(jù)包中提取濕度和溫度信息。
在前期工作完成后,可以著手設(shè)計LabVIEW數(shù)據(jù)解析部分,以將串口中發(fā)送的數(shù)據(jù)經(jīng)過設(shè)計的數(shù)據(jù)解析程序讀取出來。在設(shè)計數(shù)據(jù)解析模塊時,需要明確定義串口指令,以確??梢詼蚀_地讀取所需的數(shù)據(jù)。接下來,將讀取到的十六進制數(shù)據(jù)轉(zhuǎn)化為十進制。在這個流程中,數(shù)據(jù)包以“EECC 0A01 0100 00”開頭,以“FF”結(jié)尾,而中間部分包含了所需的數(shù)據(jù)。
這個數(shù)據(jù)解析部分的設(shè)計將確保能夠有效地從串口接收的數(shù)據(jù)中提取所需的信息,并進行進一步的處理和分析。
數(shù)據(jù)保存格式部分,該部分是設(shè)計溫濕度數(shù)據(jù)保存程序,包括保存路徑的選擇和保存格式的定義。首先提醒工作人員選擇保存路徑,在退出程序時,用戶將收到提示,要求選擇保存溫濕度數(shù)據(jù)的文件路徑;設(shè)計保存格式,具體格式包括將數(shù)值轉(zhuǎn)換為小數(shù)形式,并保存小數(shù)點后2位。此外,在文檔中還需包括采集數(shù)據(jù)的時間戳。
這個部分的設(shè)計確保了溫濕度數(shù)據(jù)能夠以規(guī)范的格式和時間戳保存,以便后續(xù)的數(shù)據(jù)分析和記錄。用戶可以自主選擇保存的路徑,而數(shù)據(jù)則以易于閱讀和分析的形式存儲。
數(shù)據(jù)波形顯示部分,在數(shù)據(jù)解析后,將這些數(shù)據(jù)分別可視化顯示在波形圖上。在波形圖中,設(shè)計了溫濕度閾值,當數(shù)據(jù)超過這些閾值時,會觸發(fā)報警機制,導(dǎo)致報警燈點亮。如果報警燈保持紅色,表明當前溫濕度值不適合農(nóng)作物的生長,此時需要工作人員采取相應(yīng)的措施。
為了確保LabVIEW程序的可移植性和安全性,希望能夠?qū)⑵渖蔀榭蓤?zhí)行文件(exe)。通過這種方式,可以將LabVIEW程序打包成一個獨立的可執(zhí)行文件,用戶可以在不需要額外安裝LabVIEW環(huán)境的情況下直接在其他電腦上運行。此外,生成的可執(zhí)行文件會自動包含所需的驅(qū)動組件,使用戶無需手動配置相關(guān)環(huán)境,提高了程序的易用性和安全性。
這一步驟對于確保LabVIEW程序在不同計算機上的可用性和穩(wěn)定性至關(guān)重要,特別是在需要分享程序或在沒有LabVIEW開發(fā)環(huán)境的計算機上運行時。這種方式確保了程序的獨立性,用戶可以方便地安裝和使用,同時保護了程序的完整性和安全性。
本次實驗使用AM2302溫濕度傳感器進行數(shù)據(jù)采集,其中代碼已編譯完成,只需通過串口讀取數(shù)據(jù)即可。首先保證前面板中的端口號與傳感器的串口號一致;設(shè)置波特率為115200,數(shù)據(jù)位為8,停止位為1,將溫度閾值設(shè)為30℃,濕度閾值設(shè)為70%;將所采集到的數(shù)據(jù)顯示到控制面板中。完成準備工作后,開始運行程序,當濕度超過70%時,報警燈亮起。在程序退出時,系統(tǒng)會提示用戶選擇溫度和濕度數(shù)據(jù)的保存路徑。
最終所采集到的數(shù)據(jù)如圖2所示,保存的數(shù)據(jù)格式如圖3所示,在文本文檔中包括了采集數(shù)據(jù)的時間戳,并將溫濕度數(shù)據(jù)保留了小數(shù)點后2位。值得注意的是,在本次數(shù)據(jù)采集過程中,手指的觸碰對傳感器產(chǎn)生了影響,使得溫濕度數(shù)據(jù)值發(fā)生了變化。
圖2 前面板圖
圖3 溫濕度數(shù)據(jù)圖
這個實驗結(jié)果展示了程序的功能,包括數(shù)據(jù)采集、報警功能、數(shù)據(jù)保存和時間戳記錄。這些功能有助于監(jiān)測溫濕度變化,并保存數(shù)據(jù)以供后續(xù)分析和記錄。
在本實驗設(shè)計中,溫濕度報警值是根據(jù)實驗的需要隨意選擇的,但在實際應(yīng)用中,可以根據(jù)具體農(nóng)作物的生長需求來選擇合適的溫濕度報警值。這樣的靈活性可以確保環(huán)境參數(shù)與農(nóng)作物的要求相匹配,當數(shù)據(jù)長時間超過所設(shè)定的報警值時,工作人員可以采取相應(yīng)的措施,以確保當前的環(huán)境恢復(fù)到適宜農(nóng)作物生長的狀態(tài)。
因此,在實際農(nóng)業(yè)生產(chǎn)中,根據(jù)不同的農(nóng)作物種類和生長階段,可以調(diào)整溫濕度報警值,以滿足特定作物的生長需求。這種定制化的環(huán)境監(jiān)測和報警系統(tǒng)有助于提高農(nóng)作物的產(chǎn)量和質(zhì)量,并最大程度地減少不利環(huán)境因素對農(nóng)業(yè)生產(chǎn)的影響。
本文成功完成了基于LabVIEW的智能農(nóng)業(yè)信息采集處理系統(tǒng)的設(shè)計,實現(xiàn)了數(shù)據(jù)的有效采集和處理。通過下位機上的傳感器,系統(tǒng)可以實時采集農(nóng)作物生長環(huán)境的相關(guān)數(shù)據(jù)。上位機對這些數(shù)據(jù)進行處理和判斷,經(jīng)過大量測試表明系統(tǒng)能夠穩(wěn)定地實時收集數(shù)據(jù)。這對于實現(xiàn)農(nóng)作物生長環(huán)境的智能化測控管理具有積極的作用,具備廣泛的推廣應(yīng)用價值。