王文科+燕磊
摘 要
基于 B/S結(jié)構(gòu)、開(kāi)源yeelink API進(jìn)行系統(tǒng)構(gòu)建和網(wǎng)頁(yè)發(fā)布,并采用MVC模式構(gòu)建頁(yè)面。實(shí)現(xiàn)了溫室大棚的數(shù)據(jù)可視化、達(dá)到更好的人機(jī)效果和用戶體驗(yàn)的系統(tǒng)。該系統(tǒng)能夠滿足當(dāng)前對(duì)溫室大棚的環(huán)境檢測(cè)和控制的需求。解決了C/S兩層結(jié)構(gòu)存在的可擴(kuò)展性、可維護(hù)性等缺陷,為設(shè)備保障、網(wǎng)站優(yōu)化布局提供了更好的實(shí)現(xiàn)方式。
【關(guān)鍵詞】B/S yeelink 溫室大棚
隨著物聯(lián)網(wǎng)的發(fā)展,農(nóng)業(yè)物聯(lián)網(wǎng)不管是在研究領(lǐng)域還是實(shí)際的運(yùn)用都取得了很好的成果,但是也存在很多不足:
(1)農(nóng)業(yè)物聯(lián)網(wǎng)的自組織網(wǎng)絡(luò)部署和信息傳輸技術(shù)還不夠完善,需要加強(qiáng)農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)集成平臺(tái)建設(shè);
(2)由于農(nóng)業(yè)物聯(lián)網(wǎng)涉及面廣、技術(shù)多,目前針對(duì)農(nóng)業(yè)物聯(lián)網(wǎng)的通信協(xié)議還沒(méi)有統(tǒng)一,各自農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)也是采取自己設(shè)計(jì)的通信協(xié)議,將難以推廣物聯(lián)網(wǎng)在農(nóng)業(yè)的應(yīng)用。
(3)常用的搭建系統(tǒng)的客戶端 /服務(wù)器結(jié)構(gòu)( 簡(jiǎn)稱 C /S 結(jié)構(gòu)) 兩層結(jié)構(gòu)存在可擴(kuò)充性、 可維護(hù)性及安全性較差,已較難適應(yīng)信息技術(shù)與網(wǎng)絡(luò)技術(shù)發(fā)展的需要。本文從第三點(diǎn)的角度考慮來(lái)改善系統(tǒng)的設(shè)計(jì)。
B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是WEB興起后的一種系統(tǒng)構(gòu)建模式。。B/S結(jié)構(gòu)從根本上來(lái)講是將C/S的兩層模型結(jié)構(gòu)擴(kuò)展為三層,在客戶端和數(shù)據(jù)庫(kù)中間加入了一個(gè)邏輯層,將應(yīng)用程序的業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問(wèn)、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理。
通過(guò)結(jié)合瀏覽器的各種腳本語(yǔ)言和Active X技術(shù)來(lái)實(shí)現(xiàn) ,簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)、維護(hù)和使用。由于統(tǒng)一了客戶端,所以具有很好的移植性。服務(wù)器端安裝SQL Server、Oracle、MYSQL等數(shù)據(jù)庫(kù),瀏覽器通過(guò)Web Server同數(shù)據(jù)庫(kù)進(jìn)行交互。通過(guò)Ajax技術(shù)能夠?qū)崿F(xiàn)程序在客戶端電腦上進(jìn)行部分處理,減輕了服務(wù)器端的負(fù)擔(dān),并增強(qiáng)了交互性和實(shí)時(shí)性 。
1 系統(tǒng)設(shè)計(jì)
1.1 總體設(shè)計(jì)
應(yīng)用以太網(wǎng)模塊將實(shí)時(shí)收集的溫室大棚的環(huán)境信息,如溫度、濕度、光照強(qiáng)度等經(jīng)過(guò)數(shù)據(jù)處理之后發(fā)送到瀏覽器端,瀏覽器端的核心部分是yeelink平臺(tái)提供的API。管理者通過(guò)瀏覽器端的數(shù)據(jù)來(lái)根據(jù)需要進(jìn)行實(shí)時(shí)控制。瀏覽器端顯示的數(shù)據(jù)可以幫助管理者對(duì)數(shù)據(jù)進(jìn)行分析、整理、融合。系統(tǒng)主要實(shí)現(xiàn)以下幾個(gè)方面功能。
1.1.1 溫室大棚環(huán)境信息采集
實(shí)現(xiàn)溫濕度傳感器、光照度傳感器、土壤水分傳感器等傳感器的數(shù)據(jù)采集,用于全方位實(shí)時(shí)監(jiān)測(cè)農(nóng)作物的生長(zhǎng)環(huán)境。
1.1.2 溫室大棚環(huán)境控制
將傳感器采集的數(shù)據(jù)通過(guò)以太網(wǎng)模塊傳送到云平臺(tái)后,可以通過(guò)遠(yuǎn)程PC或手機(jī)終端控制實(shí)現(xiàn),也可以通過(guò)設(shè)定域值來(lái)實(shí)現(xiàn)自動(dòng)控制??刂葡到y(tǒng)可以根據(jù)農(nóng)作物的生長(zhǎng)環(huán)境變化控制溫度控制系統(tǒng)、光照度控制系統(tǒng)和灌溉系統(tǒng),用于全方位實(shí)時(shí)監(jiān)測(cè)農(nóng)作物的生長(zhǎng)環(huán)境??傮w設(shè)計(jì)如圖1所示。
1.2 硬件設(shè)計(jì)
溫室大棚的下位機(jī)采用以AVR為核心的Arduino微處理器。該處理器自身集成了大量的庫(kù)文件用來(lái)擴(kuò)展應(yīng)用,其中就有需要用到的Ethernet庫(kù),可以非??旖莸木帉懗绦?。Yeelink云平臺(tái)也提供了大量的與Arduino進(jìn)行數(shù)據(jù)交互的實(shí)例。數(shù)據(jù)采集選擇DS18B20溫度傳感器、DHT11溫濕度傳感器和BH175FVI光照度傳感器分別完成對(duì)溫度、濕度和光照度的檢測(cè);將數(shù)據(jù)處理后發(fā)送到控制器中進(jìn)行處理。硬件結(jié)構(gòu)圖如圖2所示。
2 數(shù)據(jù)通信協(xié)議格式
為了實(shí)現(xiàn)客戶端與服務(wù)器端的數(shù)據(jù)通信,以及節(jié)點(diǎn)終端和移動(dòng)終端的信息通信與設(shè)備控
制,本文按照J(rèn)SON格式設(shè)計(jì)一套完整的溫室大棚通信協(xié)議。JSON( JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript規(guī)范的一個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。 易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。基本數(shù)據(jù)式:[{"sensor01":0},{"sensor02":202},{"sensor03":1},{"sensor04":34}]。
3 軟件系統(tǒng)設(shè)計(jì)
整個(gè)軟件操作部分采用模型-視圖-控制器模式(MVC) ,可以方便的支持不同的客戶端類型和個(gè)性化設(shè)置。
基于上述MVC模式,溫室大棚的管理系統(tǒng)借助于yeelink API文檔建立起Web與傳感器之間的數(shù)據(jù)交互,在組成上又可以劃分為:客戶端-Web服務(wù)-應(yīng)用服務(wù)-數(shù)據(jù)庫(kù)服務(wù) ,其中,Web服務(wù)層還可以細(xì)分為表現(xiàn)層、業(yè)務(wù)邏輯層以及數(shù)據(jù)層,在業(yè)務(wù)邏輯層與展現(xiàn)層之間的yeelink 云平臺(tái)相當(dāng)于邏輯控制層的數(shù)據(jù)傳遞中間件,其功能為轉(zhuǎn)發(fā)用戶操作至業(yè)務(wù)邏輯層。Web服務(wù)器負(fù)責(zé)接收瀏覽器用戶的請(qǐng)求,調(diào)用相關(guān)功能模塊進(jìn)行業(yè)務(wù)處理;數(shù)據(jù)服務(wù)器負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和管理,以及響應(yīng)應(yīng)用服務(wù)器的數(shù)據(jù)請(qǐng)求,并發(fā)送相關(guān)的數(shù)據(jù)客戶端為用戶提供交互接口,發(fā)送用戶請(qǐng)求,接收Web間的交互合理分配,具備很強(qiáng)的可擴(kuò)展性和可移植性,使得整個(gè)系統(tǒng)易于維護(hù)。
4 結(jié)論
基于B/S架構(gòu)和開(kāi)源 Yeelink平臺(tái)的智能溫室大棚為用戶提供了良好的交互界面,使其可以直觀地了解和掌握溫室大棚環(huán)境的基本信息。管理者無(wú)須安裝任何客戶端軟件就可以在任何具備瀏覽器的機(jī)器上進(jìn)行業(yè)務(wù)處理,為用戶提供強(qiáng)大的遠(yuǎn)程操作功能。系統(tǒng)采用MVC分層,使系統(tǒng)具有很強(qiáng)的可維護(hù)性和擴(kuò)展性,既能夠滿足當(dāng)前的業(yè)務(wù)需求,又為今后的功能擴(kuò)展留有空間。
參考文獻(xiàn)
[1]程英蕾,殷肖川,吳豐.從C/S模式轉(zhuǎn)向B/S模式[J].空軍工程大學(xué)學(xué)報(bào):自然科學(xué)版,2000,1(02):48-51.
[2]吳學(xué)義,黃永平,郭娜.基于AJAX的B/S架構(gòu)及應(yīng)用[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)2007,25(03):314-318.
[3]李園,陳世平.MVC設(shè)計(jì)模式在ASP.NET平臺(tái)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(13):3180-3185.
[4]李敏,孟臣.溫室大棚計(jì)算機(jī)測(cè)控系統(tǒng)的研制[J].計(jì)算機(jī)與農(nóng)業(yè),2001(06):9-11.