李想
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院, 電子信息學(xué)院, 陜西, 西安 710302)
我國是一個(gè)以農(nóng)業(yè)發(fā)展為主的國家,農(nóng)業(yè)種植水平的高低直接影響著整個(gè)國家的經(jīng)濟(jì)水平。近年來,我國的水稻種植技術(shù)迅猛發(fā)展,在水稻的種植過程中,灌溉是其中關(guān)鍵的一個(gè)步驟。雖然農(nóng)作物的灌溉已經(jīng)逐漸實(shí)現(xiàn)自動(dòng)化,但是現(xiàn)今的自動(dòng)化灌溉裝置還存在著很多缺陷,對(duì)需灌溉的水量不能進(jìn)行自動(dòng)控制,不夠智能化,在灌溉的過程中會(huì)出現(xiàn)灌溉量大,不僅對(duì)水稻造成了損傷,還在很大程度上浪費(fèi)了水資源;相反,灌溉量少,則達(dá)不到良好的效果。針對(duì)以上的問題,本文設(shè)計(jì)一款基于STM32的水稻大田智能灌溉系統(tǒng),該系統(tǒng)可以檢測水稻生長環(huán)境的溫度和土壤濕度,當(dāng)檢測的數(shù)據(jù)與設(shè)定數(shù)據(jù)相差較多時(shí),該系統(tǒng)就會(huì)自動(dòng)啟動(dòng)灌溉裝置進(jìn)行水稻大田的灌溉,系統(tǒng)的使用使灌溉的效率得到了提高,同時(shí)節(jié)省了大量的人力物力,起到了節(jié)水節(jié)能的目的。
STM32是一種32單片機(jī)的微控制器,它包含了很多系列來滿足各類行業(yè)的市場需求,本文將選用增強(qiáng)型的STM32F103ZET6作為灌溉系統(tǒng)的微控制器,因其具有先進(jìn)的內(nèi)核結(jié)構(gòu)、簡短的中斷時(shí)延和喚醒周期、裝備電源控制器、開發(fā)完善速度快等特點(diǎn),被廣泛的運(yùn)用在汽車、工業(yè)建筑等行業(yè)中。
RT-Thread是某公司開發(fā)的一種操作系統(tǒng),具有小巧靈活可剪輯高實(shí)時(shí)特點(diǎn),除了可以作為嵌入式內(nèi)核外還可以作為嵌入式系統(tǒng)的軟件平臺(tái),產(chǎn)品成熟且用途廣泛。
它是一套可以進(jìn)行數(shù)據(jù)存儲(chǔ)和分級(jí)組織、訪問和獲取等操作的數(shù)據(jù)類型,也是向用戶提供數(shù)據(jù)訪問的機(jī)制。
本文構(gòu)建的智能灌溉系統(tǒng)是面向大面積且需要實(shí)施進(jìn)行監(jiān)控管理的水稻,水對(duì)于水稻生長的影響不言而喻,因此在構(gòu)建水稻大田灌溉系統(tǒng)時(shí)需要滿足以下幾點(diǎn)要求:
(1) 環(huán)境監(jiān)測數(shù)據(jù)實(shí)時(shí)采集
智能灌溉系統(tǒng)需要掌握稻田的環(huán)境溫度、濕度、缺水量、設(shè)備工作狀態(tài)等信息情況,才能實(shí)現(xiàn)灌溉操作的運(yùn)行[1]。
(2) 通信方式
為了降低布線的成本和避免水稻大田因布線的原因影響種植,因此選擇無線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的傳輸。
(3) 遠(yuǎn)程監(jiān)控和灌水控制
設(shè)計(jì)系統(tǒng)的目的是節(jié)省人力物力,使灌溉更具智能化,因此該系統(tǒng)需要具備遠(yuǎn)程監(jiān)控一節(jié)遠(yuǎn)程控制的功能。
(4) 灌溉控制
灌溉控制包含對(duì)灌溉方式的控制,即可以選擇手動(dòng)或者自動(dòng)灌溉方式,同時(shí)對(duì)于溫度閾值、濕度閾值、灌溉時(shí)間、灌溉區(qū)域、灌溉量等進(jìn)行設(shè)定。
(5) 系統(tǒng)管理
針對(duì)采集的數(shù)據(jù)和灌溉信息等情況需要建立系統(tǒng)化的管理模塊,總控制室會(huì)根據(jù)實(shí)際情況對(duì)稻田進(jìn)行灌溉,因此該系統(tǒng)需要具備良好的數(shù)據(jù)處理能力和操作友好性,方便用戶進(jìn)行界面的操作,避免因?yàn)椴僮魇д`產(chǎn)生錯(cuò)誤。
(6) 續(xù)航能力
水稻的生長周期較長,如果耕作現(xiàn)場沒有電源,需要用電池進(jìn)行供電來保證系統(tǒng)的正常運(yùn)行,為了提升系統(tǒng)的續(xù)航周期,低功耗是系統(tǒng)設(shè)計(jì)時(shí)的需求之一。
(7) 環(huán)境適應(yīng)性
該系統(tǒng)是以無線網(wǎng)絡(luò)傳感器為傳輸方式,系統(tǒng)組成包含了很多硬件系統(tǒng)和傳感器節(jié)點(diǎn),而考慮生產(chǎn)活動(dòng)時(shí)的環(huán)境因素,因此在設(shè)計(jì)灌溉系統(tǒng)時(shí)要充分考慮環(huán)境因素的影響,既要經(jīng)受自然天氣因素也要考慮安裝位置和安裝方式對(duì)生產(chǎn)的影響,使系統(tǒng)能夠適應(yīng)稻田的生長環(huán)境。
將STM32F103ZET6作為灌溉系統(tǒng)的控制芯片,主頻是72 MHz,芯片提供多個(gè)外設(shè)接口,實(shí)現(xiàn)了強(qiáng)大的綜合性能。針對(duì)該模塊設(shè)計(jì)了最小系統(tǒng)和外設(shè)接口電路以及外圍LCD接口,針對(duì)各個(gè)模塊進(jìn)行設(shè)計(jì)分析。
3.1.1 最小系統(tǒng)電路設(shè)計(jì)
最小系統(tǒng)電路的設(shè)計(jì)是為了保障硬件和軟件的平穩(wěn)運(yùn)行,并由多個(gè)電路組成的。首先是為系統(tǒng)供電的電源電路,也是最小系統(tǒng)運(yùn)行的根本,設(shè)計(jì)了高速時(shí)鐘8 MHz的無源晶振電路,低速時(shí)鐘32.768 kHz晶振。當(dāng)系統(tǒng)出現(xiàn)技數(shù)終止、軟件復(fù)位等情況時(shí)選用系統(tǒng)復(fù)位方式,而當(dāng)從待機(jī)模式返回以及進(jìn)行上、掉電復(fù)位時(shí)選用電源復(fù)位方式。
3.1.2 LCD接口設(shè)計(jì)
本系統(tǒng)選用了對(duì)比度更高、色彩效果更佳的TFT-LCD薄膜晶體管液晶演示器來顯示實(shí)時(shí)數(shù)據(jù)。由于STM32F103ZET6芯片的內(nèi)部沒有設(shè)置觸摸控制器和集成液晶屏,因此需要外接驅(qū)動(dòng)芯片來控制,如圖1所示。其中ILI9341和XPT2046作為驅(qū)動(dòng)芯片分別控制著顯示屏和觸摸屏,實(shí)現(xiàn)了SPI接口與顯示器直接的通信。

圖1 STM32控制LCD示意圖
系統(tǒng)進(jìn)行灌溉指令的操作依據(jù)之一就是土壤濕度的數(shù)值。土壤濕度對(duì)于水稻的生長影響巨大,如果濕度過高會(huì)產(chǎn)生大量細(xì)菌危害稻苗,而濕度過低時(shí)水稻不能吸收養(yǎng)料不利生長,因此需要設(shè)計(jì)濕度傳感器模塊來監(jiān)測土壤濕度。土壤濕度傳感器主要的組成部分為土壤探頭和土壤濕度處理模塊,兩者之間由杜邦線連接。其工作的原理是利用土壤探頭插進(jìn)土壤中進(jìn)行濕度的檢測,將檢測的信息通過土壤濕度處理模塊進(jìn)行分析,經(jīng)分析后會(huì)得到具體的數(shù)據(jù),將這些具體的數(shù)據(jù)傳輸?shù)街骺匕澹骺匕鍟?huì)智能地將采集的數(shù)據(jù)與設(shè)定的土壤濕度閾值進(jìn)行比較,如果所采集到的數(shù)據(jù)值小于所設(shè)的閾值,水泵就會(huì)自動(dòng)啟動(dòng)對(duì)農(nóng)作物進(jìn)行灌溉以保證稻田濕度[2]。
本文選用的是DHT11溫濕度傳感器,也是STM32F407主控板上自帶的,其電路的連接如圖2所示。圖中的PG9主要是將處理器和DHT11傳感器間的數(shù)據(jù)進(jìn)行同步和傳輸,數(shù)據(jù)的格式為:濕度的8位整數(shù)的數(shù)據(jù)+濕度的8位小數(shù)的數(shù)據(jù)+溫度的8位整數(shù)的數(shù)據(jù)+8位小數(shù)的濕度值+8位校驗(yàn)和。傳感器啟動(dòng)后,先將模式設(shè)置為輸出模式,并拉低電平,持續(xù)的時(shí)間不少于18 ms,之后持續(xù)抬高電平至20 μs~40 μs,當(dāng)模式設(shè)置為輸入模式時(shí),如果低電平和高電平分別持續(xù)80 μs,說明DHT11傳感器有響應(yīng)信號(hào),如果沒有響應(yīng)信號(hào),則一直為高電平。在輸入模式運(yùn)行時(shí),當(dāng)?shù)碗娖降闹禐?0 μs時(shí),如果高電平在26 μs~28 μs之間,稱之為bit 0;如果高電平為70 μs,則稱之為bit 1。一組數(shù)據(jù)采集完成后,在下一次的信息采集開始前會(huì)保持原始的狀態(tài)不變。

圖2 溫濕度傳感器電路連接圖
在選定電磁閥時(shí),從考慮成本角度出發(fā),水稻大田面積大,需要布置的節(jié)點(diǎn)也很多,選用交流電來供應(yīng)顯然成本要高很多,而且在該系統(tǒng)中電磁閥布置在灌溉水管的支管上,流量不大可以考慮使用蓄電池方式進(jìn)行供電,所需要的費(fèi)用也降低很多。該系統(tǒng)設(shè)計(jì)選用雙穩(wěn)態(tài)12 V DC的電磁閥門,因其具有國際領(lǐng)先的脈沖和永磁技術(shù),可以實(shí)現(xiàn)低耗能,在進(jìn)行電磁閥工作時(shí)產(chǎn)生的熱量較少,可以降低燃燒的風(fēng)險(xiǎn)值。它的工作原理是系統(tǒng)下達(dá)指令后,電磁閥驅(qū)動(dòng)電器線圈,實(shí)現(xiàn)電磁閥打開進(jìn)行灌溉。它的工作狀態(tài)受到控制器節(jié)點(diǎn)控制,并將工作狀態(tài)利用無線網(wǎng)絡(luò)傳輸?shù)娇刂浦行模刂浦行脑俑鶕?jù)實(shí)際情況進(jìn)行相應(yīng)的操作。
出于對(duì)灌溉系統(tǒng)的成本和生產(chǎn)方便的考慮,選用無線傳感器網(wǎng)路進(jìn)行網(wǎng)絡(luò)節(jié)點(diǎn)和數(shù)據(jù)的連通和發(fā)送,它是這個(gè)系統(tǒng)的基礎(chǔ)。由于水稻大田面積大,傳感器節(jié)點(diǎn)眾多,因此在選用無線網(wǎng)絡(luò)節(jié)點(diǎn)時(shí)需要具備耗能低、安全可靠而且要具備抗干擾的無線網(wǎng)絡(luò)節(jié)點(diǎn)。選用CC2530F256作為無線通信的處理芯片,相比其他芯片具有寬電壓范圍、耗能低、電量可監(jiān)控的優(yōu)點(diǎn)。該芯片的電路設(shè)計(jì)主要包含CC2530單片機(jī)、無線端口、晶振以及IO接口,無線網(wǎng)絡(luò)模塊將硬件模塊與軟件模塊進(jìn)行連接,控制中心通過無線網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù),各節(jié)點(diǎn)通過無線網(wǎng)絡(luò)進(jìn)行連通,發(fā)揮出各自的功能[3]。
控制中心想要做到全面監(jiān)控,需要將目標(biāo)區(qū)域安裝可視化的設(shè)備,既可以實(shí)現(xiàn)對(duì)水稻大田的全面觀察,又可以進(jìn)行布防,區(qū)域出現(xiàn)問題可以直觀地找出問題。本系統(tǒng)采用的是網(wǎng)絡(luò)攝像頭,可以進(jìn)行互聯(lián)網(wǎng)端和手機(jī)的雙監(jiān)控,支持移動(dòng)偵測和語音溝通。
在進(jìn)行軟件系統(tǒng)設(shè)計(jì)前,需要選用一個(gè)穩(wěn)定性高、靈活可剪裁的操作系統(tǒng),經(jīng)過討論研究,系統(tǒng)選用RT-Thread作為本文的操作系統(tǒng)。選定嵌入操作系統(tǒng)后還面臨一個(gè)難題,就是將RT-Thread移植到STM32F103ZET6芯片上,移植的難點(diǎn)在于不同語言編寫的替代,需要認(rèn)識(shí)RT-Thread嵌入系統(tǒng)和STM32F103ZET6微處理的架構(gòu),才可能進(jìn)行成功的移植。
移植前先對(duì)STM32F103ZET6中的寄存器組和指令集進(jìn)行分析。對(duì)RT-Thread源文件的目錄結(jié)構(gòu)進(jìn)行解析,了解到影響移植的文件夾有bsp和libcpu 2個(gè),那么即可對(duì)其進(jìn)行源文件添加,從而實(shí)現(xiàn)移植軟件系統(tǒng)的架構(gòu),如圖3所示。

圖3 移植軟件系統(tǒng)軟件架構(gòu)
由于RT-Thread硬件資源豐富且功能復(fù)雜,因此針對(duì)RT-Thread系統(tǒng)選用OS的程序開發(fā)方式。RT-Thread的任務(wù)目的是“線程”,STM32F103ZET6會(huì)根據(jù)提供的線程來執(zhí)行程序,除了要合理安排線程外還要注意線程之間的聯(lián)系等問題。建立線程之初會(huì)根據(jù)優(yōu)先級(jí)最高標(biāo)準(zhǔn)確定初始線程,再通過它來創(chuàng)建子線程,完成后脫離線程,例如濕度、溫度、可視化、LCD顯示等系統(tǒng)中的模塊都是將線程預(yù)先的設(shè)置,實(shí)現(xiàn)各模塊的調(diào)度。
將文件系統(tǒng)從官網(wǎng)上獲取,具體操作是下載該文件系統(tǒng)的源代碼后進(jìn)行解壓,移植的難點(diǎn)在于配置信息的更換,大致流程是將需要細(xì)致的文件系統(tǒng)進(jìn)行數(shù)據(jù)類型的修改,為了保證文件系統(tǒng)的正常使用還需要將配置頭文件進(jìn)行修改,最后根據(jù)底層驅(qū)動(dòng)編寫函數(shù)接口。
稻田控制器作為嵌入式處理器,也是整個(gè)系統(tǒng)中唯一的網(wǎng)關(guān)節(jié)點(diǎn),主要負(fù)責(zé)對(duì)入網(wǎng)傳感器進(jìn)行入網(wǎng)干預(yù)和數(shù)據(jù)的傳輸,當(dāng)控制中心下達(dá)電磁閥閉合指令后,稻田控制器節(jié)點(diǎn)依據(jù)指令進(jìn)行灌溉,控制器節(jié)點(diǎn)通過對(duì)溫濕度的數(shù)據(jù)采集,回傳給上位機(jī),實(shí)現(xiàn)灌溉量的完成。具體流程是:在灌溉系統(tǒng)中控制器節(jié)點(diǎn)的目標(biāo)是構(gòu)建網(wǎng)絡(luò),并將16位短地址分配給傳感器節(jié)點(diǎn),當(dāng)所有節(jié)點(diǎn)加入到網(wǎng)絡(luò)中后,終端傳感器節(jié)點(diǎn)將數(shù)據(jù)傳輸給控制器節(jié)點(diǎn),再通過GPRS上傳至上位機(jī),上位機(jī)再將數(shù)據(jù)傳入到主機(jī),主機(jī)下達(dá)指令給目標(biāo)節(jié)點(diǎn),該節(jié)點(diǎn)接受指令后采集數(shù)據(jù)回饋給系統(tǒng)控制中心,控制中心根據(jù)節(jié)點(diǎn)采集的溫濕度數(shù)據(jù)來控制電磁閥的閉合,實(shí)現(xiàn)對(duì)稻田的灌溉和完成灌溉的任務(wù),既節(jié)省了水資源,又形成了科學(xué)化的水稻生長管理[4]。田間控制器節(jié)點(diǎn)主程序流程如圖4所示。

圖4 田間控制器節(jié)點(diǎn)主程序流程
作為本系統(tǒng)的核心部分,監(jiān)控軟件的設(shè)計(jì)實(shí)現(xiàn)了對(duì)系統(tǒng)的管理和控制。監(jiān)控軟件負(fù)責(zé)處理稻田灌溉的所有信息,通過監(jiān)控平臺(tái)進(jìn)行灌溉指令的下達(dá),利用操作界面可以進(jìn)行灌溉信息的修改,使灌溉能夠根據(jù)實(shí)際需求有效地進(jìn)行。監(jiān)控平臺(tái)軟件的設(shè)計(jì)本著易操作、界面清晰、功能區(qū)明確的設(shè)計(jì)目標(biāo),降低操作失誤的風(fēng)險(xiǎn)。其操作基本流程是管理員登錄監(jiān)控界面,輸入系統(tǒng)的用戶名和密碼,登錄到界面后可以通過窗口觀看各個(gè)區(qū)域的稻田灌溉情況,如果想要進(jìn)行某一操作命令,打開菜單的功能選擇窗口,此窗口設(shè)置了關(guān)于灌溉系統(tǒng)的功能模塊,針對(duì)命令點(diǎn)擊相應(yīng)的功能模塊即可。該系統(tǒng)的監(jiān)控軟件還提供了數(shù)據(jù)存儲(chǔ)和查詢界面模塊,根據(jù)傳感器反饋的信息系統(tǒng)會(huì)生成數(shù)據(jù)表和曲線圖,方便查詢和打印數(shù)據(jù),通過圖表,管理員也能隨時(shí)掌握水稻的生長情況以及滿足及時(shí)灌溉的需求。監(jiān)控平臺(tái)軟件流程如圖5所示。

圖5 監(jiān)控平臺(tái)軟件流程
為了驗(yàn)證基于STM32水稻大田智能灌溉系統(tǒng)設(shè)計(jì)的有效性,利用實(shí)驗(yàn)室搭建實(shí)驗(yàn)原型樣機(jī)進(jìn)行仿真實(shí)驗(yàn)。
因?yàn)閷?shí)驗(yàn)室條件有限,所以利用傳感器連接到電路板的頂端,選擇一個(gè)蓄水裝置作為水源,電磁閥門與水源連接,顯示器和按鍵進(jìn)行操作和監(jiān)控,特別注意的是每個(gè)模塊均是單獨(dú)供電來降低系統(tǒng)功耗。系統(tǒng)選用STM32F103作為控制芯片對(duì)存儲(chǔ)模塊、電磁閥模塊、溫濕度傳感器、電源供電模塊、無線網(wǎng)絡(luò)都進(jìn)行了實(shí)際測試,符合實(shí)驗(yàn)要求[5]。
系統(tǒng)完成初始化后進(jìn)行供電,將樣機(jī)測試分成遠(yuǎn)程控制功能測試、可視化效果測試、智能決策功能測試。
(1) 遠(yuǎn)程控制功能:通過無線網(wǎng)絡(luò)連接后,利用手機(jī)客戶端和電腦客戶端對(duì)系統(tǒng)下達(dá)指令,檢驗(yàn)其遠(yuǎn)程控制灌溉功能,經(jīng)過實(shí)驗(yàn)測試,通過手機(jī)客戶端發(fā)送的指令均能有效完成。
(2) 可視化效果:實(shí)驗(yàn)主要是檢驗(yàn)攝像頭在白天和黑夜情況下顯示器的視覺效果,測試結(jié)果是可視化效果,清晰良好。
(3) 智能決策功能模塊:主要介紹智能模塊,實(shí)驗(yàn)測試的對(duì)象是智能模式中的自動(dòng)灌溉和手動(dòng)操作灌溉。該系統(tǒng)中的手動(dòng)操作也是基于智能的基礎(chǔ)之上,用戶只需要利用手機(jī)客戶端發(fā)送指令,系統(tǒng)就會(huì)通過傳感器采集的數(shù)據(jù)來設(shè)定澆水的時(shí)間,而自動(dòng)模式系統(tǒng)會(huì)設(shè)定灌溉程序,根據(jù)設(shè)計(jì)的程序每到既定時(shí)間后,系統(tǒng)就會(huì)采集數(shù)據(jù),并通過系統(tǒng)的計(jì)算確定灌溉時(shí)間,實(shí)驗(yàn)測試結(jié)果顯示無論是手動(dòng)還是自動(dòng)系統(tǒng)均能正常工作。
通過對(duì)樣機(jī)的實(shí)驗(yàn),基于STM32水稻大田智能灌溉系統(tǒng)各個(gè)功能模塊工作正常,系統(tǒng)運(yùn)行平穩(wěn),對(duì)于軟件和硬件的設(shè)計(jì)均能滿做系統(tǒng)的設(shè)計(jì)要求,實(shí)現(xiàn)了智能灌溉的目的。
設(shè)計(jì)了以STM32為主控制器的智能灌溉系統(tǒng),利用硬件系統(tǒng)與軟件系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)了對(duì)水稻大田的智能灌溉,經(jīng)試驗(yàn)樣機(jī)的測試,驗(yàn)證了該系統(tǒng)能夠平穩(wěn)運(yùn)行,達(dá)到設(shè)計(jì)要求。希望本文設(shè)計(jì)的智能灌溉系統(tǒng)可以真正應(yīng)用在水稻大田的灌溉工作中,實(shí)現(xiàn)水稻農(nóng)耕的智能化,為節(jié)水節(jié)能作出貢獻(xiàn)。