基于Web Services的嵌入式農業物聯網測控系統
摘要:目前農業物聯網測控系統數據交換普遍采用基于socket的簡單通信。為解決使用socket通信產生的數據交換復雜,系統耦合性大的問題,將Web Services技術應用到linux的嵌入式農業物聯網測控中,并給出了測控系統體系結構及軟、硬件實現方法。Web Service技術使得嵌入式測控系統有了標準的數據表示格式和數據交換協議,提高了開發效率,便于系統修改、定制,實驗結果表明,該系統性能穩定,無線數據采集與設備控制能達到實際需求,具有較高的實用性。
本文引用地址:http://www.104case.com/article/201610/309021.htm物聯網ZigBee技術以其低成本、低功耗、高可靠性的特點被廣泛應用于農業測控系統中,實現了無線數據采集和控制。孫玉文等設計了基于嵌入式ZigBee技術的農田信息服務系統,韓華峰等設計了基于ZigBee網絡的溫室環境遠程監控系統等等。盡管我國農業物聯網方面的應用有所突破,但依然存在許多問題。目前農業測控系統中ZigBee測控網絡與服務器數據交換一般通過嵌入式設備使用socket通信,數據被透明的傳送至服務器,其數據格式、發送方式、響應方式等都是自定義的私有協議,上層軟件的開發者需要根據私有協議處理數據通信。基于socket的簡單私有協議使得系統耦合性加大、系統靈活性降低。如果系統內測控的溫室類型及數量較多時,數據處理將變得復雜,系統開發的復雜性和成本大大增加。為解決這個問題,將Web Services技術引入到嵌入式測控系統中。Web Services服務不依賴于任何語言和平臺,只要遵循相關協議用戶就可以像調用本地服務一樣調用該服務,而不必了解底層的通信細節。
1 系統總體結構
基于Web Services的嵌入式農業物聯網測控系統的總體結構如圖1所示。

現場設備中的ZigBee傳感器網絡、視頻采集模塊、執行機構控制模塊,完成信息采集和設備控制。linux智能網關層是本系統的關鍵部分,網關通過ZigBee網絡收集、存儲環境數據,控制現場執行機構,并對外提供數據查詢、設備控制等web Services接口,數據傳輸部分使用無線WIFI網橋連接現場設備與服務器。服務器主要提供數據庫服務、業務邏輯管理、用戶交互等服務。
2 系統功能模塊設計
2.1 ZigBee無線傳感網絡與無線控制節點
本系統的無線傳感網絡采用CC2530射頻芯片及溫濕度、光照、土壤濕度等傳感器構成,在ZigBee Pro協議棧的基礎上進行應用開發,CC2530結合一個完全集成的、高性能的RF收發器與一個增強型的8051微處理器,提供101 dB的鏈路質量,具有較高的靈敏度和良好的抗干擾性,使得整個無線傳感網絡具有低成本、低功耗、網絡容量大、采樣點布置靈活的優點。
ZigBee網絡由一個協調器、一個或多路由設備和多個終端設備組成。協調器是整個網絡的核心,負責網絡的組建,維護網絡的運行,使得各個節點和路由器間相互通信,路由器負責數據的中轉,終端設備負責采集傳感器數據、控制繼外部設備,協調器通過串口與智能網關相連,透明轉發數據。
ZigBee終端節點有兩部分組成:核心板和擴展版。核心板上主要由CC2530芯片、必需外部電路、天線等組成,主要完成數據傳輸以及控制擴展板功能,擴展板主要有三種:模擬量采集板、數字量采集板、設備控制板。模擬量采集版主要由電壓、電流采集電路組成,數字量采集板主要由RS232、RS485、I2C等數字接口電路組成,設備控制板主要由繼電器和PWM接口等組成。根據不同的傳感器和控制設備選用不同的擴展版,既增加了ZigBee節點的靈活性又降低了成本和復雜性。
2.2 無線WIFI局域網
在實際生產中溫室距離服務器的距離較遠且分布離散,如果通過雙絞線、光纖等有線方式連接溫室中的智能網關和云服務器,不但成本高、布線不便、影響農業生產;3G網絡帶寬窄、受無線信號影響大,流量費非常昂貴,不適合傳輸高清視頻。考慮視頻服務需要較大帶寬和智能網關與服務器的距離較遠,而無線網橋具有安裝靈活、通信帶寬較寬、通信距離長(目前無線點對點通信距離可達幾公里甚至幾十公里)等特點,采用無線網橋連接是較好的組網選擇。
2.3 智能網關
2.3.1 智能網關的硬件結構及操作系統
智能網關的硬件系統主要由ARM處理器構成。本系統的ARM處理器是三星公司的S3C6410微處理器,S3C6410是一款低功率、高性價比、高性能的用于移動電話和通用處理RSIC處理器。主要硬件資源及接口包括128M SRAM芯片,256M Nand Flash芯片,一個以太網口、兩個USB接口、4個RS232口等其他數字接口。
智能網關上運行經過剪裁的linux 3.0.1版本操作系統,以及YAFFS2可讀寫文件系統,同時載入串口驅動、USBHost驅動(用以支持U盤、USB WIFI、USB 3G等)、網卡驅動等外設驅動,以支持應用軟件運行。
2.3.2 智能網關Web Services服務
Web Services是本系統的重要組成部分,從表面上看,Web Services服務就是一個Web應用程序,它向外界暴露出一個API接口,用戶可以通過編程方式在Internet上調用這些Web Services應用程序。從深層次上看,Web服務是一種新的Web應用程序分支,它們是自包含、自描述、模塊化的應用,可以在網絡中被描述、發布、查找、調用。Web Services基于可擴展的標記語言(XML)消息交換,其所使用協議都是開放的標準協議,調用接口更加規范且與平臺無關;調用方法采用簡單對象訪問協議(SOAP),其定義了其消息格式,實現實體間的信息交換;使用Web Services描述語言(WSDL)描述網絡服務及其訪問信息,WSDL描述了Web Services及其函數、參數和返回值等。
本系統的軟件架構如圖2:主要有Web Serice接口層、服務抽象層、信息采集與控制層。

1)Web Services接口層
由于嵌入式系統的計算及存儲資源有限,本文使用gSOAP輕量級的開源工具實現Web Serices網絡接口。gSOAP編譯工具提供了一個SOAP /XML關于C/C++語言的實現,屏蔽了SOAP協議的具體實現細節,系統開發者只需關注具體的邏輯實現即可。gSOAP開發工具主要由gSoap編譯器和運行時庫組成,gSoap編譯器包括WSDL解析器(wsdl2h)、存根和框架編譯器(soapcpp2),WSDL解析器可以把WSDL文件解析成相應的C/C++的頭文件(.h)主要用于Web Service客戶端開發,存根和框架編譯器根據頭文件中函數定義生成存根和框架文件主要用于Web Service服務端開發,stdsoap2.c是運行時庫文件,編譯時必須包含該文件。本系統中嵌入式網關對外服務,所以只實現服務端程序。開發服端的應用程序的過程如圖3所示。

開發服務端程序,用戶定義一個C/C++頭文件(.h),這個頭文件包含服務函數的名稱、輸入/輸出參數和相應的數據類型聲明,聲明的函數需要在相應的C/C++文件中實現。該頭文件經gSoap編譯器編譯后,即可生成服務端端框架以及WSDL文件。獲取傳感器參數和控制設備的頭文件如圖4所示。

這個頭文件定義了Web Service的基本屬性:通信方式、文字編碼、命名空間、服務地址、接口參數聲明以及兩個服務接口函數ns_sen sor、ns_device。
依據圖定義的頭文件,按照圖服務端開發步驟系統Web服務的實現程序的主要代碼如圖5所示。

2)服務抽象層
服務抽象層屏蔽不同傳感器和可控設備的細節,為gSoap網絡接口層提供支持,如圖6兩個接口函數的具體實現方法就屬于這一層。傳感器數據來源可能來自數據庫、其他進程、或者ZigBee網絡等等,而實現一個設備動作(如簾幕收展)因為耗時較長需要創建新進程控制多個繼電器協同工作。這就需要將抽象的查詢和控制命令解析為具體的實現過程,當新增、修改指令時只需修改本層即可。
3)信息采集與控制層
信息采集和控制層主要完成具體的數據采集和控制過程。信息采集主要指通過ZigBee網絡將模擬傳感器的電流或電壓值轉換為數字值或按照通信協議獲取數字傳感器的測量值。控制主要指根據抽象層的設備控制命令完成具體設備的控制,如控制ZigBee板某個載繼電器的閉合或者通過某個PWM接口控制步進電機運轉。當有新的物理設備加入時,只需要修改本層代碼即可。
2.4 視頻監控
由于通用ARM處理器核心不包含DSP視頻處理模塊,因此如果通過軟件實現視頻編碼及流化,實踐表明一般只能實現較低幀率且較低分辨率的輸出,畫質較差,容易造成CPU占用率高、系統不穩定。如果加入IPC(網絡攝像機)專業處理器會造硬件成本和軟件研發成本巨大提高。近年來監控產品價格逐漸降低,選擇成熟穩定的網絡攝像機作為視頻監控是較好的方案。網絡攝像機一般會提供SDK(軟件開發包)這使得視頻開發快捷方便。
2.5 應用層
根據軟件工程松耦合分層設計思想和農業生產需求額多樣性,本系統中的應用層設計劃分力應用服務子層、業務邏輯子層以及用戶交互子層。每一層都抽象地定義各自的功能以及對外接口。這樣每層都可以使用任何開發語言(如C#,Java等)獨立地開發,層與層之間通過統一的接口進行通信,目前層與層通信采用了共享數據庫數據以及進程間通信技術,避免系統某一層的改變影響其他層。
3 系統運行與測試
本系統已成功應用于江蘇某農業科技示范園內的兩座玻璃溫室。位于辦公區的服務器距離溫室距離大于500米,通過無線網橋可以流暢的查看高清視頻,觀察植物生長狀況。每個溫室內包括DHT21溫濕度傳感器(單總線)、JTBQ-6光照傳感器(電流輸出)、S-100H二氧化碳傳感器(電壓輸出),溫室具有側窗、天窗、保溫幕等多種設備需要控制,ZigBee控制節點連接了24路繼電器模塊,以完成復雜的控制過程。
服務器端開發使用.net平臺(開個工具為VS2010和SQLServer2008)的C#語言開發,包括數據管理及控制模塊和Web網站,數據管理及控制調用嵌入式網關的Web Service接口完成數據采集、存儲和設備控制,開發時只需引用gSoap生成的WSDL文件VS2010會自動生成相應的類,開發者只需使用這些類而不必了解具體實現過程,在圖5頭文件中定義的接口在VS2010中生成的類如圖6所示。

Web網站完成與用戶交互,用戶可以登入網站查看數據,控制設備等,通過視頻查看植物生長狀況。
4 結束語
本文構建了基于嵌入式Web Services的農業物聯網測控系統,實現了大規模的農業測控方案。嵌入式網關通過web Services技術將Zigbee無線測控網絡與Internet鏈接起來,使得的底層設備數據獲取與設備控制都有相同的表示方式和操作方法,實現了異構網絡的互操作,測控網絡獲得極大的靈活性,程序設計者都將從復雜的底層數據處理中解脫出來,大大降低了開發和維護的難度。
評論