潘 杰,王福平,焦方桐,趙正軍(.北方民族大學(xué)電氣信息工程學(xué)院,銀川 7500;.北方民族大學(xué)創(chuàng)新創(chuàng)業(yè)學(xué)院,銀川 7500)
我國(guó)的淡水資源豐富,但人均水資源占有量約2 300 m3,只占世界人均水平1/4,是全球人均淡水資源最為缺乏的國(guó)家之一[1]。其中農(nóng)業(yè)用水占總供水的70%左右,而且農(nóng)業(yè)灌溉用水的利用率非常低。在水資源緊缺的條件下,要實(shí)現(xiàn)灌溉農(nóng)業(yè)的可持續(xù)發(fā)展,就需要農(nóng)業(yè)灌溉更加精確智能,按照農(nóng)作物需水要求準(zhǔn)確及時(shí)地預(yù)報(bào),并實(shí)現(xiàn)水量的自動(dòng)控制,精確施予。設(shè)計(jì)中采用LabVIEW圖形化編程語(yǔ)言,具有編程簡(jiǎn)單方便,界面形象直觀,縮短開(kāi)發(fā)周期,并可根據(jù)用戶的需要對(duì)系統(tǒng)做出快速更改等[2],缺點(diǎn)是NI公司的數(shù)據(jù)采集卡比較貴,對(duì)于中小企業(yè)來(lái)說(shuō)是一筆不小的開(kāi)銷。所以本設(shè)計(jì)提出STC單片機(jī)和LabVIEW的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案,從而實(shí)現(xiàn)一種在LabVIEW開(kāi)發(fā)環(huán)境下的低成本數(shù)據(jù)采集系統(tǒng)[3]。
系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
本系統(tǒng)采用上位機(jī)和下位機(jī)兩部分,上位機(jī)由LabVIEW面板組成,負(fù)責(zé)接收節(jié)點(diǎn)上傳的土壤濕度數(shù)據(jù)并將濕度數(shù)據(jù)實(shí)時(shí)顯示(數(shù)值與波形圖顯示)并保存在Excel文件中,以備歷史數(shù)據(jù)查詢。如果濕度數(shù)據(jù)超閥值,將點(diǎn)亮LED燈報(bào)警。下位機(jī)則采用STC系列單片機(jī)作為節(jié)點(diǎn)控制土壤濕度數(shù)據(jù)采集,STM32系列單片機(jī)作為主控處理土壤濕度數(shù)據(jù),并根據(jù)LabVIEW顯示濕度調(diào)整電磁閥開(kāi)關(guān)或其他用電設(shè)備。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
系統(tǒng)硬件分為上位機(jī)和下位機(jī)兩部分,其中上位機(jī)由LabVIEW構(gòu)成,功能是顯示實(shí)時(shí)土壤濕度和存儲(chǔ)歷史數(shù)據(jù),硬件部分由一般PC機(jī)即可實(shí)現(xiàn)功能。下位機(jī)硬件電路設(shè)計(jì)包括子節(jié)點(diǎn)控制器設(shè)計(jì)和主控制器設(shè)計(jì),主控制器主要功能是接收節(jié)點(diǎn)上傳的數(shù)據(jù),分析處理、按鈕狀態(tài)控制、給節(jié)點(diǎn)發(fā)送控制指令等功能[4]。節(jié)點(diǎn)主要實(shí)現(xiàn)功能是數(shù)據(jù)采集、處理、上傳、與主控制器的RS485通信、繼電器控制輸出等模塊的設(shè)計(jì)。
(1)節(jié)點(diǎn)控制器設(shè)計(jì)。節(jié)點(diǎn)控制器模塊采用STC12C5A60S2主控芯片,通信方面,經(jīng)過(guò)TTL轉(zhuǎn)RS-485模塊和其他設(shè)備通信。模塊掛接有繼電器、土壤水分傳感器和ModBus總線。STC12單片機(jī)引腳與繼電器信號(hào)引腳連接,繼電器與電磁閥連接。STC12單片機(jī)通過(guò)TTL轉(zhuǎn)RS485模塊與主控制器和按鍵面板通信,同時(shí)通過(guò)另一不在總線上的TTL轉(zhuǎn)RS485模塊,向SM2801土壤水分傳感器發(fā)送指令,獲取濕度數(shù)據(jù)。
節(jié)點(diǎn)主控芯片STC12上電后,等待電源和傳感器穩(wěn)定。隨后讀取繼電器狀態(tài),對(duì)繼電器狀態(tài)進(jìn)行保存。讀取水分傳感器數(shù)據(jù),對(duì)水分傳感器數(shù)據(jù)進(jìn)行校驗(yàn)、保存。主控系統(tǒng)傳來(lái)讀取指令,并上傳數(shù)據(jù)給主控制器。如果是控制信息,則判斷是按鍵面板傳來(lái)的指令還是主控制器傳來(lái)的指令,并對(duì)繼電器進(jìn)行設(shè)置和和回應(yīng)指令。
(2)主控制器設(shè)計(jì)。主控制器主要負(fù)責(zé)與子節(jié)點(diǎn)、按鍵通信和數(shù)據(jù)處理,對(duì)節(jié)點(diǎn)通信、數(shù)據(jù)采集、工作狀態(tài)上傳等進(jìn)行調(diào)度。在整個(gè)嵌入式系統(tǒng)中,主控制器是唯一的調(diào)度者,分配著所有現(xiàn)場(chǎng)設(shè)備、控制器等的工作。主控制器系統(tǒng)采用ST公司生產(chǎn)的STM32F103RCT6作為控制核心,通過(guò)TTL轉(zhuǎn)RS485模塊,TTL轉(zhuǎn)RS485模塊之間使用ModBus總線式連接,實(shí)現(xiàn)和子節(jié)點(diǎn)、按鍵面板控制器相連接。STM32單片機(jī)通過(guò)控制EL817光耦電阻,從而控制24~220 V繼電器,進(jìn)而控制施肥裝置、變頻器、水泵。STM32單片機(jī)引腳控制三極管,進(jìn)而直接控制主控制器上的蜂鳴器。而施肥狀態(tài)引腳、水泵狀態(tài)引腳則經(jīng)過(guò)10K電阻后,各自直接與STM32單片機(jī)引腳相連接。
下位機(jī)單片機(jī)軟件設(shè)計(jì)包括主控制器、節(jié)點(diǎn)數(shù)據(jù)采集、處理和通信三大部分的功能模塊的設(shè)計(jì)。
3.1.1 主控制器數(shù)據(jù)處理
主控制器數(shù)據(jù)處理流程圖如圖2所示,該部分主要通過(guò)核心芯片STM32F103RTC16的USART1串口接收處理節(jié)點(diǎn)和主控制器的數(shù)據(jù),并對(duì)指令進(jìn)行處理顯示或發(fā)送主控制器的指令給節(jié)點(diǎn)作出相應(yīng)操作。
圖2 主控制器數(shù)據(jù)處理流程圖
3.1.2 節(jié)點(diǎn)數(shù)據(jù)處理
節(jié)點(diǎn)程序流程框圖如圖3所示,該部分由節(jié)點(diǎn)電路核心芯片STC12C5A處理數(shù)據(jù),主要功能是完成對(duì)傳感器發(fā)送指令,判斷收到傳感器反饋回的指令集后進(jìn)行相應(yīng)處理,可直接上傳至上位機(jī)LabVIEW或者主控制器分析處理顯示。
圖3 節(jié)點(diǎn)程序流程框圖
上位機(jī)采用LabVIEW開(kāi)發(fā)環(huán)境下主要實(shí)現(xiàn)對(duì)下位機(jī)節(jié)點(diǎn)上傳的土壤濕度數(shù)據(jù)在主控制端進(jìn)行定時(shí)采集并經(jīng)過(guò)處理后實(shí)時(shí)顯示[5],并將采集數(shù)據(jù)保存在Excel文件中,供用戶調(diào)用查看歷史數(shù)據(jù)或灌溉規(guī)律等,總體設(shè)計(jì)該上位機(jī)具有土壤濕度實(shí)時(shí)查詢、采集、轉(zhuǎn)換、顯示、控制、報(bào)警、儲(chǔ)存、歷史數(shù)據(jù)采集等操作。
3.2.1 LabVIEW前面板程序設(shè)計(jì)
上位機(jī)LabVIEW運(yùn)行主界面(前面板)如圖4所示。
圖4 LabVIEW運(yùn)行主界面(開(kāi)始采集前界面)
主界面包括串口通信參數(shù)配置、運(yùn)行控制選項(xiàng)、實(shí)時(shí)數(shù)據(jù)顯示及實(shí)時(shí)曲線顯示、濕度超限報(bào)警、歷史數(shù)據(jù)顯示部分。串口通信參數(shù)設(shè)置用于設(shè)置上位機(jī)與下位機(jī)RS485通信相關(guān)參數(shù)(串口號(hào)、波特率、數(shù)據(jù)位、停止位及奇偶校驗(yàn)位等)。當(dāng)采集到的數(shù)據(jù)超過(guò)設(shè)定的報(bào)警門(mén)限值時(shí),運(yùn)行控制選項(xiàng)用于啟動(dòng)或停止下位機(jī)數(shù)據(jù)采集[6]、數(shù)據(jù)存儲(chǔ)以及數(shù)據(jù)回放等功能。數(shù)據(jù)顯示用于顯示某采集通道的實(shí)時(shí)數(shù)據(jù),實(shí)時(shí)曲線用于顯示采集的實(shí)時(shí)數(shù)據(jù)曲線。
3.2.2 LabVIEW程序面板設(shè)計(jì)
系統(tǒng)主程序結(jié)構(gòu)如圖5所示。
圖5 系統(tǒng)主程序功能模塊結(jié)構(gòu)圖
系統(tǒng)結(jié)構(gòu)在經(jīng)典狀態(tài)機(jī)結(jié)構(gòu)的基礎(chǔ)上改進(jìn),主程序結(jié)構(gòu)為開(kāi)始進(jìn)入一個(gè)While循環(huán),然后在While循環(huán)中定義了一個(gè)事件結(jié)構(gòu)(即事件驅(qū)動(dòng)方式),在事件結(jié)構(gòu)中定義了4種事件,分別為開(kāi)啟數(shù)據(jù)采集、停止數(shù)據(jù)采集、退出數(shù)據(jù)采集及讀取歷史數(shù)據(jù)。在While循環(huán)中實(shí)時(shí)檢測(cè)驅(qū)動(dòng)事件的發(fā)生,如驅(qū)動(dòng)事件發(fā)生,則轉(zhuǎn)入到定義好的驅(qū)動(dòng)事件程序去執(zhí)行。在接收數(shù)據(jù)的過(guò)程中,如果單擊停止數(shù)據(jù)采集按鈕,則下位機(jī)停止數(shù)據(jù)采集,同時(shí)上位機(jī)停止接收采集數(shù)據(jù),退出接收下位機(jī)采集數(shù)據(jù)While循環(huán)結(jié)構(gòu)。如果單擊讀取歷史數(shù)據(jù)選項(xiàng),則將保存到指定路徑中的數(shù)據(jù)在前面板以波形圖和Excel表格顯示出來(lái)[7,8]。需要注意的是開(kāi)始采集前,要確認(rèn)數(shù)據(jù)停止采集按鈕處于未被按下?tīng)顟B(tài),讀取歷史數(shù)據(jù)前要將停止數(shù)據(jù)采集按鈕按下。
如圖6所示為系統(tǒng)某段時(shí)間濕度數(shù)據(jù)采集的LabVIEW數(shù)據(jù)顯示情況。
圖6 某段時(shí)間LabVIEW主界面數(shù)據(jù)顯示情況
由采集濕度數(shù)據(jù)波形顯示曲線窗口可以看出,在澆水后的一段時(shí)間內(nèi),土壤濕度會(huì)維持在一個(gè)固定值范圍之間變化(但幅度變化較小),且該時(shí)段土壤濕度一直較高,已經(jīng)超過(guò)預(yù)設(shè)濕度最高閥值,故可以看到濕度數(shù)據(jù)顯示窗口濕度過(guò)高燈點(diǎn)亮。歷史數(shù)據(jù)顯示部分,采集到的是某天灌溉以后從15:37到22:21的數(shù)據(jù),可以明顯看到土壤濕度隨時(shí)間緩慢下降,歷史數(shù)據(jù)表格顯示為存儲(chǔ)在Excel中的濕度數(shù)據(jù)。
按照設(shè)計(jì)預(yù)期,本系統(tǒng)主要實(shí)現(xiàn)對(duì)土壤濕度實(shí)時(shí)查詢、采集、顯示、控制、儲(chǔ)存等功能,設(shè)計(jì)的數(shù)據(jù)采集 系統(tǒng),經(jīng)實(shí)際驗(yàn)證,上位機(jī)LabVIEW與下位機(jī)節(jié)點(diǎn)可以正常通信,能夠?qū)崿F(xiàn)土壤濕度的采集與實(shí)時(shí)監(jiān)測(cè),可以根據(jù)情況選擇路徑在前面板以波形圖和表格的形式顯示出來(lái),且整套系統(tǒng)運(yùn)行實(shí)時(shí)、穩(wěn)定。在其他應(yīng)用中,本系統(tǒng)設(shè)計(jì)中的狀態(tài)機(jī)整體結(jié)構(gòu)和串口監(jiān)測(cè)、寫(xiě)數(shù)據(jù)、CRC-16循環(huán)冗余校驗(yàn),正常顯示轉(zhuǎn)化、數(shù)據(jù)保存、波形圖時(shí)間顯示等子VI程序,可以直接應(yīng)用于其他類似程序中具有較強(qiáng)的移植性,稍加修改,即可應(yīng)用于其他領(lǐng)域的數(shù)據(jù)采集控制,具有一定的參考價(jià)值和實(shí)用性[9]。
[1] 苗 碩.中國(guó)淡水資源現(xiàn)狀與保護(hù)措施探討[J].現(xiàn)代商貿(mào)工業(yè),2010,(17):19-21.
[2] 顧建華,嚴(yán)國(guó)軍.遠(yuǎn)程控制農(nóng)田自動(dòng)灌溉系統(tǒng)研制[J].軟件,2012,33(6):6-7.
[3] 申焱華,王汝杰,雷振山.LabVIEW入門(mén)與提高范例教程[M].北京:中國(guó)鐵道出版社,2006.
[4] 王永虹,徐 煒,郜立平. STM32F系列 ARM微控制器原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.
[5] 顧亞雄,朱翠英,許方華.基于LabVIEW 的單片機(jī)多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].自 動(dòng) 化技術(shù)與應(yīng)用,2009,28(10):46-48.
[6] 林 靜,林振宇,鄭福仁. LabVIEW虛擬儀器程序設(shè)計(jì)從入門(mén)到精通[M].北京:人民郵電出版社,2010.
[7] Robert H.Bishop National Instruments,著. 喬瑞萍,林 欣,譯.LabVIEW實(shí)踐教程[M].北京:電子工業(yè)出版社,2014.
[8] 彭 勇,潘曉曄,謝龍漢.LabVIEW虛擬儀器設(shè)計(jì)及分析[M].北京:清華大學(xué)出版社,2011.
[9] 李紅剛,張素萍.基于單片機(jī)和LabVIEW的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 國(guó)外電子測(cè)量技術(shù),2014,33(4):62-67.