張德茂,袁 曉,陳文杰
(1.四川大學(xué) 電子信息學(xué)院,成都 610065; 2.成都華為研究所,成都 611700)
電磁閥遠(yuǎn)程控制及水壓監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
張德茂1,袁 曉1,陳文杰2
(1.四川大學(xué) 電子信息學(xué)院,成都 610065; 2.成都華為研究所,成都 611700)
為了實(shí)現(xiàn)遠(yuǎn)程控制電磁閥及監(jiān)測(cè)輸水管道水壓,提高農(nóng)業(yè)灌溉效率;采用STM32微控制器及Android嵌入式系統(tǒng),開(kāi)發(fā)出一種對(duì)電磁閥進(jìn)行控制及水壓監(jiān)測(cè)系統(tǒng);微控制器通過(guò)串口連接GPRS模塊,從而接收命令控制電磁閥和發(fā)送水壓數(shù)據(jù);Android手機(jī)客戶(hù)端實(shí)現(xiàn)閥門(mén)控制界面和水壓數(shù)據(jù)顯示功能;云服務(wù)器負(fù)責(zé)連接GPRS模塊和手機(jī)客戶(hù)端,并且管理底層設(shè)備與用戶(hù)信息;該系統(tǒng)已運(yùn)用在某智能節(jié)水灌溉公司的實(shí)驗(yàn)大棚基地中,實(shí)驗(yàn)結(jié)果表明,系統(tǒng)能實(shí)時(shí)進(jìn)行遠(yuǎn)程控制及監(jiān)測(cè),并能確保輸水系統(tǒng)正常運(yùn)行;該系統(tǒng)能夠推動(dòng)農(nóng)業(yè)現(xiàn)代化的發(fā)展,減少人力成本,提高生產(chǎn)效率。
STM32微控制器;云服務(wù)器;手機(jī)客戶(hù)端;農(nóng)業(yè)現(xiàn)代化
隨著政府對(duì)農(nóng)業(yè)現(xiàn)代化的重視以及物聯(lián)網(wǎng)的快速發(fā)展,傳統(tǒng)的農(nóng)業(yè)生產(chǎn)模式正逐漸向農(nóng)業(yè)智能化方向發(fā)展,智能化設(shè)備被廣泛使用到農(nóng)業(yè)生產(chǎn)過(guò)程中。這樣的發(fā)展背景為電磁閥遠(yuǎn)程控制及水壓監(jiān)測(cè)系統(tǒng)的建立及推廣奠定了良好的基礎(chǔ)。目前關(guān)于研究農(nóng)業(yè)環(huán)境監(jiān)測(cè)的比較多,農(nóng)業(yè)環(huán)境監(jiān)測(cè)對(duì)于指導(dǎo)種植以及了解農(nóng)作物的生長(zhǎng)環(huán)境有非常重要的意義[1]。目前我國(guó)農(nóng)業(yè)現(xiàn)代化的發(fā)展還處于初級(jí)階段,農(nóng)業(yè)生產(chǎn)自動(dòng)化是其中重要環(huán)節(jié)之一。智能節(jié)水灌溉系統(tǒng)有著非常廣泛的市場(chǎng)需求,譬如甘肅、陜西、新疆等缺水地區(qū)正逐步地推廣節(jié)水灌溉系統(tǒng)。灌溉是農(nóng)業(yè)生產(chǎn)過(guò)程中非常重要的一部分,如何把控灌溉時(shí)間以及灌溉量是一個(gè)重要的問(wèn)題。利用覆蓋面廣、技術(shù)成熟且傳輸速度快的GPRS網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程控制電磁閥可以有效解決這個(gè)問(wèn)題[2]。灌溉系統(tǒng)中爆管以及電磁閥損壞現(xiàn)象經(jīng)常發(fā)生,在灌溉系統(tǒng)中添加一個(gè)水壓監(jiān)測(cè)模塊,如果水壓超過(guò)閾值,就關(guān)閉水泵開(kāi)關(guān)并及時(shí)調(diào)整水泵功率,這樣可以有效防止該類(lèi)現(xiàn)象的發(fā)生。在農(nóng)業(yè)生產(chǎn)過(guò)程中,使用電磁閥遠(yuǎn)程控制及水壓監(jiān)測(cè)系統(tǒng)具有很重要的意義,不僅解放勞動(dòng)力,降低生產(chǎn)成本,并且該系統(tǒng)具有寬廣的應(yīng)用市場(chǎng)。
電磁閥遠(yuǎn)程控制及水壓監(jiān)測(cè)系統(tǒng)主要分為七個(gè)部分如圖1所示:傳感器、電磁閥、電機(jī)驅(qū)動(dòng)模塊DRV8823、微控制器STM32、GPRS通信模塊、云服務(wù)器、Android手機(jī)客戶(hù)端。微控制器通過(guò)GPRS模塊接收來(lái)自云服務(wù)器的控制命令和發(fā)送傳感器數(shù)據(jù)給云服務(wù)器。云服務(wù)器負(fù)責(zé)存管理底層設(shè)備及用戶(hù)信息并且緩存控制命令和傳感器數(shù)據(jù)。手機(jī)客戶(hù)端與云服務(wù)器之間通過(guò)互聯(lián)網(wǎng)進(jìn)行連接,用戶(hù)通過(guò)手機(jī)APP登錄即可進(jìn)行控閥操作和獲取水壓數(shù)據(jù)并進(jìn)行顯示。
系統(tǒng)的總體框架如圖1所示,分成三大模塊。底層控制模塊的核心是基于 ARM Cortex -M4 核的STM32L476RE 微控制器。中間服務(wù)模塊是依托云平臺(tái)搭建的云服務(wù)器。上層應(yīng)用模塊是在Android手機(jī)平臺(tái)上開(kāi)發(fā)的APP。
圖1 系統(tǒng)總體框架
系統(tǒng)硬件部分的主要任務(wù)是完成電路設(shè)計(jì)。以微控制器為核心,需要設(shè)計(jì)4個(gè)電路模塊分別為:微控制器電路,電磁閥控制電路,GPRS通信模塊電路,水壓采集電路。由于整個(gè)底層控制模塊長(zhǎng)期工作在野外環(huán)境,因此采用太陽(yáng)能供電的方式給整個(gè)硬件系統(tǒng)供電。
2.1 微控制器外圍電路設(shè)計(jì)
微控制器是采用ST公司基于ARM Cortex- M4內(nèi)核的STM32L476RE[3]。它的處理能力強(qiáng)大,并且具有低功耗特性,因此它適用于野外工作的設(shè)備。它有多個(gè)外圍接口能滿(mǎn)足系統(tǒng)后期的功能擴(kuò)展需求。 STM32L476RE有4種方式可以提供系統(tǒng)時(shí)鐘源,本設(shè)計(jì)采用16MHz的高速內(nèi)部RC振蕩器(HSI)作為系統(tǒng)時(shí)鐘源,由PLL提供系統(tǒng)的RTC。操作系統(tǒng)的時(shí)鐘滴答數(shù)由AHB總線(xiàn)時(shí)鐘提供,設(shè)置成10 ms跳動(dòng)一次。微控制器的外圍引腳連接圖如圖2所示,包含:通信串口,調(diào)試串口,SPI接口,ADC通道。
圖2 微控制器外圍引腳連接圖
2.2 電磁閥控制電路設(shè)計(jì)
電機(jī)驅(qū)動(dòng)芯片采用德州儀器公司的DRV8823[4]。它僅需通過(guò)SPI接口來(lái)接收命令字就能實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的位置控制、電流控制,具有易于實(shí)現(xiàn)控制、節(jié)省微控制器IO資源等優(yōu)點(diǎn)。使用的電磁閥可以根據(jù)不同的生產(chǎn)廠(chǎng)家而定,要求電磁閥的驅(qū)動(dòng)電壓在驅(qū)動(dòng)芯片輸出電壓8~12 V范圍之內(nèi)??刂齐娐啡鐖D3所示,圖中MOTO_OUT_A,B,C,D各2路線(xiàn)輸出電壓驅(qū)動(dòng)電機(jī),可以驅(qū)動(dòng)4個(gè)電磁閥。
圖3 電磁閥控制電路
2.3 GPRS 通信模塊電路設(shè)計(jì)
GPRS 通信模塊采用濟(jì)南有人科技有限公司的USR-GPRS232-7S3[5]。通過(guò)簡(jiǎn)單的 AT 指令配置模塊,便可實(shí)現(xiàn)模塊從串口到網(wǎng)絡(luò)的雙向數(shù)據(jù)透明傳輸。微控制器與通信模塊用通信串口進(jìn)行連接,連接狀態(tài)引腳用于控制連接狀態(tài)顯示。電路如圖4所示。
圖4 通信模塊電路
2.4 水壓采集電路設(shè)計(jì)
水壓采集電路使用微控制器的內(nèi)部A/D轉(zhuǎn)換電路。首先把具有A/D功能的GPIO口配置成模擬輸入工作模式;然后將引腳接一個(gè)下拉電阻到地起保護(hù)作用;最后把輸出信號(hào)為電壓信號(hào)的傳感器的輸出端接到微控制器的A/D輸入端。采集電路如圖2中的ADC通道所示。
系統(tǒng)軟件設(shè)計(jì)框架如圖5所示。微控制器作為底層控制模塊的核心,在完成操作系統(tǒng)初始化和GPRS模塊的配置工作之后,通過(guò)GPRS模塊接受服務(wù)器的命令做相應(yīng)操作與響應(yīng)。云服務(wù)器作為中間層,在提供通信接口的同時(shí)也負(fù)責(zé)管理用戶(hù)信息和底層設(shè)備信息。APP為用戶(hù)提供直觀(guān)便捷的操作顯示界面。3個(gè)模塊相互獨(dú)立,又相互聯(lián)系。
圖5 系統(tǒng)軟件設(shè)計(jì)框圖
3.1 嵌入式系統(tǒng)程序
3.1.1 開(kāi)發(fā)平臺(tái) IAR
用于ST公司微控制器的開(kāi)發(fā)平臺(tái)有IAR、KEIL等。本設(shè)計(jì)選擇IAR公司的C編譯器 IAR Embedded Workbench, 支持眾多知名半導(dǎo)體公司的微處理器。該編譯器支持操作系統(tǒng)移植,也支持芯片固件庫(kù)移植,能夠減少開(kāi)發(fā)周期。
3.1.2 操作系統(tǒng) RT-Thread
RT-Thread是一款開(kāi)源實(shí)時(shí)操作系統(tǒng)[6]。它包含實(shí)時(shí)、嵌入式系統(tǒng)相關(guān)的各個(gè)組件:TCP/IP協(xié)議棧,文件系統(tǒng),libc接口,圖形用戶(hù)界面等。RT-Thread操作系統(tǒng)的初始化包括:系統(tǒng)時(shí)鐘,系統(tǒng)調(diào)度,應(yīng)用線(xiàn)程,空閑線(xiàn)程。系統(tǒng)初始化和啟動(dòng)系統(tǒng)調(diào)度在主程序內(nèi)完成。有兩個(gè)應(yīng)用線(xiàn)程分別是接收線(xiàn)程和發(fā)送線(xiàn)程。在啟動(dòng)線(xiàn)程之前,需要配置好相應(yīng)的硬件接口:SPI、UART、ADC等。
3.1.3 收發(fā)線(xiàn)程
微控制器與服務(wù)器之間通信是通過(guò)GPRS模塊,采用的傳輸協(xié)議是UDP。中間傳輸?shù)臄?shù)據(jù)協(xié)議格式如表1所示。
表1 數(shù)據(jù)協(xié)議格式
1)接收線(xiàn)程實(shí)現(xiàn)流程:
(1)rt_thread_create(參數(shù)); //創(chuàng)建線(xiàn)程
(2)rt_thread_startup(參數(shù)); //啟動(dòng)線(xiàn)程
(3)While(true)
{
RecvAndProcessData(參數(shù)) //接收并處 理數(shù)據(jù)
{
rt_sem_take(參數(shù));
...
rt_device_read(參數(shù));
//操作系統(tǒng)讀函數(shù)
...
rt_sem_release(參數(shù));
}
}
(4)Parse_From_Array(參數(shù)); //解析命令函數(shù),按照表1數(shù)據(jù)協(xié)議格式解析數(shù)據(jù)包
(5)相關(guān)命令:
發(fā)送注冊(cè)請(qǐng)求 SendRegisterReq(參數(shù));
處理注冊(cè)應(yīng)答ProcessRegisterRpl(參數(shù)) ;
處理操作請(qǐng)求 ProcessCmdReq(參數(shù))。如:開(kāi)閥、關(guān)閥、采集水壓等操作請(qǐng)求。
(6)返回處理結(jié)果給服務(wù)器。
2)發(fā)送線(xiàn)程實(shí)現(xiàn)流程:
(1)rt_thread_create(參數(shù)); //創(chuàng)建線(xiàn)程
(2)rt_thread_startup(參數(shù)); //啟動(dòng)線(xiàn)程
(3)While(true)
{
SendRegisterReq(參數(shù)); //注冊(cè)函數(shù):與服務(wù)器建立連接并提供注冊(cè)信息
{
ToArray(參數(shù)); //封包函數(shù):按照表1數(shù)據(jù)協(xié)議格式打包數(shù)據(jù)
SendData(參數(shù)) //發(fā)送函數(shù):通過(guò)操作系統(tǒng)的設(shè)備寫(xiě)函數(shù)調(diào)用串口發(fā)送數(shù)據(jù)
{
rt_sem_take(參數(shù));
另外,高科技企業(yè)技術(shù)團(tuán)隊(duì)的高薪支出稅費(fèi)的抵扣也是企業(yè)的另一個(gè)關(guān)注點(diǎn)。以中國(guó)排名前幾的技術(shù)有限公司為例,2017-2018年華為技術(shù)團(tuán)隊(duì)個(gè)人年薪30-60萬(wàn)不等,百度技術(shù)團(tuán)隊(duì)個(gè)人年薪35-60萬(wàn)不等,阿里巴巴技術(shù)團(tuán)隊(duì)個(gè)人年薪40-60萬(wàn)不等,騰訊技術(shù)團(tuán)隊(duì)個(gè)人年薪25-48萬(wàn)不等,其他職位最高年薪20萬(wàn)元以下。將各企業(yè)技術(shù)團(tuán)隊(duì)個(gè)人年薪折中與其他職位最高年薪作比較,由圖3可以看出企業(yè)技術(shù)團(tuán)隊(duì)的高年薪支出成為企業(yè)迫切希望納入進(jìn)項(xiàng)稅抵扣的一個(gè)關(guān)注點(diǎn)。
rt_device_write(參數(shù));
//操作系統(tǒng)寫(xiě)函數(shù)
...
rt_sem_release(參數(shù));
}
}
rt_thread_delay(times);
}
信號(hào)量是一種輕型的用于解決線(xiàn)程間同步問(wèn)題的內(nèi)核對(duì)象,線(xiàn)程可以獲取或釋放它,從而達(dá)到同步或互斥的目的。在接收和發(fā)送線(xiàn)程之間就采用了信號(hào)量機(jī)制來(lái)保證兩個(gè)線(xiàn)程之間的同步和互斥。
信號(hào)量的創(chuàng)建:rt_sem_create(參數(shù))。
信號(hào)量的搶占:rt_sem_take(參數(shù))。
信號(hào)量的釋放:rt_sem_release(參數(shù))。
3.1.4 控制閥門(mén)開(kāi)關(guān)
開(kāi)閥函數(shù)OpenValve(閥門(mén)號(hào))和關(guān)閥函數(shù)CloseValve(閥門(mén)號(hào))是通過(guò)操作系統(tǒng)的設(shè)備寫(xiě)函數(shù)調(diào)用SPI向驅(qū)動(dòng)芯片DRV8823寫(xiě)入16位二進(jìn)制數(shù)據(jù)(相應(yīng)的數(shù)值可以查芯片手冊(cè))。
3.1.5 采集水壓數(shù)據(jù)
采集水壓函數(shù)GetWaterPressure(通道號(hào))是通過(guò)操作系統(tǒng)的讀函數(shù)調(diào)用ADC接口將模擬量轉(zhuǎn)換成數(shù)字量。12位的ADC以?xún)?nèi)部參考電壓3.6 V作為參考值,因此將參考電壓分成4096等份。測(cè)量的電壓值=AD讀出的值/4096 *3.6 (V)。實(shí)際的水壓值要根據(jù)傳感器的轉(zhuǎn)換公式來(lái)進(jìn)行轉(zhuǎn)換處理。
3.2 服務(wù)器端軟件框架及主流程
服務(wù)器的開(kāi)發(fā)環(huán)境為IDEA15.0.6 + JDK8+ TomCat8.0.3 + MySQL5.7。服務(wù)器使用的是Spring MVC框架。MVC,以設(shè)計(jì)界面應(yīng)用程序?yàn)榛A(chǔ)的設(shè)計(jì)模式,它主要通過(guò)分離模型、視圖及控制器在應(yīng)用程序中的角色將業(yè)務(wù)邏輯從界面中解耦[7]。Model負(fù)責(zé)封裝應(yīng)用程序數(shù)據(jù)在視圖層展示。View僅僅只是展示數(shù)據(jù),不包含任何業(yè)務(wù)邏輯。Controller負(fù)責(zé)接收來(lái)自用戶(hù)的請(qǐng)求,并調(diào)用后臺(tái)服務(wù)(Manager/Dao)來(lái)處理業(yè)務(wù)邏輯。處理完之后,后臺(tái)業(yè)務(wù)層可能會(huì)返回一些數(shù)據(jù)在視圖層上展示??刂破魇占@些數(shù)據(jù)及準(zhǔn)備模型在視圖層展示。
云服務(wù)器是一種基于WEB服務(wù),提供可調(diào)整云主機(jī)配置的彈性云技術(shù),整合了計(jì)算、存儲(chǔ)與網(wǎng)絡(luò)資源的Iaas服務(wù),具備按需使用和按需即時(shí)付費(fèi)能力的云主機(jī)租用服務(wù)[8]。在靈活性、可控性、擴(kuò)展性及資源復(fù)用性上都有很大的提高。云服務(wù)器軟件框架如圖6所示。
圖6 服務(wù)器軟件框架
Entity模塊主要功能是定義云服務(wù)器與微控制器、手機(jī)APP應(yīng)用進(jìn)行數(shù)據(jù)傳輸?shù)幕緮?shù)據(jù)類(lèi)型。Entity實(shí)體同時(shí)也對(duì)應(yīng)著數(shù)據(jù)庫(kù)中的表結(jié)構(gòu),本設(shè)計(jì)中需要建立的實(shí)體有:用戶(hù)信息、節(jié)點(diǎn)信息、傳感器信息、開(kāi)關(guān)信息。
接口類(lèi)型定義模塊主要功能是實(shí)現(xiàn)WebSocket接口中的基本通信類(lèi)型的定義,主要包括命令類(lèi)型定義及應(yīng)答類(lèi)型定義等。WebSocket接口采用WebSocket作為承載方法,接口采用的數(shù)據(jù)格式為JSON格式。
Spring MVC模塊主要實(shí)現(xiàn)Spring MVC框架環(huán)境。
Hibernate[9]模塊主要實(shí)現(xiàn)數(shù)據(jù)庫(kù)與Hibernate的綁定關(guān)系。
數(shù)據(jù)庫(kù)接口模塊主要實(shí)現(xiàn)常用數(shù)據(jù)庫(kù)操作接口功能,如查詢(xún)、修改及刪除等操作。
Handler模塊主要功能是對(duì)外部接口請(qǐng)求的處理。
Server主要是實(shí)現(xiàn)WebService接口。
WebSocket模塊主要實(shí)現(xiàn)手機(jī)APP與云服務(wù)器之間的通信。
GPRS接口采用UDP作為承載方法,接口使用NCP協(xié)議格式進(jìn)行通信。
服務(wù)器在啟動(dòng)后,將首先運(yùn)行Spring框架,加載相關(guān)配置,包括Controller、Service、Hibernate等基本功能組件。然后,加載WebSocket接口模塊,開(kāi)始監(jiān)聽(tīng)WebSocket連接。最后,將加載GPRS接口模塊,開(kāi)始監(jiān)聽(tīng)來(lái)自GPRS的UDP消息。此后,服務(wù)器主要的功能便是監(jiān)聽(tīng)WebSocket連接并進(jìn)行管理及消息命令的處理,以及監(jiān)聽(tīng)GPRS的UDP消息和GPRS終端的管理。GPRS終端的管理包括:(1)監(jiān)測(cè)GPRS終端連接超時(shí)管理;(2)GPRS終端連接合法性檢驗(yàn);(3)GPRS命令消息收發(fā)處理。
3.3 手機(jī)客戶(hù)端
3.3.1 Android 手機(jī)客戶(hù)端架構(gòu)
Android 是由Google 開(kāi)發(fā)的基于Linux 內(nèi)核的綜合操作系統(tǒng)[10]。本系統(tǒng)的手機(jī)客戶(hù)端與服務(wù)器采用的是常用的C/S架構(gòu)(客戶(hù)端/服務(wù)器)模式,Android手機(jī)客戶(hù)端通過(guò)WebSocket接口與服務(wù)器進(jìn)行通信??蛻?hù)端發(fā)送命令給服務(wù)器,服務(wù)器再將命令通過(guò)GPRS接口發(fā)送給底層控制模塊。底層控制模塊將采集的數(shù)據(jù)上傳到服務(wù)器內(nèi)的數(shù)據(jù)庫(kù)中進(jìn)行存儲(chǔ)。手機(jī)客戶(hù)端設(shè)計(jì)架構(gòu)靈活、操作穩(wěn)定、數(shù)據(jù)可靠。
3.3.2 Android 客戶(hù)端界面設(shè)計(jì)及主流程
Android 手機(jī)客戶(hù)端支持4.0以上的手機(jī),開(kāi)環(huán)境為Android-Studio2.2,采用的是XML布局。APP有3個(gè)Activity包括用戶(hù)登錄、閥門(mén)開(kāi)關(guān)、水壓曲線(xiàn)圖顯示等界面。采用MVC模式進(jìn)行系統(tǒng)開(kāi)發(fā)。
APP在啟動(dòng)時(shí),將通過(guò)WebSocket與云服務(wù)器建立連接,并提交身份信息(包括用戶(hù)名及密碼)。服務(wù)器通過(guò)對(duì)用戶(hù)身份進(jìn)行驗(yàn)證后,將驗(yàn)證結(jié)果返回給APP。APP收到登陸驗(yàn)證結(jié)果后,將開(kāi)始維護(hù)WebSocket的連接(通過(guò)心跳數(shù)據(jù)包)。此后,APP將可以執(zhí)行向服務(wù)器發(fā)送命令或從服務(wù)器讀取信息等操作。通常,APP將首先從服務(wù)器上讀取當(dāng)前用戶(hù)相關(guān)的節(jié)點(diǎn)信息及開(kāi)關(guān)信息等,并將其顯示到界面上以便用戶(hù)的操作。用戶(hù)在對(duì)開(kāi)關(guān)進(jìn)行操作時(shí),APP將通過(guò)WebSocket向服務(wù)器發(fā)送開(kāi)關(guān)操作命令,等待服務(wù)器的命令應(yīng)答。服務(wù)器完成命令的處理后(包括向底層控制模塊發(fā)送命令及接收命令應(yīng)答),通過(guò)WebSocket向APP返回命令結(jié)果(錯(cuò)誤碼及錯(cuò)誤信息等)。APP收到來(lái)自服務(wù)器的命令應(yīng)答后,將根據(jù)結(jié)果更新界面或通知用戶(hù)。
水壓數(shù)據(jù)采用了AChartEngine圖表引擎進(jìn)行折線(xiàn)圖顯示。AChartEngine是為Android應(yīng)用設(shè)計(jì)的繪圖工具庫(kù),通過(guò)對(duì)其參數(shù)進(jìn)行相應(yīng)配置,以及對(duì)原有圖表的重新封裝后定制出需要使用的圖像數(shù)據(jù)接口[11]。
在實(shí)際的農(nóng)場(chǎng)溫室大棚中,對(duì)該電磁閥遠(yuǎn)程控制與水壓監(jiān)測(cè)系統(tǒng)進(jìn)行軟硬件測(cè)試。首先用戶(hù)通過(guò)用戶(hù)名和用戶(hù)密碼登錄客戶(hù)端。測(cè)試表明:1)電磁閥控制操作穩(wěn)定可靠,并能正確反饋控制信息??亻y成功時(shí),界面會(huì)彈出控閥成功的提示信息并且會(huì)顯示閥門(mén)狀態(tài)。2)水壓監(jiān)測(cè)能在允許誤差范圍內(nèi)及時(shí)給用戶(hù)反映當(dāng)前輸水管道的水壓。用戶(hù)還可以設(shè)定水壓閾值。水壓顯示界面如圖7所示。
圖7 水壓顯示界面
結(jié)果分析:1)采用GPRS通信方式,每個(gè)模塊都能獨(dú)立穩(wěn)定的連接公網(wǎng)。相比WIFI連接方式,GPRS方式可以有效避免連接距離、連接數(shù)量的限制問(wèn)題;不足點(diǎn)是需要插卡和續(xù)費(fèi)。2)從實(shí)驗(yàn)基地的長(zhǎng)期測(cè)試結(jié)果中估算出,遠(yuǎn)程控閥的成功率達(dá)到90%以上。根據(jù)不同型號(hào)的電磁閥,調(diào)整輸出電流和電磁閥的結(jié)構(gòu),可以解決控閥成功而實(shí)際沒(méi)有開(kāi)閥放水的問(wèn)題。3)管道水壓監(jiān)測(cè),測(cè)量數(shù)據(jù)跟專(zhuān)業(yè)儀器測(cè)量的結(jié)果有一定的誤差,但在一定程度上可以有效避免水壓過(guò)高出現(xiàn)爆管的現(xiàn)象發(fā)生,達(dá)到預(yù)期的功能要求。4)APP軟件可以通過(guò)掃碼的方式下載,便于用戶(hù)注冊(cè)使用。界面操作簡(jiǎn)單,功能穩(wěn)定可靠。從實(shí)際用戶(hù)的反饋中,可以了解到待開(kāi)發(fā)的功能還有許多,比如控制水泵開(kāi)關(guān),周期性定時(shí)灌溉等有實(shí)際需求的功能。
針對(duì)傳統(tǒng)農(nóng)業(yè)生產(chǎn)過(guò)程中存在耗時(shí)耗力的問(wèn)題,提出了電磁閥遠(yuǎn)程控制及水壓監(jiān)測(cè)系統(tǒng)。該系統(tǒng)的特點(diǎn):引入GPRS無(wú)線(xiàn)通訊技術(shù),具有連接方便、覆蓋面廣、傳輸速度快的優(yōu)勢(shì)[10];采用基于云平臺(tái)搭建的服務(wù)器,管理用戶(hù)信息和設(shè)備信息;設(shè)計(jì)了基于Android的移動(dòng)客戶(hù)端APP軟件,使農(nóng)業(yè)灌溉智能化,便捷化。隨著國(guó)家對(duì)農(nóng)業(yè)現(xiàn)代化的不斷推進(jìn),以及智能控制和物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,農(nóng)業(yè)智能化是必然的發(fā)展趨勢(shì)。嵌入式系統(tǒng)和無(wú)線(xiàn)通信技術(shù)相結(jié)合的遠(yuǎn)程控制系統(tǒng)必將是發(fā)展的潮流。電磁閥遠(yuǎn)程控制及水壓監(jiān)測(cè)系統(tǒng)還有許多需要完善之處,隨著技術(shù)的不斷提高以及系統(tǒng)的不斷完善,該系統(tǒng)必將給用戶(hù)帶來(lái)更人性化的操作。
[1] 王恩亮,華 馳.基于物聯(lián)網(wǎng)技術(shù)的農(nóng)業(yè)環(huán)境監(jiān)測(cè)站的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2016,24(5):18-20.
[2] 李志軍,劉亞善.基于ARM和GPRS的多功能智能表數(shù)據(jù)采集器[J].計(jì)算機(jī)測(cè)量與控制,2015,23(8):2918-2920.
[3] ST公司.STM32L476RE使用手冊(cè)[EB/OL].http://www.st.com/,2016.
[4] TI公司.DRV8823 使用手冊(cè)[EB/OL].http://www.ti.com/,2016.
[5] USR公司.USR-GPRS232-7S3使用手冊(cè)[EB/OL].http://usr.cn.makepolo.com/,2016.
[6] RT-Thread 編程指南[EB/OL].http://www.rt-thread.org/download/manual/rtthread_manual.zh.pdf,2016.
[7] 戴 克,林儀明,崔 毅.Spring MVC學(xué)習(xí)指南[M].北京:人民郵電出版社,2015.
[8] 百度文庫(kù).云服務(wù)器[EB/OL].http://wenku.baidu.com/view/4630404dc850ad02de80419d.Html,2016.
[9] 劉京華.Java Web整合開(kāi)發(fā)王者歸來(lái)[M].北京:清華出版社,2010.
[10] 李 寧.Android 開(kāi)發(fā)權(quán)威指南[M].北京:人民郵電出版社,2013.
[11] Achartengine[EB/OL].http://code.google.com/p/achartengine/,2016.
Design of Remote Control of Solenoid Valve and Water Pressure Monitoring System
Zhang Demao1,Yuan Xiao1,Chen Wenjie2
(1.College of Electronics and Information ,Sichuan University,Chengdu 610065 ,China;2.Huawei Research Institute of Chengdu,Chengdu 611700, China)
In order to realize the remote control of the solenoid valve and monitor the water pressure of the water conveyance pipeline,and improve the efficiency of irrigation in agriculture, a STM32 micro-controller and Android embedded system were used to develop a system of controlling solenoid valve and monitoring water pressure. The micro-controller through the serial port to connect the GPRS module to receive commands,and then control the solenoid valve and send water pressure data; Android phone client achieve the interface of controlling valve and display water pressure data; Cloud server is responsible for connecting the GPRS module and mobile client, and managing the underlying equipment and user information. The system has been applied in the experimental greenhouses of an intelligent water-saving irrigation company,the experimental results show that the system can carry out remote controlling and monitoring in real time, and ensure the normal operation of the water conveyance system. The system can promote the development of agricultural modernization, reduce labor costs, and improve production efficiency.
STM32 micro-controller;cloud server;mobile client;agricultural modernization
2016-12-28;
2017-02-13。
張德茂(1993-),男,湖北黃石人,碩士研究生,主要從事嵌入式系統(tǒng)方向的研究。
袁 曉(1964-),男,四川成都人,副教授,主要從事現(xiàn)代電路設(shè)計(jì)與研究。
1671-4598(2017)07-0077-05
10.16526/j.cnki.11-4762/tp.2017.07.020
TP273
A