摘 要: 針對葡萄大棚種植栽培的需要,提出了一種基于可編程片上系統的葡萄大棚遠程監測系統。該系統中工作節點與數據匯聚節點都基于可編程片上系統實現,并可根據具體使用需求靈活配置節點外設及內核模塊。系統可對土壤溫濕度、環境溫濕度、日光輻照等葡萄大棚內種植參數進行采集,并可實現基本的大棚機電操作控制功能。還討論了基于JSP技術實現上位機監測控制功能用戶端的方法。該系統具有使用靈活、功能伸縮性好、通用化程度高、配置便捷與使用方便等特點,可望為葡萄大棚栽培提供較為方便的工程實踐支持。
關鍵詞: 嵌入式系統;智能農業;可編程片上系統;ZigBee
0 引言
近年來,精細化農業種植技術在我國得到了快速的發展。通過精細化農業種植技術不僅可以在較大程度上提高農作物的產量,還能有效改善農產品的品質,提高農業種植收益。精細化農業種植的重點是要實現對種植過程的精細化管控,無線傳感器網絡技術的發展為這一需求提供了有力的保障[1-4]。可編程片上系統(Programmable System on Chip,PSoC)在低成本、高集成度的無線傳感器網絡節點設計方面有其獨到的優勢[5-6]。本文提出了一種基于PSoC的葡萄大棚遠程管理系統。通過采用PSoC技術,使節點具有較低的成本、較高的集成度、較強的使用靈活性與可擴展性,從而適應葡萄大棚節點布設密度高、采樣數據多樣、功能變化頻繁及成本約束大等特點。另外結合JSP技術,方便用戶通過上位機對大棚進行管理。
1 系統總體結構
本系統由工作節點、數據匯聚節點和上位機組成。系統中工作節點與數據匯聚節點都采用PSoC架構設計,系統無線通信方式基于ZigBee透傳模塊。由于PSoC內置MCU、ADC、運放、多種通信接口、實時時鐘及對液晶顯示的支持等可通過軟件靈活配置的功能,這使得節點可以實現非常多樣化的設計。工作節點負責對葡萄大棚內種植參數的采集及大棚控制操作。葡萄大棚內種植參數包括土壤溫濕度、環境溫濕度、日光輻照等。而大棚控制操作主要是控制水泵和電機從而實現灌溉與遮光等棚內管控功能。每一個工作節點可以根據其具體的應用情況通過對PSoC內部模塊的軟件設定實現功能適配。數據匯聚節點作為連接工作節點與上位機之間的通道,負責上位機控制信息的下達與工作節點數據向上位機的匯聚。匯聚節點可以根據其地理位置情況決定是否攜帶一個獨立的子網。數據匯聚節點也可以根據具體需求被賦予部分大棚監測與控制功能。工作節點與數據匯聚節點使用太陽能供電方式。上位機負責系統的日常管控,并為使用者提供簡潔明晰的人機交互界面。在數據傳輸中,系統使用可變長度的容器用于承載監測數據與控制信息。上位機使用固定周期時序訪問各工作節點及數據匯聚節點。
2 系統硬件設計
由于PSoC具有較強的配置靈活性,易于實現一板多用,因此節點在設計中采用通用化設計,即工作節點與數據匯聚節點采用相同的硬件設計。在具體的硬件設計中,預留擴展接口,并通過對PSoC內核與板載元件的配置靈活調整節點功能。具體設計中,PSoC芯片選取Cypress公司生產、TQFP-100封裝的CY8C3866AXI-040芯片。該芯片功能豐富,適合進行高集成度的設計。其內部集成了最高工作頻率可達67 MHz的8051MCU內核,并具有可以根據用戶需求靈活配置的62個GPIO、8個特別輸入/輸出(SIO)及兩個USBIO。其內部還具有24個基于可編程邏輯器件(PLD)的通用數字模塊。另外其具有的模塊化高精度ADC及可編程放大器等資源對實現系統功能也十分寶貴[7]。
系統硬件框如圖1所示。設計中CY8C3866AXI-040芯片的20與21號管腳分別作為SWDIO與SWDCK功能使用,用于連接MiniProg 3編程器進行燒寫。PSoC在42號管腳與43號管腳之間接24 MHz的無源晶振作為系統工作時鐘,55與56號管腳間接入32.768 kHz晶振為PSoC內部的實時時鐘提供參考。系統通過PSoC Creator 3.1環境進行開發。設計中對模擬監測量的采集選用了兩個內置的Delta-Sigma ADC(ADC_DelSig),其精度設定為20 bit。每一個Delta-Sigma ADC輸入端利用運放模塊(Opamp)構建電壓跟隨器用以提高采樣效果,配置時可直接通過內部引線將運放模塊配置為單端輸入跟隨器。而通過在該模塊對應的PSoC管腳處對跳線與電阻進行設定,還可將其功能組合由電壓跟隨器變為放大器以便實現對外界設備的功能擴展。利用PSoC內部的實時時鐘模塊(RTC)為采樣數據加上時間戳。在節點通用PCB上還留有與95到99號、1號與2號管腳相連的跳線插座,用于使用PSoC內部的1602顯示驅動實現對采集數據的實時顯示功能。在PCB上,預留出I2C與SPI的引線接口,在使用時直接通過設定對應PSoC模塊和GPIO來實現。節點通用PCB上留有兩路UART接口,一路用于連接具有UART接口的外部設備,而另外一路通過MAX3232連接符合RS-232標準的外設,UART通信通過調用PSoC內部UART功能模塊實現。在節點中還留出3路PWM信號輸出端,以便輸出PSoC內部可配置PWM模塊產生的信號,從而實現大棚機電設備的控制功能。
節點土壤溫度/濕度傳感器選擇不銹鋼防水封裝的SHT11溫濕度傳感器,該傳感器為接觸式溫度傳感器。SHT11將傳感元件和信號處理電路集成在一塊微型電路板上,輸出完全標定的數字信號。SHT11與PSoC使用I2C協議進行連接。環境溫濕度采集選用AM2306耐候型戶外溫濕度傳感器,該傳感器為單總線型傳感器,具有較高的采樣精度與使用靈活性。其使用1-Wire協議方式與PSoC進行通信。日光輻照傳感器選擇Davis公司出品的6450日光輻照傳感器,該傳感器以1.67 mV-1 W/m2的比例輸出對應日光輻照的比例標定電壓。在測量中,SHT11依照葡萄具體的根系深度置入其植株下的土壤層中。AM2306被放置在葡萄冠層中用于采集其冠層內部的具體溫濕度數據。而兩路日光輻照傳感器被放置在葡萄冠層上與冠層下界面,分別用于測量日光輻照透過葡萄大棚覆蓋的塑料薄膜與日光輻照進一步透射到冠層下葡萄果實處的日光輻照值。
設計中工作節點的ZigBee模塊選擇DRF1607H型透傳模塊,DRF1607H與PSoC通過UART接口連接。如果數據匯聚節點距離上位機較近,則與工作節點使用相同的ZigBee架構。而如果數據匯聚節點距離上位機較遠,則在節點上額外添加具有RS-232接口、傳輸距離可達數公里以上的DRF2617A透傳模塊。此時數據匯聚節點與其從屬的工作節點使用DRF1607H通信,而數據匯聚節點與上位機之間使用DRF2617A進行通信。需要注意的是,此時須將子網與主網設置互異的ID。上位機使用DRF2618A模塊進行數據的接收與發送。節點采用太陽能-鉛酸電池組合供電方式,使用時,太陽能電池組件被置于大棚外部。太陽能控制器輸出的電壓先通過LM2596-5.0輸出5 V電壓,之后通過HT7333為系統提供3.3 V的工作電壓。鉛酸電池的輸出電壓通過電阻分壓輸入到PSoC內部Voltage Fault Detector(VFD)模塊,當該電壓低于9 V時,將在VFD的pgood端給出告警信號。
3 系統通信與軟件設計
在系統通信中,利用ZigBee模塊提供的可變長度數據包容器適配具體需要傳輸的數據形式。系統工作在輪詢模式下,節點對上位機發出的具體指令做出響應,依據上位機的指令要求對特定的傳感器數據進行采集或控制大棚機電設備工作。具體ZigBee數據包由先導碼、容器長度指示位、負載及結束碼組成。上行及下行數據包中為每一個設備指定一個32 bit的子負載區段,其中前11 bit為設備編號,之后的1 bit是操作控制位,最后20 bit是數據或控制變量。設備編號中的前8 bit為設備所屬節點的ID,后3 bit為設備本身的屬性ID。如對機電設備進行設置操作,下行數據包中每一個機電設備子負載區段中的后20 bit中存儲PWM的設置取值;而對于上位機下行而來的對傳感器數據的采集請求,則將該20 bit置空。當機電設備完成相應配置或傳感器數據采集完成后,節點向上位機發出對應的數據包,此時每個傳感器對應的子負載區段中被裝入采集數據,而控制設備對應的子負載區段中裝入設備響應狀態值。另外由于數據包的長度是可變的,因此每一次節點在接收到上位機的下行指令數據包后,將依照指令數據包容器中指令的先后順序完成所有操作后再向上位機發出返回數據包。無論節點及其上傳感器是否屬于子網,其都被賦予網內唯一ID。如果節點屬于子網,其從屬的數據匯聚節點中則記錄該節點的ID與設備ID。如有針對該節點的下行/上行數據包,則由匯聚節點負責在子網與主網間進行轉發。
上位機軟件基于JSP技術設計。JSP是一種動態網頁技術,它可以直接調用javabean或直接插入Java代碼,然后通過與HTML的結合構建動態網站系統,達到用戶與服務端交互的目的[8]。上位機ZigBee模塊通過串口將數據導入計算機。實現中首先建立一個類,類中需要添加必要的屬性,如readStr、writeStr等,并且需要為這些屬性添加必要的get和set方法,方便對屬性值進行獲取和設置。在新建的類中引入comm3.0.jar包,通過該包提供的API就能很容易地實現打開串口、關閉串口、發送數據、接收數據等功能。如Commportidentifier類,可以用該類提供的方法處理端口所有權問題和確定是否有可用的端口等問題。通過SerialPort類提供的方法可以完成基本的讀寫功能和常用的設置工作。在開發中需要定義線程對端口進行監聽。利用HTML和JSP標簽編寫滿足需求的JSP頁面,該頁面不但能動態顯示下位機發過來的數據,還能通過向下位機發送數據來對下位機進行控制。如圖2所示,在這個頁面不但能獲取下位機傳過來的溫濕度、日光輻照數據,并通過曲線圖表的形式顯示出來,還能通過點擊開啟水泵、開啟遮光簾按鈕對下位機進行控制。JSP自動通過后臺程序讀取系統的實時時間,在每一個系統輪詢周期開始后向各個節點及設備發出具體指令。用戶在通過UI進行操作后,在下一個輪詢周期開始時操作生效。每次采樣數據及設備返回值都會被寫入SQL Server數據庫中,方便系統使用者進行回調查看。
4 結論
針對葡萄大棚栽培的需求,本文提出了一種基于PSoC的葡萄大棚遠程監測系統。該系統節點具有高度的配置靈活性與通用性,可根據具體的需求靈活配備外部設備及內核模塊。系統可對葡萄大棚基本種植參數進行采集,并可實現遠程機電設備控制功能。上位機采用JSP設計,可以令用戶簡單方便地對系統進行操作。該系統具有使用靈活、功能伸縮性好、通用化程度高、配置便捷與使用方便等特點,可望為葡萄大棚栽培提供較為方便的工程實踐支持。
參考文獻
[1] Shen Jianbo, Cui Zhenling, Miao Yuxin, et al. Transforming agriculture in China: from solely high yield to both high yield and high resource use efficiency [J]. Global Food Security, 2013, 2(1):1-8.
[2] Yu Xiaoqing, Wu Pute, Han Wenting, et al. A survey on wireless sensor network infrastructure for agriculture [J]. Computer Standards & Interfaces,2013,35(1):59-64.
[3] SRBINOVSKA M, GAVROVSKI C, DIMCEV V, et al. Environmental parameters monitoring in precision agriculture using wireless sensor networks[J]. Journal of Cleaner Production, 2015,2(1):297-307.
[4] 李道亮.農業物聯網導論[M].北京:科學出版社,2012.
[5] 王海倫,余世明,范一鳴.基于PSoC的多參數無線傳感器網絡節點[J].儀表技術與傳感器,2012(2):85-87.
[6] 王波,楊永明,汪金剛,等.基于PSoC的無線傳感器網絡節點設計[J].傳感技術學報,2009,22(3):413-416.
[7] 趙春鋒,陸善婷,劉霄毅,等.基于PSoC的滾刀周節誤差自動測量裝置[J].微型機與應用,2013,32(21):23-25,28.
[8] 宋俊玲.基于jsp+javabean技術的圖書管理系統[J].電子技術與軟件工程,2014(16):216.