盛 平,杜洪超
(江蘇大學(xué) 江蘇 鎮(zhèn)江 212013)
基于Web Services的嵌入式農(nóng)業(yè)物聯(lián)網(wǎng)測控系統(tǒng)
盛 平,杜洪超
(江蘇大學(xué) 江蘇 鎮(zhèn)江 212013)
目前農(nóng)業(yè)物聯(lián)網(wǎng)測控系統(tǒng)數(shù)據(jù)交換普遍采用基于socket的簡單通信。為解決使用socket通信產(chǎn)生的數(shù)據(jù)交換復(fù)雜,系統(tǒng)耦合性大的問題,將Web Services技術(shù)應(yīng)用到linux的嵌入式農(nóng)業(yè)物聯(lián)網(wǎng)測控中,并給出了測控系統(tǒng)體系結(jié)構(gòu)及軟、硬件實現(xiàn)方法。Web Service技術(shù)使得嵌入式測控系統(tǒng)有了標準的數(shù)據(jù)表示格式和數(shù)據(jù)交換協(xié)議,提高了開發(fā)效率,便于系統(tǒng)修改、定制。實驗結(jié)果表明,該系統(tǒng)性能穩(wěn)定,無線數(shù)據(jù)采集與設(shè)備控制能達到實際需求,具有較高的實用性。
Web Services;物聯(lián)網(wǎng);嵌入式;測控
物聯(lián)網(wǎng)ZigBee技術(shù)以其低成本、低功耗、高可靠性的特點被廣泛應(yīng)用于農(nóng)業(yè)測控系統(tǒng)中,實現(xiàn)了無線數(shù)據(jù)采集和控制。孫玉文等設(shè)計了基于嵌入式ZigBee技術(shù)的農(nóng)田信息服務(wù)系統(tǒng)[1],韓華峰等設(shè)計了基于ZigBee網(wǎng)絡(luò)的溫室環(huán)境遠程監(jiān)控系統(tǒng)[2]等等。盡管我國農(nóng)業(yè)物聯(lián)網(wǎng)方面的應(yīng)用有所突破,但依然存在許多問題。目前農(nóng)業(yè)測控系統(tǒng)中ZigBee測控網(wǎng)絡(luò)與服務(wù)器數(shù)據(jù)交換一般通過嵌入式設(shè)備使用socket通信,數(shù)據(jù)被透明的傳送至服務(wù)器,其數(shù)據(jù)格式、發(fā)送方式、響應(yīng)方式等都是自定義的私有協(xié)議,上層軟件的開發(fā)者需要根據(jù)私有協(xié)議處理數(shù)據(jù)通信。基于socket的簡單私有協(xié)議使得系統(tǒng)耦合性加大、系統(tǒng)靈活性降低。如果系統(tǒng)內(nèi)測控的溫室類型及數(shù)量較多時,數(shù)據(jù)處理將變得復(fù)雜,系統(tǒng)開發(fā)的復(fù)雜性和成本大大增加。為解決這個問題,將Web Services技術(shù)引入到嵌入式測控系統(tǒng)中[3]。Web Services服務(wù)不依賴于任何語言和平臺,只要遵循相關(guān)協(xié)議用戶就可以像調(diào)用本地服務(wù)一樣調(diào)用該服務(wù),而不必了解底層的通信細節(jié)。
基于Web Services的嵌入式農(nóng)業(yè)物聯(lián)網(wǎng)測控系統(tǒng)的總體結(jié)構(gòu)如圖1所示
現(xiàn)場設(shè)備中的ZigBee傳感器網(wǎng)絡(luò)、視頻采集模塊、執(zhí)行機構(gòu)控制模塊,完成信息采集和設(shè)備控制。linux智能網(wǎng)關(guān)層是本系統(tǒng)的關(guān)鍵部分,網(wǎng)關(guān)通過ZigBee網(wǎng)絡(luò)收集、存儲環(huán)境數(shù)據(jù),控制現(xiàn)場執(zhí)行機構(gòu),并對外提供數(shù)據(jù)查詢、設(shè)備控制等web Services接口,數(shù)據(jù)傳輸部分使用無線WIFI網(wǎng)橋連接現(xiàn)場設(shè)備與服務(wù)器。服務(wù)器主要提供數(shù)據(jù)庫服務(wù)、業(yè)務(wù)邏輯管理、用戶交互等服務(wù)。
2.1 ZigBee無線傳感網(wǎng)絡(luò)與無線控制節(jié)點
本系統(tǒng)的無線傳感網(wǎng)絡(luò)采用CC2530射頻芯片及溫濕度、光照、土壤濕度等傳感器構(gòu)成,在ZigBee Pro協(xié)議棧的基礎(chǔ)上進行應(yīng)用開發(fā),CC2530結(jié)合一個完全集成的、高性能的RF收發(fā)器與一個增強型的8051微處理器,提供101 dB的鏈路質(zhì)量,具有較高的靈敏度和良好的抗干擾性,使得整個無線傳感網(wǎng)絡(luò)具有低成本、低功耗、網(wǎng)絡(luò)容量大、采樣點布置靈活的優(yōu)點。

圖1 系統(tǒng)方案圖Fig.1 Chart of the system
ZigBee網(wǎng)絡(luò)由一個協(xié)調(diào)器、一個或多路由設(shè)備和多個終端設(shè)備組成。協(xié)調(diào)器是整個網(wǎng)絡(luò)的核心,負責網(wǎng)絡(luò)的組建,維護網(wǎng)絡(luò)的運行,使得各個節(jié)點和路由器間相互通信,路由器負責數(shù)據(jù)的中轉(zhuǎn),終端設(shè)備負責采集傳感器數(shù)據(jù)、控制繼外部設(shè)備,協(xié)調(diào)器通過串口與智能網(wǎng)關(guān)相連,透明轉(zhuǎn)發(fā)數(shù)據(jù)。
ZigBee終端節(jié)點有兩部分組成:核心板和擴展版。核心板上主要由CC2530芯片、必需外部電路、天線等組成,主要完成數(shù)據(jù)傳輸以及控制擴展板功能,擴展板主要有三種:模擬量采集板、數(shù)字量采集板、設(shè)備控制板。模擬量采集版主要由電壓、電流采集電路組成,數(shù)字量采集板主要由RS232、RS485、I2C等數(shù)字接口電路組成,設(shè)備控制板主要由繼電器和PWM接口等組成。根據(jù)不同的傳感器和控制設(shè)備選用不同的擴展版,既增加了ZigBee節(jié)點的靈活性又降低了成本和復(fù)雜性。
2.2 無線WIFI局域網(wǎng)
在實際生產(chǎn)中溫室距離服務(wù)器的距離較遠且分布離散,如果通過雙絞線、光纖等有線方式連接溫室中的智能網(wǎng)關(guān)和云服務(wù)器,不但成本高、布線不便、影響農(nóng)業(yè)生產(chǎn);3G網(wǎng)絡(luò)帶寬窄、受無線信號影響大,流量費非常昂貴,不適合傳輸高清視頻。考慮視頻服務(wù)需要較大帶寬和智能網(wǎng)關(guān)與服務(wù)器的距離較遠,而無線網(wǎng)橋具有安裝靈活、通信帶寬較寬、通信距離長(目前無線點對點通信距離可達幾公里甚至幾十公里)等特點,采用無線網(wǎng)橋連接是較好的組網(wǎng)選擇。
2.3 智能網(wǎng)關(guān)
2.3.1 智能網(wǎng)關(guān)的硬件結(jié)構(gòu)及操作系統(tǒng)
智能網(wǎng)關(guān)的硬件系統(tǒng)主要由ARM處理器構(gòu)成。本系統(tǒng)的ARM處理器是三星公司的S3C6410微處理器,S3C6410是一款低功率、高性價比、高性能的用于移動電話和通用處理RSIC處理器。主要硬件資源及接口包括128M SRAM 芯片,256M Nand Flash 芯片,一個以太網(wǎng)口、兩個USB 接口、4個RS232口等其他數(shù)字接口。
智能網(wǎng)關(guān)上運行經(jīng)過剪裁的linux 3.0.1版本操作系統(tǒng),以及YAFFS2可讀寫文件系統(tǒng),同時載入串口驅(qū)動、USB Host驅(qū)動(用以支持U盤、USB WIFI、USB 3G等)、網(wǎng)卡驅(qū)動等外設(shè)驅(qū)動,以支持應(yīng)用軟件運行。
2.3.2 智能網(wǎng)關(guān)web Services服務(wù)
Web Services是本系統(tǒng)的重要組成部分,從表面上看,Web Services服務(wù)就是一個Web應(yīng)用程序,它向外界暴露出一個API接口,用戶可以通過編程方式在Internet 上調(diào)用這些Web Services 應(yīng)用程序。從深層次上看,Web 服務(wù)是一種新的Web 應(yīng)用程序分支,它們是自包含、自描述、模塊化的應(yīng)用,可以在網(wǎng)絡(luò)中被描述、發(fā)布、查找、調(diào)用。Web Services基于可擴展的標記語言(XML)消息交換,其所使用協(xié)議都是開放的標準協(xié)議,調(diào)用接口更加規(guī)范且與平臺無關(guān);調(diào)用方法采用簡單對象訪問協(xié)議(SOAP),其定義了其消息格式,實現(xiàn)實體間的信息交換;使用Web Services描述語言(WSDL)描述網(wǎng)絡(luò)服務(wù)及其訪問信息,WSDL描述了Web Services及其函數(shù)、參數(shù)和返回值等[4]。

圖2 嵌入式智能網(wǎng)關(guān)軟件架構(gòu)Fig.2 Structure of embedded sotfware
本系統(tǒng)的軟件架構(gòu)如圖2:主要有Web Service接口層、服務(wù)抽象層、信息采集與控制層。
1)Web Services接口層
由于嵌入式系統(tǒng)的計算及存儲資源有限,本文使用gSOAP輕量級的開源工具實現(xiàn)Web Services網(wǎng)絡(luò)接口[5]。gSOAP編譯工具提供了一個SOAP/XML關(guān)于C/C++語言的實現(xiàn),屏蔽了SOAP協(xié)議的具體實現(xiàn)細節(jié),系統(tǒng)開發(fā)者只需關(guān)注具體的邏輯實現(xiàn)即可。gSOAP開發(fā)工具主要由gSoap編譯器和運行時庫組成,gSoap編譯器包括WSDL解析器(wsdl2h)、存根和框架編譯器(soapcpp2),WSDL解析器可以把WSDL文件解析成相應(yīng)的C/C++的頭文件(.h)主要用于Web Service客戶端開發(fā),存根和框架編譯器根據(jù)頭文件中函數(shù)定義生成存根和框架文件主要用于Web Service服務(wù)端開發(fā),stdsoap2.c是運行時庫文件,編譯時必須包含該文件。本系統(tǒng)中嵌入式網(wǎng)關(guān)對外服務(wù),所以只實現(xiàn)服務(wù)端程序。 開發(fā)服端的應(yīng)用程序的過程如圖3所示。

圖3 Web Service 服務(wù)端開發(fā)流程Fig.3 Flow of Web Service server
開發(fā)服務(wù)端程序,用戶定義一個C/C++頭文件(.h),這個頭文件包含服務(wù)函數(shù)的名稱、輸入/輸出參數(shù)和相應(yīng)的數(shù)據(jù)類型聲明,聲明的函數(shù)需要在相應(yīng)的C/C++文件中實現(xiàn)。該頭文件經(jīng)gSoap編譯器編譯后,即可生成服務(wù)端端框架以及WSDL文件。獲取傳感器參數(shù)和控制設(shè)備的頭文件如圖4所示。
這個頭文件定義了 Web Service的基本屬性:通信方式、文字編碼、命名空間、服務(wù)地址、接口參數(shù)聲明以及兩個服務(wù)接口函數(shù)ns__sensor、ns__device。
依據(jù)圖定義的頭文件,按照圖服務(wù)端開發(fā)步驟系統(tǒng)Web服務(wù)的實現(xiàn)程序的主要代碼如圖5所示。

圖4 接口頭文件Fig.4 Head file of interface

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

圖6 與gSoap頭文件對應(yīng)的接口類Fig.6 Class corresponding with gSoap head file
Web網(wǎng)站完成與用戶交互,用戶可以登入網(wǎng)站查看數(shù)據(jù),控制設(shè)備等,通過視頻查看植物生長狀況。
本文構(gòu)建了基于嵌入式Web Services的農(nóng)業(yè)物聯(lián)網(wǎng)測控系統(tǒng),實現(xiàn)了大規(guī)模的農(nóng)業(yè)測控方案。嵌入式網(wǎng)關(guān)通過web Services技術(shù)將Zigbee無線測控網(wǎng)絡(luò)與Internet鏈接起來,使得的底層設(shè)備數(shù)據(jù)獲取與設(shè)備控制都有相同的表示方式和操作方法,實現(xiàn)了異構(gòu)網(wǎng)絡(luò)的互操作,測控網(wǎng)絡(luò)獲得極大的靈活性,程序設(shè)計者都將從復(fù)雜的底層數(shù)據(jù)處理中解脫出來,大大降低了開發(fā)和維護的難度。
[1] 孫玉文,沈明霞,張祥甫,等.基于嵌入式ZigBee技術(shù)的農(nóng)田信息服務(wù)系統(tǒng)設(shè)計[J].農(nóng)業(yè)機械學(xué)報,2010,41(5):148-151.
SUN Yu-wen.SHEN Ming-xia,ZHANG Xiang-pu,et al.Design of embedded agricultural intelligence services system based on ZigBee technology[J].Transaction of the Chinese society for gricultura IM achinery,2010,41(5):148~151.
[2] 韓華峰,杜克明,孫忠富,等.基于ZigBee網(wǎng)絡(luò)的溫室環(huán)境遠程監(jiān)控系統(tǒng)設(shè)計與應(yīng)用[J].農(nóng)業(yè)工程學(xué)報,2009,25(7):158-163.
HAN Hua-feng,DU Ke-ming,SUN Zhong-fu,et al.Design and application of ZigBee based telemonitoring System for greenhouse environment data acquisition[J].Transactions of the CSAE,2009,25(7):158-163.
[3] 顏友軍,許蕾,陳林,等.面向智能移動平臺的Web服務(wù)推送技術(shù)研究[J].計算機科學(xué)與探索,2012,6(7):602-611.
YAN Xiao-jun,XU Lei,CHEN Lin,et al.Application mode construction of internet of things(IOT)for facility agriculture in Beijing[J].Transactions of the CSAE,2012,28(4):149-154.
[4] 李永,黃晶,馬建剛.基于Web Services的嵌入式智能家居系統(tǒng)的研制[J].微計算機應(yīng)用,2011,32(2):36-45.LI Yong,HUANG Jing,MA Jian-gang.Research of embedded smart-home system based on web Services[J].Microcomputer Applications,2011,32(2):36-45.
[5] 何鵬舉.基于Web服務(wù)的無線網(wǎng)絡(luò)節(jié)點傳感器研究[J].傳感技術(shù)學(xué)報2009,22(11):1634-1638.HE Peng-Ju.Research on Wireless Networked Node Sensor Using Web Service[J].Chinese Journal of Sensors and Actuators,2009,22(11):1634-1638.
[6] 孫忠富,杜克明,尹首一.物聯(lián)網(wǎng)發(fā)展趨勢與農(nóng)業(yè)應(yīng)用展望[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2010,29(1):5-8.
SUN Zhong-Fu,DU Ke-Ming,YI Shou-Yi.Research and application of platform for intelligent agricultural greenhouse based on IOT and cloudy service[J].Agriculture Network Information,2010,29(1):5-8.
The embedded IOT measurement and control system of agriculture based on Web Services
SHENG Ping,DU Hong-Chao
(Jiangsu University,Zhenjiang 212013,China)
The common method of data exchange of the Internet of Things(IOT)measurement and control system is simple communication based on socket.To deal with problems that is caused by socket ,such as complicated exchange of data ,system module strong coupling,this paper apply Web Services technology to the system and descript the architecture of software and hardware ,Web Services make the communication have standard format of data representation and protocol of data exchange ,which improve the efficiency of development and easy to modify,customeize system.The experimental results showed that the performance of the system was quite stable and the system satisfies the design requirements in real-time data acquisition wirelessly,environmental control remotely ,which have a very high practical value.
Web Services;IOT;embedded system;measurement and control
TN915
A
1674-6236(2014)11-0107-04
2014-01-09 稿件編號:201401068
科技部基金資助項目(11C26213204549);江蘇省科技支撐項目(BE2010347)
盛 平(1957—),男,江蘇鎮(zhèn)江人,碩士,高級工程師。研究方向:嵌入式測控系統(tǒng)、視頻監(jiān)控及跟蹤。