盛 平,杜洪超
(江蘇大學(xué) 江蘇 鎮(zhèn)江 212013)
基于Web Services的嵌入式農(nóng)業(yè)物聯(lián)網(wǎng)測(cè)控系統(tǒng)
盛 平,杜洪超
(江蘇大學(xué) 江蘇 鎮(zhèn)江 212013)
目前農(nóng)業(yè)物聯(lián)網(wǎng)測(cè)控系統(tǒng)數(shù)據(jù)交換普遍采用基于socket的簡(jiǎn)單通信。為解決使用socket通信產(chǎn)生的數(shù)據(jù)交換復(fù)雜,系統(tǒng)耦合性大的問(wèn)題,將Web Services技術(shù)應(yīng)用到linux的嵌入式農(nóng)業(yè)物聯(lián)網(wǎng)測(cè)控中,并給出了測(cè)控系統(tǒng)體系結(jié)構(gòu)及軟、硬件實(shí)現(xiàn)方法。Web Service技術(shù)使得嵌入式測(cè)控系統(tǒng)有了標(biāo)準(zhǔn)的數(shù)據(jù)表示格式和數(shù)據(jù)交換協(xié)議,提高了開(kāi)發(fā)效率,便于系統(tǒng)修改、定制。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)性能穩(wěn)定,無(wú)線數(shù)據(jù)采集與設(shè)備控制能達(dá)到實(shí)際需求,具有較高的實(shí)用性。
Web Services;物聯(lián)網(wǎng);嵌入式;測(cè)控
物聯(lián)網(wǎng)ZigBee技術(shù)以其低成本、低功耗、高可靠性的特點(diǎn)被廣泛應(yīng)用于農(nóng)業(yè)測(cè)控系統(tǒng)中,實(shí)現(xiàn)了無(wú)線數(shù)據(jù)采集和控制。孫玉文等設(shè)計(jì)了基于嵌入式ZigBee技術(shù)的農(nóng)田信息服務(wù)系統(tǒng)[1],韓華峰等設(shè)計(jì)了基于ZigBee網(wǎng)絡(luò)的溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)[2]等等。盡管我國(guó)農(nóng)業(yè)物聯(lián)網(wǎng)方面的應(yīng)用有所突破,但依然存在許多問(wèn)題。目前農(nóng)業(yè)測(cè)控系統(tǒng)中ZigBee測(cè)控網(wǎng)絡(luò)與服務(wù)器數(shù)據(jù)交換一般通過(guò)嵌入式設(shè)備使用socket通信,數(shù)據(jù)被透明的傳送至服務(wù)器,其數(shù)據(jù)格式、發(fā)送方式、響應(yīng)方式等都是自定義的私有協(xié)議,上層軟件的開(kāi)發(fā)者需要根據(jù)私有協(xié)議處理數(shù)據(jù)通信?;趕ocket的簡(jiǎn)單私有協(xié)議使得系統(tǒng)耦合性加大、系統(tǒng)靈活性降低。如果系統(tǒng)內(nèi)測(cè)控的溫室類型及數(shù)量較多時(shí),數(shù)據(jù)處理將變得復(fù)雜,系統(tǒng)開(kāi)發(fā)的復(fù)雜性和成本大大增加。為解決這個(gè)問(wèn)題,將Web Services技術(shù)引入到嵌入式測(cè)控系統(tǒng)中[3]。Web Services服務(wù)不依賴于任何語(yǔ)言和平臺(tái),只要遵循相關(guān)協(xié)議用戶就可以像調(diào)用本地服務(wù)一樣調(diào)用該服務(wù),而不必了解底層的通信細(xì)節(jié)。
基于Web Services的嵌入式農(nóng)業(yè)物聯(lián)網(wǎng)測(cè)控系統(tǒng)的總體結(jié)構(gòu)如圖1所示
現(xiàn)場(chǎng)設(shè)備中的ZigBee傳感器網(wǎng)絡(luò)、視頻采集模塊、執(zhí)行機(jī)構(gòu)控制模塊,完成信息采集和設(shè)備控制。linux智能網(wǎng)關(guān)層是本系統(tǒng)的關(guān)鍵部分,網(wǎng)關(guān)通過(guò)ZigBee網(wǎng)絡(luò)收集、存儲(chǔ)環(huán)境數(shù)據(jù),控制現(xiàn)場(chǎng)執(zhí)行機(jī)構(gòu),并對(duì)外提供數(shù)據(jù)查詢、設(shè)備控制等web Services接口,數(shù)據(jù)傳輸部分使用無(wú)線WIFI網(wǎng)橋連接現(xiàn)場(chǎng)設(shè)備與服務(wù)器。服務(wù)器主要提供數(shù)據(jù)庫(kù)服務(wù)、業(yè)務(wù)邏輯管理、用戶交互等服務(wù)。
2.1 ZigBee無(wú)線傳感網(wǎng)絡(luò)與無(wú)線控制節(jié)點(diǎn)
本系統(tǒng)的無(wú)線傳感網(wǎng)絡(luò)采用CC2530射頻芯片及溫濕度、光照、土壤濕度等傳感器構(gòu)成,在ZigBee Pro協(xié)議棧的基礎(chǔ)上進(jìn)行應(yīng)用開(kāi)發(fā),CC2530結(jié)合一個(gè)完全集成的、高性能的RF收發(fā)器與一個(gè)增強(qiáng)型的8051微處理器,提供101 dB的鏈路質(zhì)量,具有較高的靈敏度和良好的抗干擾性,使得整個(gè)無(wú)線傳感網(wǎng)絡(luò)具有低成本、低功耗、網(wǎng)絡(luò)容量大、采樣點(diǎn)布置靈活的優(yōu)點(diǎn)。
圖1 系統(tǒng)方案圖Fig.1 Chart of the system
ZigBee網(wǎng)絡(luò)由一個(gè)協(xié)調(diào)器、一個(gè)或多路由設(shè)備和多個(gè)終端設(shè)備組成。協(xié)調(diào)器是整個(gè)網(wǎng)絡(luò)的核心,負(fù)責(zé)網(wǎng)絡(luò)的組建,維護(hù)網(wǎng)絡(luò)的運(yùn)行,使得各個(gè)節(jié)點(diǎn)和路由器間相互通信,路由器負(fù)責(zé)數(shù)據(jù)的中轉(zhuǎn),終端設(shè)備負(fù)責(zé)采集傳感器數(shù)據(jù)、控制繼外部設(shè)備,協(xié)調(diào)器通過(guò)串口與智能網(wǎng)關(guān)相連,透明轉(zhuǎn)發(fā)數(shù)據(jù)。
ZigBee終端節(jié)點(diǎn)有兩部分組成:核心板和擴(kuò)展版。核心板上主要由CC2530芯片、必需外部電路、天線等組成,主要完成數(shù)據(jù)傳輸以及控制擴(kuò)展板功能,擴(kuò)展板主要有三種:模擬量采集板、數(shù)字量采集板、設(shè)備控制板。模擬量采集版主要由電壓、電流采集電路組成,數(shù)字量采集板主要由RS232、RS485、I2C等數(shù)字接口電路組成,設(shè)備控制板主要由繼電器和PWM接口等組成。根據(jù)不同的傳感器和控制設(shè)備選用不同的擴(kuò)展版,既增加了ZigBee節(jié)點(diǎn)的靈活性又降低了成本和復(fù)雜性。
2.2 無(wú)線WIFI局域網(wǎng)
在實(shí)際生產(chǎn)中溫室距離服務(wù)器的距離較遠(yuǎn)且分布離散,如果通過(guò)雙絞線、光纖等有線方式連接溫室中的智能網(wǎng)關(guān)和云服務(wù)器,不但成本高、布線不便、影響農(nóng)業(yè)生產(chǎn);3G網(wǎng)絡(luò)帶寬窄、受無(wú)線信號(hào)影響大,流量費(fèi)非常昂貴,不適合傳輸高清視頻??紤]視頻服務(wù)需要較大帶寬和智能網(wǎng)關(guān)與服務(wù)器的距離較遠(yuǎn),而無(wú)線網(wǎng)橋具有安裝靈活、通信帶寬較寬、通信距離長(zhǎng)(目前無(wú)線點(diǎn)對(duì)點(diǎn)通信距離可達(dá)幾公里甚至幾十公里)等特點(diǎn),采用無(wú)線網(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是一款低功率、高性價(jià)比、高性能的用于移動(dòng)電話和通用處理RSIC處理器。主要硬件資源及接口包括128M SRAM 芯片,256M Nand Flash 芯片,一個(gè)以太網(wǎng)口、兩個(gè)USB 接口、4個(gè)RS232口等其他數(shù)字接口。
智能網(wǎng)關(guān)上運(yùn)行經(jīng)過(guò)剪裁的linux 3.0.1版本操作系統(tǒng),以及YAFFS2可讀寫(xiě)文件系統(tǒng),同時(shí)載入串口驅(qū)動(dòng)、USB Host驅(qū)動(dòng)(用以支持U盤、USB WIFI、USB 3G等)、網(wǎng)卡驅(qū)動(dòng)等外設(shè)驅(qū)動(dòng),以支持應(yīng)用軟件運(yùn)行。
2.3.2 智能網(wǎng)關(guān)web Services服務(wù)
Web Services是本系統(tǒng)的重要組成部分,從表面上看,Web Services服務(wù)就是一個(gè)Web應(yīng)用程序,它向外界暴露出一個(gè)API接口,用戶可以通過(guò)編程方式在Internet 上調(diào)用這些Web Services 應(yīng)用程序。從深層次上看,Web 服務(wù)是一種新的Web 應(yīng)用程序分支,它們是自包含、自描述、模塊化的應(yīng)用,可以在網(wǎng)絡(luò)中被描述、發(fā)布、查找、調(diào)用。Web Services基于可擴(kuò)展的標(biāo)記語(yǔ)言(XML)消息交換,其所使用協(xié)議都是開(kāi)放的標(biāo)準(zhǔn)協(xié)議,調(diào)用接口更加規(guī)范且與平臺(tái)無(wú)關(guān);調(diào)用方法采用簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP),其定義了其消息格式,實(shí)現(xiàn)實(shí)體間的信息交換;使用Web Services描述語(yǔ)言(WSDL)描述網(wǎng)絡(luò)服務(wù)及其訪問(wèn)信息,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)的計(jì)算及存儲(chǔ)資源有限,本文使用gSOAP輕量級(jí)的開(kāi)源工具實(shí)現(xiàn)Web Services網(wǎng)絡(luò)接口[5]。gSOAP編譯工具提供了一個(gè)SOAP/XML關(guān)于C/C++語(yǔ)言的實(shí)現(xiàn),屏蔽了SOAP協(xié)議的具體實(shí)現(xiàn)細(xì)節(jié),系統(tǒng)開(kāi)發(fā)者只需關(guān)注具體的邏輯實(shí)現(xiàn)即可。gSOAP開(kāi)發(fā)工具主要由gSoap編譯器和運(yùn)行時(shí)庫(kù)組成,gSoap編譯器包括WSDL解析器(wsdl2h)、存根和框架編譯器(soapcpp2),WSDL解析器可以把WSDL文件解析成相應(yīng)的C/C++的頭文件(.h)主要用于Web Service客戶端開(kāi)發(fā),存根和框架編譯器根據(jù)頭文件中函數(shù)定義生成存根和框架文件主要用于Web Service服務(wù)端開(kāi)發(fā),stdsoap2.c是運(yùn)行時(shí)庫(kù)文件,編譯時(shí)必須包含該文件。本系統(tǒng)中嵌入式網(wǎng)關(guān)對(duì)外服務(wù),所以只實(shí)現(xiàn)服務(wù)端程序。 開(kāi)發(fā)服端的應(yīng)用程序的過(guò)程如圖3所示。
圖3 Web Service 服務(wù)端開(kāi)發(fā)流程Fig.3 Flow of Web Service server
開(kāi)發(fā)服務(wù)端程序,用戶定義一個(gè)C/C++頭文件(.h),這個(gè)頭文件包含服務(wù)函數(shù)的名稱、輸入/輸出參數(shù)和相應(yīng)的數(shù)據(jù)類型聲明,聲明的函數(shù)需要在相應(yīng)的C/C++文件中實(shí)現(xiàn)。該頭文件經(jīng)gSoap編譯器編譯后,即可生成服務(wù)端端框架以及WSDL文件。獲取傳感器參數(shù)和控制設(shè)備的頭文件如圖4所示。
這個(gè)頭文件定義了 Web Service的基本屬性:通信方式、文字編碼、命名空間、服務(wù)地址、接口參數(shù)聲明以及兩個(gè)服務(wù)接口函數(shù)ns__sensor、ns__device。
依據(jù)圖定義的頭文件,按照?qǐng)D服務(wù)端開(kāi)發(fā)步驟系統(tǒng)Web服務(wù)的實(shí)現(xiàn)程序的主要代碼如圖5所示。
圖4 接口頭文件Fig.4 Head file of interface
圖5 服務(wù)程序主代碼Fig.5 Main code of server
2)服務(wù)抽象層
服務(wù)抽象層屏蔽不同傳感器和可控設(shè)備的細(xì)節(jié),為gSoap網(wǎng)絡(luò)接口層提供支持,如圖6兩個(gè)接口函數(shù)的具體實(shí)現(xiàn)方法就屬于這一層。傳感器數(shù)據(jù)來(lái)源可能來(lái)自數(shù)據(jù)庫(kù)、其他進(jìn)程、或者ZigBee網(wǎng)絡(luò)等等,而實(shí)現(xiàn)一個(gè)設(shè)備動(dòng)作(如簾幕收展)因?yàn)楹臅r(shí)較長(zhǎng)需要?jiǎng)?chuàng)建新進(jìn)程控制多個(gè)繼電器協(xié)同工作。這就需要將抽象的查詢和控制命令解析為具體的實(shí)現(xiàn)過(guò)程,當(dāng)新增、修改指令時(shí)只需修改本層即可。
3)信息采集與控制層
信息采集和控制層主要完成具體的數(shù)據(jù)采集和控制過(guò)程。信息采集主要指通過(guò)ZigBee網(wǎng)絡(luò)將模擬傳感器的電流或電壓值轉(zhuǎn)換為數(shù)字值或按照通信協(xié)議獲取數(shù)字傳感器的測(cè)量值。控制主要指根據(jù)抽象層的設(shè)備控制命令完成具體設(shè)備的控制,如控制ZigBee板某個(gè)載繼電器的閉合或者通過(guò)某個(gè)PWM接口控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)。當(dāng)有新的物理設(shè)備加入時(shí),只需要修改本層代碼即可。
2.4 視頻監(jiān)控
由于通用ARM處理器核心不包含DSP視頻處理模塊,因此如果通過(guò)軟件實(shí)現(xiàn)視頻編碼及流化,實(shí)踐表明一般只能實(shí)現(xiàn)較低幀率且較低分辨率的輸出,畫(huà)質(zhì)較差,容易造成CPU占用率高、系統(tǒng)不穩(wěn)定。如果加入IPC(網(wǎng)絡(luò)攝像機(jī))專業(yè)處理器會(huì)造硬件成本和軟件研發(fā)成本巨大提高。近年來(lái)監(jiān)控產(chǎn)品價(jià)格逐漸降低,選擇成熟穩(wěn)定的網(wǎng)絡(luò)攝像機(jī)作為視頻監(jiān)控是較好的方案。網(wǎng)絡(luò)攝像機(jī)一般會(huì)提供SDK(軟件開(kāi)發(fā)包)這使得視頻開(kāi)發(fā)快捷方便。
2.5 應(yīng)用層
根據(jù)軟件工程松耦合分層設(shè)計(jì)思想和農(nóng)業(yè)生產(chǎn)需求額多樣性[6],本系統(tǒng)中的應(yīng)用層設(shè)計(jì)劃分為應(yīng)用服務(wù)子層、業(yè)務(wù)邏輯子層以及用戶交互子層。每一層都抽象地定義各自的功能以及對(duì)外接口。這樣每層都可以使用任何開(kāi)發(fā)語(yǔ)言(如C#,Java等)獨(dú)立地開(kāi)發(fā),層與層之間通過(guò)統(tǒng)一的接口進(jìn)行通信,目前層與層通信采用了共享數(shù)據(jù)庫(kù)數(shù)據(jù)以及進(jìn)程間通信技術(shù),避免系統(tǒng)某一層的改變影響其他層。
本系統(tǒng)已成功應(yīng)用于江蘇某農(nóng)業(yè)科技示范園內(nèi)的兩座玻璃溫室。位于辦公區(qū)的服務(wù)器距離溫室距離大于500米,通過(guò)無(wú)線網(wǎng)橋可以流暢的查看高清視頻,觀察植物生長(zhǎng)狀況。每個(gè)溫室內(nèi)包括DHT21溫濕度傳感器(單總線)、JTBQ-6光照傳感器(電流輸出)、S-100H二氧化碳傳感器(電壓輸出),溫室具有側(cè)窗、天窗、保溫幕等多種設(shè)備需要控制,ZigBee控制節(jié)點(diǎn)連接了24路繼電器模塊,以完成復(fù)雜的控制過(guò)程。
服務(wù)器端開(kāi)發(fā)使用.net平臺(tái)(開(kāi)個(gè)工具為VS2010和SQLServer2008)的C#語(yǔ)言開(kāi)發(fā),包括數(shù)據(jù)管理及控制模塊和Web網(wǎng)站,數(shù)據(jù)管理及控制調(diào)用嵌入式網(wǎng)關(guān)的Web Service接口完成數(shù)據(jù)采集、存儲(chǔ)和設(shè)備控制,開(kāi)發(fā)時(shí)只需引用gSoap生成的WSDL文件VS2010會(huì)自動(dòng)生成相應(yīng)的類,開(kāi)發(fā)者只需使用這些類而不必了解具體實(shí)現(xiàn)過(guò)程,在圖5頭文件中定義的接口在VS2010中生成的類如圖6所示。
圖6 與gSoap頭文件對(duì)應(yīng)的接口類Fig.6 Class corresponding with gSoap head file
Web網(wǎng)站完成與用戶交互,用戶可以登入網(wǎng)站查看數(shù)據(jù),控制設(shè)備等,通過(guò)視頻查看植物生長(zhǎng)狀況。
本文構(gòu)建了基于嵌入式Web Services的農(nóng)業(yè)物聯(lián)網(wǎng)測(cè)控系統(tǒng),實(shí)現(xiàn)了大規(guī)模的農(nóng)業(yè)測(cè)控方案。嵌入式網(wǎng)關(guān)通過(guò)web Services技術(shù)將Zigbee無(wú)線測(cè)控網(wǎng)絡(luò)與Internet鏈接起來(lái),使得的底層設(shè)備數(shù)據(jù)獲取與設(shè)備控制都有相同的表示方式和操作方法,實(shí)現(xiàn)了異構(gòu)網(wǎng)絡(luò)的互操作,測(cè)控網(wǎng)絡(luò)獲得極大的靈活性,程序設(shè)計(jì)者都將從復(fù)雜的底層數(shù)據(jù)處理中解脫出來(lái),大大降低了開(kāi)發(fā)和維護(hù)的難度。
[1] 孫玉文,沈明霞,張祥甫,等.基于嵌入式ZigBee技術(shù)的農(nóng)田信息服務(wù)系統(tǒng)設(shè)計(jì)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),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)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與應(yīng)用[J].農(nóng)業(yè)工程學(xué)報(bào),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] 顏友軍,許蕾,陳林,等.面向智能移動(dòng)平臺(tái)的Web服務(wù)推送技術(shù)研究[J].計(jì)算機(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].微計(jì)算機(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ú)線網(wǎng)絡(luò)節(jié)點(diǎn)傳感器研究[J].傳感技術(shù)學(xué)報(bào)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ā)展趨勢(shì)與農(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 稿件編號(hào):201401068
科技部基金資助項(xiàng)目(11C26213204549);江蘇省科技支撐項(xiàng)目(BE2010347)
盛 平(1957—),男,江蘇鎮(zhèn)江人,碩士,高級(jí)工程師。研究方向:嵌入式測(cè)控系統(tǒng)、視頻監(jiān)控及跟蹤。