李想
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院, 電子信息學(xué)院, 陜西, 西安 710302)
我國是一個以農(nóng)業(yè)發(fā)展為主的國家,農(nóng)業(yè)種植水平的高低直接影響著整個國家的經(jīng)濟水平。近年來,我國的水稻種植技術(shù)迅猛發(fā)展,在水稻的種植過程中,灌溉是其中關(guān)鍵的一個步驟。雖然農(nóng)作物的灌溉已經(jīng)逐漸實現(xiàn)自動化,但是現(xiàn)今的自動化灌溉裝置還存在著很多缺陷,對需灌溉的水量不能進行自動控制,不夠智能化,在灌溉的過程中會出現(xiàn)灌溉量大,不僅對水稻造成了損傷,還在很大程度上浪費了水資源;相反,灌溉量少,則達不到良好的效果。針對以上的問題,本文設(shè)計一款基于STM32的水稻大田智能灌溉系統(tǒng),該系統(tǒng)可以檢測水稻生長環(huán)境的溫度和土壤濕度,當檢測的數(shù)據(jù)與設(shè)定數(shù)據(jù)相差較多時,該系統(tǒng)就會自動啟動灌溉裝置進行水稻大田的灌溉,系統(tǒng)的使用使灌溉的效率得到了提高,同時節(jié)省了大量的人力物力,起到了節(jié)水節(jié)能的目的。
STM32是一種32單片機的微控制器,它包含了很多系列來滿足各類行業(yè)的市場需求,本文將選用增強型的STM32F103ZET6作為灌溉系統(tǒng)的微控制器,因其具有先進的內(nèi)核結(jié)構(gòu)、簡短的中斷時延和喚醒周期、裝備電源控制器、開發(fā)完善速度快等特點,被廣泛的運用在汽車、工業(yè)建筑等行業(yè)中。
RT-Thread是某公司開發(fā)的一種操作系統(tǒng),具有小巧靈活可剪輯高實時特點,除了可以作為嵌入式內(nèi)核外還可以作為嵌入式系統(tǒng)的軟件平臺,產(chǎn)品成熟且用途廣泛。
它是一套可以進行數(shù)據(jù)存儲和分級組織、訪問和獲取等操作的數(shù)據(jù)類型,也是向用戶提供數(shù)據(jù)訪問的機制。
本文構(gòu)建的智能灌溉系統(tǒng)是面向大面積且需要實施進行監(jiān)控管理的水稻,水對于水稻生長的影響不言而喻,因此在構(gòu)建水稻大田灌溉系統(tǒng)時需要滿足以下幾點要求:
(1) 環(huán)境監(jiān)測數(shù)據(jù)實時采集
智能灌溉系統(tǒng)需要掌握稻田的環(huán)境溫度、濕度、缺水量、設(shè)備工作狀態(tài)等信息情況,才能實現(xiàn)灌溉操作的運行[1]。
(2) 通信方式
為了降低布線的成本和避免水稻大田因布線的原因影響種植,因此選擇無線網(wǎng)絡(luò)進行數(shù)據(jù)的傳輸。
(3) 遠程監(jiān)控和灌水控制
設(shè)計系統(tǒng)的目的是節(jié)省人力物力,使灌溉更具智能化,因此該系統(tǒng)需要具備遠程監(jiān)控一節(jié)遠程控制的功能。
(4) 灌溉控制
灌溉控制包含對灌溉方式的控制,即可以選擇手動或者自動灌溉方式,同時對于溫度閾值、濕度閾值、灌溉時間、灌溉區(qū)域、灌溉量等進行設(shè)定。
(5) 系統(tǒng)管理
針對采集的數(shù)據(jù)和灌溉信息等情況需要建立系統(tǒng)化的管理模塊,總控制室會根據(jù)實際情況對稻田進行灌溉,因此該系統(tǒng)需要具備良好的數(shù)據(jù)處理能力和操作友好性,方便用戶進行界面的操作,避免因為操作失誤產(chǎn)生錯誤。
(6) 續(xù)航能力
水稻的生長周期較長,如果耕作現(xiàn)場沒有電源,需要用電池進行供電來保證系統(tǒng)的正常運行,為了提升系統(tǒng)的續(xù)航周期,低功耗是系統(tǒng)設(shè)計時的需求之一。
(7) 環(huán)境適應(yīng)性
該系統(tǒng)是以無線網(wǎng)絡(luò)傳感器為傳輸方式,系統(tǒng)組成包含了很多硬件系統(tǒng)和傳感器節(jié)點,而考慮生產(chǎn)活動時的環(huán)境因素,因此在設(shè)計灌溉系統(tǒng)時要充分考慮環(huán)境因素的影響,既要經(jīng)受自然天氣因素也要考慮安裝位置和安裝方式對生產(chǎn)的影響,使系統(tǒng)能夠適應(yīng)稻田的生長環(huán)境。
將STM32F103ZET6作為灌溉系統(tǒng)的控制芯片,主頻是72 MHz,芯片提供多個外設(shè)接口,實現(xiàn)了強大的綜合性能。針對該模塊設(shè)計了最小系統(tǒng)和外設(shè)接口電路以及外圍LCD接口,針對各個模塊進行設(shè)計分析。
3.1.1 最小系統(tǒng)電路設(shè)計
最小系統(tǒng)電路的設(shè)計是為了保障硬件和軟件的平穩(wěn)運行,并由多個電路組成的。首先是為系統(tǒng)供電的電源電路,也是最小系統(tǒng)運行的根本,設(shè)計了高速時鐘8 MHz的無源晶振電路,低速時鐘32.768 kHz晶振。當系統(tǒng)出現(xiàn)技數(shù)終止、軟件復(fù)位等情況時選用系統(tǒng)復(fù)位方式,而當從待機模式返回以及進行上、掉電復(fù)位時選用電源復(fù)位方式。
3.1.2 LCD接口設(shè)計
本系統(tǒng)選用了對比度更高、色彩效果更佳的TFT-LCD薄膜晶體管液晶演示器來顯示實時數(shù)據(jù)。由于STM32F103ZET6芯片的內(nèi)部沒有設(shè)置觸摸控制器和集成液晶屏,因此需要外接驅(qū)動芯片來控制,如圖1所示。其中ILI9341和XPT2046作為驅(qū)動芯片分別控制著顯示屏和觸摸屏,實現(xiàn)了SPI接口與顯示器直接的通信。
圖1 STM32控制LCD示意圖
系統(tǒng)進行灌溉指令的操作依據(jù)之一就是土壤濕度的數(shù)值。土壤濕度對于水稻的生長影響巨大,如果濕度過高會產(chǎn)生大量細菌危害稻苗,而濕度過低時水稻不能吸收養(yǎng)料不利生長,因此需要設(shè)計濕度傳感器模塊來監(jiān)測土壤濕度。土壤濕度傳感器主要的組成部分為土壤探頭和土壤濕度處理模塊,兩者之間由杜邦線連接。其工作的原理是利用土壤探頭插進土壤中進行濕度的檢測,將檢測的信息通過土壤濕度處理模塊進行分析,經(jīng)分析后會得到具體的數(shù)據(jù),將這些具體的數(shù)據(jù)傳輸?shù)街骺匕?,主控板會智能地將采集的?shù)據(jù)與設(shè)定的土壤濕度閾值進行比較,如果所采集到的數(shù)據(jù)值小于所設(shè)的閾值,水泵就會自動啟動對農(nóng)作物進行灌溉以保證稻田濕度[2]。
本文選用的是DHT11溫濕度傳感器,也是STM32F407主控板上自帶的,其電路的連接如圖2所示。圖中的PG9主要是將處理器和DHT11傳感器間的數(shù)據(jù)進行同步和傳輸,數(shù)據(jù)的格式為:濕度的8位整數(shù)的數(shù)據(jù)+濕度的8位小數(shù)的數(shù)據(jù)+溫度的8位整數(shù)的數(shù)據(jù)+8位小數(shù)的濕度值+8位校驗和。傳感器啟動后,先將模式設(shè)置為輸出模式,并拉低電平,持續(xù)的時間不少于18 ms,之后持續(xù)抬高電平至20 μs~40 μs,當模式設(shè)置為輸入模式時,如果低電平和高電平分別持續(xù)80 μs,說明DHT11傳感器有響應(yīng)信號,如果沒有響應(yīng)信號,則一直為高電平。在輸入模式運行時,當?shù)碗娖降闹禐?0 μs時,如果高電平在26 μs~28 μs之間,稱之為bit 0;如果高電平為70 μs,則稱之為bit 1。一組數(shù)據(jù)采集完成后,在下一次的信息采集開始前會保持原始的狀態(tài)不變。
圖2 溫濕度傳感器電路連接圖
在選定電磁閥時,從考慮成本角度出發(fā),水稻大田面積大,需要布置的節(jié)點也很多,選用交流電來供應(yīng)顯然成本要高很多,而且在該系統(tǒng)中電磁閥布置在灌溉水管的支管上,流量不大可以考慮使用蓄電池方式進行供電,所需要的費用也降低很多。該系統(tǒng)設(shè)計選用雙穩(wěn)態(tài)12 V DC的電磁閥門,因其具有國際領(lǐng)先的脈沖和永磁技術(shù),可以實現(xiàn)低耗能,在進行電磁閥工作時產(chǎn)生的熱量較少,可以降低燃燒的風(fēng)險值。它的工作原理是系統(tǒng)下達指令后,電磁閥驅(qū)動電器線圈,實現(xiàn)電磁閥打開進行灌溉。它的工作狀態(tài)受到控制器節(jié)點控制,并將工作狀態(tài)利用無線網(wǎng)絡(luò)傳輸?shù)娇刂浦行?,控制中心再根?jù)實際情況進行相應(yīng)的操作。
出于對灌溉系統(tǒng)的成本和生產(chǎn)方便的考慮,選用無線傳感器網(wǎng)路進行網(wǎng)絡(luò)節(jié)點和數(shù)據(jù)的連通和發(fā)送,它是這個系統(tǒng)的基礎(chǔ)。由于水稻大田面積大,傳感器節(jié)點眾多,因此在選用無線網(wǎng)絡(luò)節(jié)點時需要具備耗能低、安全可靠而且要具備抗干擾的無線網(wǎng)絡(luò)節(jié)點。選用CC2530F256作為無線通信的處理芯片,相比其他芯片具有寬電壓范圍、耗能低、電量可監(jiān)控的優(yōu)點。該芯片的電路設(shè)計主要包含CC2530單片機、無線端口、晶振以及IO接口,無線網(wǎng)絡(luò)模塊將硬件模塊與軟件模塊進行連接,控制中心通過無線網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù),各節(jié)點通過無線網(wǎng)絡(luò)進行連通,發(fā)揮出各自的功能[3]。
控制中心想要做到全面監(jiān)控,需要將目標區(qū)域安裝可視化的設(shè)備,既可以實現(xiàn)對水稻大田的全面觀察,又可以進行布防,區(qū)域出現(xiàn)問題可以直觀地找出問題。本系統(tǒng)采用的是網(wǎng)絡(luò)攝像頭,可以進行互聯(lián)網(wǎng)端和手機的雙監(jiān)控,支持移動偵測和語音溝通。
在進行軟件系統(tǒng)設(shè)計前,需要選用一個穩(wěn)定性高、靈活可剪裁的操作系統(tǒng),經(jīng)過討論研究,系統(tǒng)選用RT-Thread作為本文的操作系統(tǒng)。選定嵌入操作系統(tǒng)后還面臨一個難題,就是將RT-Thread移植到STM32F103ZET6芯片上,移植的難點在于不同語言編寫的替代,需要認識RT-Thread嵌入系統(tǒng)和STM32F103ZET6微處理的架構(gòu),才可能進行成功的移植。
移植前先對STM32F103ZET6中的寄存器組和指令集進行分析。對RT-Thread源文件的目錄結(jié)構(gòu)進行解析,了解到影響移植的文件夾有bsp和libcpu 2個,那么即可對其進行源文件添加,從而實現(xiàn)移植軟件系統(tǒng)的架構(gòu),如圖3所示。
圖3 移植軟件系統(tǒng)軟件架構(gòu)
由于RT-Thread硬件資源豐富且功能復(fù)雜,因此針對RT-Thread系統(tǒng)選用OS的程序開發(fā)方式。RT-Thread的任務(wù)目的是“線程”,STM32F103ZET6會根據(jù)提供的線程來執(zhí)行程序,除了要合理安排線程外還要注意線程之間的聯(lián)系等問題。建立線程之初會根據(jù)優(yōu)先級最高標準確定初始線程,再通過它來創(chuàng)建子線程,完成后脫離線程,例如濕度、溫度、可視化、LCD顯示等系統(tǒng)中的模塊都是將線程預(yù)先的設(shè)置,實現(xiàn)各模塊的調(diào)度。
將文件系統(tǒng)從官網(wǎng)上獲取,具體操作是下載該文件系統(tǒng)的源代碼后進行解壓,移植的難點在于配置信息的更換,大致流程是將需要細致的文件系統(tǒng)進行數(shù)據(jù)類型的修改,為了保證文件系統(tǒng)的正常使用還需要將配置頭文件進行修改,最后根據(jù)底層驅(qū)動編寫函數(shù)接口。
稻田控制器作為嵌入式處理器,也是整個系統(tǒng)中唯一的網(wǎng)關(guān)節(jié)點,主要負責(zé)對入網(wǎng)傳感器進行入網(wǎng)干預(yù)和數(shù)據(jù)的傳輸,當控制中心下達電磁閥閉合指令后,稻田控制器節(jié)點依據(jù)指令進行灌溉,控制器節(jié)點通過對溫濕度的數(shù)據(jù)采集,回傳給上位機,實現(xiàn)灌溉量的完成。具體流程是:在灌溉系統(tǒng)中控制器節(jié)點的目標是構(gòu)建網(wǎng)絡(luò),并將16位短地址分配給傳感器節(jié)點,當所有節(jié)點加入到網(wǎng)絡(luò)中后,終端傳感器節(jié)點將數(shù)據(jù)傳輸給控制器節(jié)點,再通過GPRS上傳至上位機,上位機再將數(shù)據(jù)傳入到主機,主機下達指令給目標節(jié)點,該節(jié)點接受指令后采集數(shù)據(jù)回饋給系統(tǒng)控制中心,控制中心根據(jù)節(jié)點采集的溫濕度數(shù)據(jù)來控制電磁閥的閉合,實現(xiàn)對稻田的灌溉和完成灌溉的任務(wù),既節(jié)省了水資源,又形成了科學(xué)化的水稻生長管理[4]。田間控制器節(jié)點主程序流程如圖4所示。
圖4 田間控制器節(jié)點主程序流程
作為本系統(tǒng)的核心部分,監(jiān)控軟件的設(shè)計實現(xiàn)了對系統(tǒng)的管理和控制。監(jiān)控軟件負責(zé)處理稻田灌溉的所有信息,通過監(jiān)控平臺進行灌溉指令的下達,利用操作界面可以進行灌溉信息的修改,使灌溉能夠根據(jù)實際需求有效地進行。監(jiān)控平臺軟件的設(shè)計本著易操作、界面清晰、功能區(qū)明確的設(shè)計目標,降低操作失誤的風(fēng)險。其操作基本流程是管理員登錄監(jiān)控界面,輸入系統(tǒng)的用戶名和密碼,登錄到界面后可以通過窗口觀看各個區(qū)域的稻田灌溉情況,如果想要進行某一操作命令,打開菜單的功能選擇窗口,此窗口設(shè)置了關(guān)于灌溉系統(tǒng)的功能模塊,針對命令點擊相應(yīng)的功能模塊即可。該系統(tǒng)的監(jiān)控軟件還提供了數(shù)據(jù)存儲和查詢界面模塊,根據(jù)傳感器反饋的信息系統(tǒng)會生成數(shù)據(jù)表和曲線圖,方便查詢和打印數(shù)據(jù),通過圖表,管理員也能隨時掌握水稻的生長情況以及滿足及時灌溉的需求。監(jiān)控平臺軟件流程如圖5所示。
圖5 監(jiān)控平臺軟件流程
為了驗證基于STM32水稻大田智能灌溉系統(tǒng)設(shè)計的有效性,利用實驗室搭建實驗原型樣機進行仿真實驗。
因為實驗室條件有限,所以利用傳感器連接到電路板的頂端,選擇一個蓄水裝置作為水源,電磁閥門與水源連接,顯示器和按鍵進行操作和監(jiān)控,特別注意的是每個模塊均是單獨供電來降低系統(tǒng)功耗。系統(tǒng)選用STM32F103作為控制芯片對存儲模塊、電磁閥模塊、溫濕度傳感器、電源供電模塊、無線網(wǎng)絡(luò)都進行了實際測試,符合實驗要求[5]。
系統(tǒng)完成初始化后進行供電,將樣機測試分成遠程控制功能測試、可視化效果測試、智能決策功能測試。
(1) 遠程控制功能:通過無線網(wǎng)絡(luò)連接后,利用手機客戶端和電腦客戶端對系統(tǒng)下達指令,檢驗其遠程控制灌溉功能,經(jīng)過實驗測試,通過手機客戶端發(fā)送的指令均能有效完成。
(2) 可視化效果:實驗主要是檢驗攝像頭在白天和黑夜情況下顯示器的視覺效果,測試結(jié)果是可視化效果,清晰良好。
(3) 智能決策功能模塊:主要介紹智能模塊,實驗測試的對象是智能模式中的自動灌溉和手動操作灌溉。該系統(tǒng)中的手動操作也是基于智能的基礎(chǔ)之上,用戶只需要利用手機客戶端發(fā)送指令,系統(tǒng)就會通過傳感器采集的數(shù)據(jù)來設(shè)定澆水的時間,而自動模式系統(tǒng)會設(shè)定灌溉程序,根據(jù)設(shè)計的程序每到既定時間后,系統(tǒng)就會采集數(shù)據(jù),并通過系統(tǒng)的計算確定灌溉時間,實驗測試結(jié)果顯示無論是手動還是自動系統(tǒng)均能正常工作。
通過對樣機的實驗,基于STM32水稻大田智能灌溉系統(tǒng)各個功能模塊工作正常,系統(tǒng)運行平穩(wěn),對于軟件和硬件的設(shè)計均能滿做系統(tǒng)的設(shè)計要求,實現(xiàn)了智能灌溉的目的。
設(shè)計了以STM32為主控制器的智能灌溉系統(tǒng),利用硬件系統(tǒng)與軟件系統(tǒng)的設(shè)計實現(xiàn)了對水稻大田的智能灌溉,經(jīng)試驗樣機的測試,驗證了該系統(tǒng)能夠平穩(wěn)運行,達到設(shè)計要求。希望本文設(shè)計的智能灌溉系統(tǒng)可以真正應(yīng)用在水稻大田的灌溉工作中,實現(xiàn)水稻農(nóng)耕的智能化,為節(jié)水節(jié)能作出貢獻。