鹽城工業(yè)職業(yè)技術(shù)學(xué)院 鄭亞平 劉寧
農(nóng)業(yè)是關(guān)系著國計民生的基礎(chǔ)產(chǎn)業(yè),傳統(tǒng)農(nóng)業(yè)存在技術(shù)水平落后,農(nóng)業(yè)生產(chǎn)率低下等問題。隨著物聯(lián)網(wǎng)和互聯(lián)網(wǎng)技術(shù)的出現(xiàn)與快速發(fā)展,農(nóng)業(yè)技術(shù)發(fā)展迎來了新的機遇與挑戰(zhàn)。
物聯(lián)網(wǎng)技術(shù)在農(nóng)業(yè)大棚中的利用,需要在農(nóng)業(yè)大棚中接入傳感器,這些傳感器能夠監(jiān)測了農(nóng)業(yè)大棚中內(nèi)部影響農(nóng)作物生長的參數(shù),通過改善農(nóng)業(yè)大棚內(nèi)的環(huán)境,能大大提高農(nóng)業(yè)生產(chǎn)效益。目前市面上的基于物聯(lián)網(wǎng)的管理平臺大多成本高昂、操作麻煩、難于部署并且拘泥于現(xiàn)場不能做到遠(yuǎn)程監(jiān)控、實時監(jiān)控,致使農(nóng)業(yè)信息化進程發(fā)展緩慢。因此,需要建立一個平臺能夠自動地通過無線傳感器技術(shù)接受記錄傳感器監(jiān)測的環(huán)境參數(shù),進而保證通過物聯(lián)網(wǎng)技術(shù)能夠準(zhǔn)確地獲取農(nóng)作物的產(chǎn)量信息和周圍的環(huán)境信息,可以實現(xiàn)農(nóng)業(yè)信息化管理,推進中國現(xiàn)代化農(nóng)業(yè)的發(fā)展進程。
本系統(tǒng)開發(fā)的工具主要包括Sublime,InfluxDB 時序數(shù)據(jù)庫,SQL Server 2008 R2 關(guān)系數(shù)據(jù)庫,F(xiàn)iddler、Firefox 瀏覽器。
本系統(tǒng)開發(fā)的技術(shù)主要包括:REST 技術(shù),Bootstrap 技術(shù),Golang 技術(shù)。
REST 是一種簡單的、可擴展的、針對Web 開發(fā)而設(shè)計的架構(gòu)風(fēng)格,是一種對網(wǎng)絡(luò)系統(tǒng)架構(gòu)的約束準(zhǔn)則,符合這個準(zhǔn)則的就是RESTful 框架。REST 架構(gòu)風(fēng)格把網(wǎng)絡(luò)上分布的各種數(shù)據(jù)看作資源,分布在各處的資源由URI 來標(biāo)識,而客戶端應(yīng)用通過URI 來獲取資源的表現(xiàn)形式,同一個資源可以有多個表現(xiàn)形式,具體的表現(xiàn)形式通過在URI 請求中加入限定參數(shù)來描述。
Bootstrap 技術(shù)是HTML 和CSS 的集合,可以通過現(xiàn)成的ui 組件能夠迅速搭建前端頁面。并且Bootstrap技術(shù)提供了響應(yīng)式Web 設(shè)計,這種技術(shù)可以使得網(wǎng)頁頁面布局會自動根據(jù)屏幕的大小而進行相應(yīng)的響應(yīng)和調(diào)整。這種設(shè)計使得無須在為每一個終端設(shè)備做特定的版本,大大減少了開發(fā)者的開發(fā)工作。
Golang 是一種全新的編程語言,有如下幾大優(yōu)勢:一是go 的開發(fā)效率高;二是運行速度快,尤其在并發(fā)問題上,性能尤為突出。三是部署簡單,目標(biāo)機器上只需要一個基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫的依賴關(guān)系,大大減輕了維護的負(fù)擔(dān)。
本系統(tǒng)是要研發(fā)一套適用于物聯(lián)網(wǎng)行業(yè)應(yīng)用及行業(yè)終端的統(tǒng)一開放式管理平臺,實現(xiàn)農(nóng)業(yè)大棚環(huán)境參數(shù)實時監(jiān)測、展示以及移動端遠(yuǎn)程控制的功能。本系統(tǒng)采用B/S 的模式。選擇B/S 架構(gòu),也隨之帶來一個問題。當(dāng)前瀏覽器和屏幕尺寸碎片化嚴(yán)重,不同的瀏覽器支持W3C 標(biāo)準(zhǔn)的程度也不徑相同,而且瀏覽器的版本新舊不同,支持的特性也不一樣。更重要的是,屏幕尺寸的不同,顯示效果也不一樣。因此采用CSS3 技術(shù)以適應(yīng)各類瀏覽器和屏幕尺寸。前端框架選擇開源的Bootstrap,在此基礎(chǔ)上開發(fā)自己的樣式和做響應(yīng)式Web設(shè)計,以適配PC 端和移動端各類瀏覽器和屏幕尺寸。
為支持對下位機實時傳送的傳感器數(shù)據(jù)監(jiān)聽和對設(shè)備的自動控制,需要服務(wù)端在并發(fā)問題上提供高效的處理能力,因此在Server 端采用Golang 開發(fā)。Go 在語言級別上支持了并發(fā),通過簡單的關(guān)鍵go 就可以充分利用多核,這對于硬件不斷發(fā)展的時代,如此簡單就可以充分利用硬件的多核,解決高并發(fā)的問題,其特性可想而知。
經(jīng)過需求分析,并結(jié)合主流就技術(shù)設(shè)計的系統(tǒng)架構(gòu)如圖1 所示。
圖1 系統(tǒng)架構(gòu)圖
通過對農(nóng)業(yè)大棚管理系統(tǒng)的需求分析可得,本系統(tǒng)需要采用了兩種數(shù)據(jù)庫,一種是InfluxDB 時序數(shù)據(jù)庫,存儲實時采集的傳感器數(shù)據(jù);另一種是SQL Server 2008 R2 關(guān)系數(shù)據(jù)庫,存儲基礎(chǔ)的關(guān)系數(shù)據(jù)。
4.3.1 訪問安全驗證
本系統(tǒng)采用后臺和前臺完全分離的思想。服務(wù)端通過go-restful 包提供的API 來指定服務(wù)端資源的URL,客戶端通過此URL 進行HTTP 請求,就可以獲取服務(wù)端的資源,但是,這會使得服務(wù)端提供的API 服務(wù)完全暴露,因此服務(wù)端必須提供有效的安全措施,例如只有有權(quán)限的用戶才能訪問指定的數(shù)據(jù)資源。
go-restful 支持對每一層對象添加對應(yīng)的fliter,用于對方法進行一層封裝,用于進行pre function 操作,使用起來也很簡單。
4.3.2 視頻顯示的設(shè)計
先在本機上安裝視頻插件,用戶通過獲取到的用戶名、密碼、NVR 設(shè)備的IP 地址和端口號,登錄NVR(網(wǎng)絡(luò)硬盤錄像機)設(shè)備,然后通過調(diào)用視頻插件提供的API,可對攝像頭視頻進行實時查看、分屏、全屏、退出等功能。
4.3.3 上位機和下位機通訊的設(shè)計
本系統(tǒng)上位機和下位機通訊主要涉及兩個方面。一個是傳感器采集,數(shù)據(jù)采集節(jié)點通過WiFi 將UDP數(shù)據(jù)包傳輸?shù)铰酚善魃?,再由路由器傳輸?shù)絎eb 服務(wù)器。另一個是設(shè)備控制,先由Web 服務(wù)器通過網(wǎng)絡(luò)發(fā)送TCP 包到路由器上,再由路由器通過WiFi 向設(shè)備控制節(jié)點傳輸控制數(shù)據(jù)包。本系統(tǒng)采用的是計算機網(wǎng)路下的socket 方式通訊方式,通過Socket 通信的好處是無須和協(xié)調(diào)器物理連接,運行本平臺的計算機可以在任何有網(wǎng)的地方,與分布在多地的多個協(xié)調(diào)器進行通信,實現(xiàn)多地遠(yuǎn)程監(jiān)控。圖2 是上位機與下位機的通訊模式。
圖2 通訊模式
系統(tǒng)主頁主要包括系統(tǒng)的兩個子系統(tǒng):實時監(jiān)控子系統(tǒng)和后臺管理子系統(tǒng)。
(1)實時監(jiān)控子系統(tǒng)如圖3 所示,包含基于百度地圖顯示、傳感器數(shù)據(jù)實時顯示、視頻監(jiān)控三個功能。
圖3 實時監(jiān)控子系統(tǒng)
(2)后臺管理子系統(tǒng)如圖4 所示,包括:實時監(jiān)控管理和用戶管理。
圖4 后臺管理子系統(tǒng)
本系統(tǒng)對農(nóng)業(yè)推行現(xiàn)代化建設(shè)進行了探究,是基于物聯(lián)網(wǎng)的農(nóng)業(yè)管理系統(tǒng),希望通過視頻對農(nóng)作物的實時監(jiān)控,快速便捷實時地了解大棚內(nèi)農(nóng)作物生長狀況,通過環(huán)境數(shù)據(jù)監(jiān)測和視頻監(jiān)測大棚內(nèi)各種設(shè)備的關(guān)閉情況,分析出影響產(chǎn)品生長的因素,再通過自動或是手動控制設(shè)備,改善大棚環(huán)境參數(shù),提高產(chǎn)品生產(chǎn)效率。本課題的實現(xiàn)有助于農(nóng)業(yè)大棚信息的管理實現(xiàn)規(guī)范化、科學(xué)化和信息化,給工作人員帶來極大的方便。