萬梓然,劉 斌,趙 巖,鄭 鵬,陳 雨,賈伯權(quán),張寶峰
(1.天津理工大學(xué) 電氣工程與自動化學(xué)院,天津 300384;2.天津市復(fù)雜系統(tǒng)控制理論及應(yīng)用重點實驗室,天津 300384)
我國是人口大國和農(nóng)業(yè)大國,農(nóng)業(yè)生產(chǎn)是關(guān)系國計民生的大事,占有至關(guān)重要的戰(zhàn)略地位。農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)[1]作為支撐智慧農(nóng)業(yè)發(fā)展的一種重要手段,可以大力推進(jìn)農(nóng)業(yè)信息化和現(xiàn)代化,使農(nóng)田利用率和產(chǎn)能大幅提升,在我國糧食安全保障、農(nóng)產(chǎn)品供應(yīng)保障和國民經(jīng)濟(jì)發(fā)展方面具有重要意義[2]。
農(nóng)作物生長環(huán)境監(jiān)測系統(tǒng)[3],基于物聯(lián)網(wǎng)技術(shù),利用各種傳感設(shè)備和通信設(shè)備,廣泛采集作物的生長環(huán)境信息,并通過無線或有線網(wǎng)絡(luò)傳輸?shù)綌?shù)據(jù)管理中心,再對采集的信息進(jìn)行存儲、展示及分析,并形成智能決策[4],最后通過智能控制設(shè)備實現(xiàn)農(nóng)業(yè)生產(chǎn)全過程的監(jiān)測和管控,進(jìn)一步達(dá)到集約化、高效、優(yōu)質(zhì)的農(nóng)業(yè)生產(chǎn)標(biāo)準(zhǔn)[5]。朱均超等人[6]實現(xiàn)了基于物聯(lián)網(wǎng)的農(nóng)業(yè)大棚環(huán)境監(jiān)測系統(tǒng),并針對傳感器網(wǎng)絡(luò)做了優(yōu)化處理,實現(xiàn)農(nóng)業(yè)大棚環(huán)境信息采集與遠(yuǎn)程監(jiān)測,滿足了農(nóng)業(yè)大棚現(xiàn)代化管理的需求。馬怡蕾[7]基于開源的物聯(lián)網(wǎng)平臺,設(shè)計了一套農(nóng)業(yè)物聯(lián)網(wǎng)用戶端軟件,可實現(xiàn)遠(yuǎn)程采集、控制以及數(shù)據(jù)可視化等功能,還提供了實時報警的功能,能夠基本滿足農(nóng)業(yè)生產(chǎn)的需求,但智能化程度不夠。李靈[8]基于農(nóng)業(yè)溫室大棚環(huán)境,設(shè)計了多傳感綜合處理的農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng),實現(xiàn)了農(nóng)業(yè)環(huán)境的實時監(jiān)控和調(diào)整,但采集的農(nóng)作物生長信息種類較少。劉萬元等人[9]設(shè)計了一種基于OneNET物聯(lián)網(wǎng)開放平臺的智慧農(nóng)業(yè)監(jiān)測系統(tǒng),能夠?qū)崿F(xiàn)農(nóng)業(yè)溫室內(nèi)環(huán)境數(shù)據(jù)的實時監(jiān)測。
本文通過物聯(lián)網(wǎng)技術(shù)與網(wǎng)絡(luò)技術(shù)的結(jié)合設(shè)計農(nóng)作物生長遠(yuǎn)程監(jiān)控平臺,實現(xiàn)對農(nóng)作物環(huán)境參數(shù)、圖像數(shù)據(jù)的實時遠(yuǎn)程監(jiān)測和管理,并可遠(yuǎn)程控制農(nóng)機(jī)設(shè)備,有效降低人力消耗,有利于精準(zhǔn)地進(jìn)行農(nóng)業(yè)種植。
為實現(xiàn)農(nóng)業(yè)大棚中作物信息參數(shù)的監(jiān)測以及設(shè)備管控,本文設(shè)計了農(nóng)作物生長遠(yuǎn)程監(jiān)控平臺,其整體結(jié)構(gòu)主要包括三層:感知層、網(wǎng)絡(luò)層、應(yīng)用層。架構(gòu)體系如圖1所示。在農(nóng)業(yè)大棚中布置采集設(shè)備和控制設(shè)備,實時查看作物生長圖像,采集環(huán)境溫濕度、土壤溫濕度、土壤pH 值以及光照度等生長參數(shù),農(nóng)業(yè)人員可以根據(jù)當(dāng)前環(huán)境參數(shù)和圖像參數(shù),及時控制風(fēng)機(jī)、水泵設(shè)備的開關(guān)以及信息管理。
圖1 農(nóng)作物生長遠(yuǎn)程監(jiān)控平臺整體結(jié)構(gòu)
感知層由采集終端和控制終端組成,包含了傳感器設(shè)備、監(jiān)控攝像頭和控制設(shè)備。在感知層與網(wǎng)絡(luò)層之間,選擇UDP、螢石云、TCP 三種獨立并存的監(jiān)測通信方式,使用UDP 方式高效地傳輸監(jiān)測數(shù)據(jù),調(diào)用螢石云平臺接口獲取視頻流信息,使用TCP 方式穩(wěn)定地傳輸控制信息。通過網(wǎng)絡(luò)層的數(shù)據(jù)處理中心,能將采集傳輸?shù)男畔⒔馕龃鎯χ翑?shù)據(jù)庫中。圍繞目標(biāo)需求,在應(yīng)用層對數(shù)據(jù)進(jìn)行處理分析,形成了數(shù)據(jù)中心、控制中心、設(shè)備中心、視頻中心、設(shè)置中心四個主要功能模塊。在PC 端或APP 端,借助可視化操作界面,管理人員和用戶可以實時觀察作物生長情況并遠(yuǎn)程監(jiān)測環(huán)境溫濕度、土壤溫濕度、土壤pH 值等各類環(huán)境數(shù)據(jù),有效進(jìn)行設(shè)備信息的管理控制,并通過設(shè)置來管理系統(tǒng)使用人員的信息。
感知層主要包含采集終端、控制終端兩部分。采集終端利用傳感器設(shè)備和監(jiān)控設(shè)備,分別收集環(huán)境信息和圖像信息??刂平K端包括了風(fēng)機(jī)、水泵等被控設(shè)備。
(1)環(huán)境信息采集模塊主要由環(huán)境溫濕度、土壤溫濕度、土壤pH 值以及光照度等傳感器組成,見表1所列。傳感器主要用來采集大棚的環(huán)境信息,經(jīng)I2C/RS 485 方式接入,最終通過UDP 協(xié)議高效地與網(wǎng)絡(luò)層進(jìn)行連接通信和數(shù)據(jù)傳輸。
表1 傳感器信息
(2)圖像信息采集模塊選擇???00 萬臻全彩網(wǎng)絡(luò)攝像頭DS-2CD3T47EWDV3-L,支持背光補(bǔ)償、強(qiáng)光抑制、3D數(shù)字降噪,其120 dB 寬動態(tài)能適應(yīng)不同監(jiān)控環(huán)境。監(jiān)控攝像頭由互聯(lián)網(wǎng)接入螢石云開放平臺,螢石云平臺通過開放視頻采集、傳輸、存儲、預(yù)覽、回放、智能分析等功能,可幫助視頻行業(yè)開發(fā)者快速進(jìn)行垂直化技術(shù)應(yīng)用。在網(wǎng)絡(luò)層通過調(diào)用該平臺提供的應(yīng)用程序接口(Application Programming Interface,API)獲取實時視頻流,從而在應(yīng)用層實現(xiàn)視頻實時查看。
(3)感知層的控制模塊能夠根據(jù)采集的環(huán)境數(shù)據(jù),實現(xiàn)農(nóng)業(yè)大棚的風(fēng)機(jī)、水泵等終端設(shè)備控制操作??刂平K端經(jīng)RS 485 方式接入,通過TCP 協(xié)議可靠地與網(wǎng)絡(luò)層進(jìn)行通信,實現(xiàn)運行狀態(tài)、地址等設(shè)備信息的上報,同時在應(yīng)用層用戶能對控制終端進(jìn)行開關(guān)等控制管理。
為了保證網(wǎng)絡(luò)層可以準(zhǔn)確地與感知層的終端設(shè)備進(jìn)行數(shù)據(jù)解析交互,設(shè)計一個結(jié)構(gòu)完整、涵義明確的通信協(xié)議十分必要。本文以環(huán)境信息采集模塊的UDP 協(xié)議為例,對通信協(xié)議設(shè)計進(jìn)行說明,見表2所列。
表2 數(shù)據(jù)解析交互通信協(xié)議
(1)在上傳數(shù)據(jù)時,數(shù)據(jù)包中包括幀頭、協(xié)議版本號、設(shè)備類型、設(shè)備號、環(huán)境參數(shù)數(shù)據(jù)、CRC 校驗以及幀尾。
(2)為了記錄協(xié)議的升級和改動,在數(shù)據(jù)包加入了協(xié)議版本號。
(3)考慮到后期會有更多采集傳感器應(yīng)用于溫室大棚中,為了確定傳感器的具體位置,在數(shù)據(jù)包中需加入設(shè)備號,提高系統(tǒng)控制精度。
(4)為保障數(shù)據(jù)的安全性,數(shù)據(jù)包需加入幀頭和幀尾的校驗,用以判斷數(shù)據(jù)的完整性、正確性。
本文結(jié)合技術(shù)框架Vue+SpringBoot,在網(wǎng)絡(luò)層設(shè)計了基于MVVM 模式的前后端分離系統(tǒng),如圖2所示。后臺服務(wù)負(fù)責(zé)處理數(shù)據(jù)庫、交互服務(wù)器、數(shù)據(jù)服務(wù)器以及溫室大棚設(shè)備之間的業(yè)務(wù)邏輯,并向前端提供數(shù)據(jù)信息。前端負(fù)責(zé)解析數(shù)據(jù)和頁面渲染,提供并展示應(yīng)用層需要的主要功能,如數(shù)據(jù)中心、控制中心、設(shè)備中心、視頻中心以及設(shè)置中心。
圖2 平臺網(wǎng)絡(luò)層設(shè)計模式
感知層與網(wǎng)絡(luò)層之間,涉及到控制設(shè)備、采集設(shè)備、監(jiān)控設(shè)備三部分的連接通信。對于監(jiān)控設(shè)備,通過把HIKVISION 視頻監(jiān)控集成化解決方案[10]嵌入到前后端分離系統(tǒng)中實現(xiàn)監(jiān)控功能。另外,為了兼收控制設(shè)備的信息與采集設(shè)備的數(shù)據(jù),提出TCP 與UDP 并行通信運行模式。將交互業(yè)務(wù)與數(shù)據(jù)接收業(yè)務(wù)分給兩種服務(wù)器處理,如果一方服務(wù)器出問題,不影響另一方正常運行。因此,降低了系統(tǒng)耦合性并提升了系統(tǒng)運行效率。在二者同步進(jìn)行過程中,交互服務(wù)器通過TCP 方式與水泵等受控設(shè)備建立通信,使設(shè)備信息以及控制指令得到可靠穩(wěn)定的傳輸。除此之外,該服務(wù)器可以與前端進(jìn)行交互且能夠直接訪問數(shù)據(jù)庫。數(shù)據(jù)服務(wù)器只負(fù)責(zé)接收數(shù)據(jù)寫入數(shù)據(jù)庫,不與前端產(chǎn)生交互關(guān)系,借助UDP通信方式實時接收采集設(shè)備的數(shù)據(jù)。針對不同種類設(shè)備提出的雙協(xié)議通信模式,使感知層數(shù)據(jù)得到穩(wěn)定高效的傳輸,同時降低了系統(tǒng)耦合度,使系統(tǒng)易于維護(hù)擴(kuò)展。
在前后端分離系統(tǒng)[11]的開發(fā)設(shè)計中,采用了基于Vue+SpringBoot 的主流技術(shù)架構(gòu),具體技術(shù)如圖3所示。前端主要采用Vue 技術(shù),使用Element UI 進(jìn)行用戶界面交互,通過Axios 與后端通信;后端建立了SpringBoot 框架[12],除了與前端的交互機(jī)制外,還包括了業(yè)務(wù)邏輯處理和數(shù)據(jù)操作。為了與感知層的受控設(shè)備、采集設(shè)備建立通信,使用了以NIOServer 為基礎(chǔ)封裝的Netty 框架設(shè)計TCP、UDP 服務(wù)器,負(fù)責(zé)偵聽來自客戶端(受控設(shè)備、采集設(shè)備)的連接請求以及建立連接后的數(shù)據(jù)收發(fā)。將設(shè)備傳輸?shù)臄?shù)據(jù)保存在MySQL 數(shù)據(jù)庫中,并通過Mybatis 對其進(jìn)行訪問,完成數(shù)據(jù)的持久化處理;之后,利用SpringUtil 類來為Netty 獲取ClientService(Spring bean對象),使其可以與服務(wù)層Service進(jìn)行交互;在Service 層,ClientService 類通過與Netty 交互來管理和維護(hù)與服務(wù)器建立連接的客戶端(設(shè)備)的列表,同時可以向Controller 層提供服務(wù)來滿足前端需要。對于監(jiān)控設(shè)備,通過螢石云開放平臺獲取視頻地址和密鑰,存儲在系統(tǒng)后端,以Axios 方式把數(shù)據(jù)傳遞給前端,通過引入Ezuikit.js 腳本,最終實現(xiàn)視頻播放功能。
圖3 平臺網(wǎng)絡(luò)層技術(shù)架構(gòu)
農(nóng)作物生長遠(yuǎn)程監(jiān)控平臺的數(shù)據(jù)庫采用的是 MySQL 數(shù)據(jù)庫存儲[13]。監(jiān)控平臺的數(shù)據(jù)庫表結(jié)構(gòu)主要由環(huán)境參數(shù)數(shù)據(jù)表、控制設(shè)備表、監(jiān)控設(shè)備數(shù)據(jù)表和用戶數(shù)據(jù)表組成。
3.2.1 環(huán)境參數(shù)數(shù)據(jù)表
環(huán)境參數(shù)數(shù)據(jù)表用于存儲農(nóng)作物的環(huán)境數(shù)據(jù)信息,對每種類型的傳感器設(shè)備所采集的數(shù)據(jù)進(jìn)行存儲,主要包括環(huán)境溫濕度、土壤溫濕度、土壤pH 值以及光照度等,見表3所列。
表3 環(huán)境參數(shù)數(shù)據(jù)表
3.2.2 控制設(shè)備數(shù)據(jù)表
控制設(shè)備信息表主要存儲各類控制設(shè)備的信息,便于用戶增添、修改設(shè)備信息,實時查看設(shè)備狀態(tài)并對設(shè)備端進(jìn)行操控,見表4所列。
表4 控制設(shè)備數(shù)據(jù)表
3.2.3 監(jiān)控設(shè)備數(shù)據(jù)表
監(jiān)控設(shè)備數(shù)據(jù)表主要存儲視頻監(jiān)控設(shè)備的信息,方便用戶管理監(jiān)控設(shè)備并實時查看視頻數(shù)據(jù),見表5所列。
表5 監(jiān)控設(shè)備數(shù)據(jù)表
3.2.4 用戶信息數(shù)據(jù)表
用戶信息數(shù)據(jù)表主要用來保存?zhèn)€人登錄賬號的各類信息,包括用戶名、密碼以及其他個人信息,便于平臺進(jìn)行管理,見表6所列。
表6 用戶信息數(shù)據(jù)表
根據(jù)平臺技術(shù)架構(gòu)特點以及溫室大棚監(jiān)控管理需求,將平臺主要功能模塊劃分為5 部分,如圖4所示,分別是數(shù)據(jù)中心、控制中心、設(shè)備中心、視頻中心以及設(shè)置中心。
圖4 平臺主要功能模塊
基于感知層采集傳輸?shù)沫h(huán)境參數(shù),通過數(shù)據(jù)中心模塊實現(xiàn)了溫室大棚內(nèi)農(nóng)作物生長信息的監(jiān)測。管理人員或者用戶可以通過遠(yuǎn)程Web 形式監(jiān)測溫室大棚的各項指標(biāo),主要包括空氣溫濕度、光照度、土壤溫濕度、土壤pH 等參數(shù)的實時或歷史數(shù)據(jù)及其折線圖。如圖5所示,輸入數(shù)據(jù)類型、設(shè)備號和時間范圍后,點擊查詢即可在列表中列出相應(yīng)的歷史數(shù)據(jù),并在下方呈現(xiàn)出這些數(shù)據(jù)的折線圖。實時數(shù)據(jù)查詢可按數(shù)據(jù)類型、設(shè)備號兩個參數(shù)來進(jìn)行搜索,對用戶展示查詢到的實時數(shù)據(jù)及折線圖。如果所查詢設(shè)備沒有當(dāng)前時間的實時數(shù)據(jù),則列表中顯示的是該設(shè)備在數(shù)據(jù)庫中時間最新的數(shù)據(jù)。
圖5 數(shù)據(jù)中心功能模塊
通過觀察環(huán)境信息數(shù)據(jù),判斷出應(yīng)該調(diào)整哪些設(shè)備,可以在控制中心模塊的設(shè)備控制頁面對相應(yīng)的設(shè)備進(jìn)行調(diào)整,從而改變這些指標(biāo)數(shù)據(jù),讓大棚內(nèi)的農(nóng)作物在更適宜的環(huán)境下生長。在控制中心模塊中,可以查看這些設(shè)備的實時狀態(tài)和對其進(jìn)行控制操作,本界面只會顯示在設(shè)備中心模塊的設(shè)備管理界面中注冊過的設(shè)備,具體如圖6所示。輸入設(shè)備號、設(shè)備類型和區(qū)域可查詢設(shè)備中心已注冊設(shè)備的實時狀態(tài),也可對已連接設(shè)備發(fā)送開關(guān)指令。其中設(shè)備狀態(tài)有:“運行”“關(guān)閉”“未連接”“狀態(tài)過期”共四種,可在右上角切換“手動刷新列表”和“自動刷新列表”。手動刷新需要點擊“搜索”按鈕;自動刷新每5 s 自動向服務(wù)器獲取一次設(shè)備狀態(tài)。如果設(shè)備已連接,則可通過表格最后的按鈕向設(shè)備發(fā)送開啟或關(guān)閉兩種指令。若設(shè)備未連接,則開啟和關(guān)閉兩個按鈕為禁用狀態(tài)。
圖6 控制中心功能模塊
在設(shè)備管理界面可以對設(shè)備進(jìn)行增刪改查的操作。這里注冊的設(shè)備即為控制中心模塊中設(shè)備控制界面中呈現(xiàn)的設(shè)備,且設(shè)備控制界面只會顯示本界面注冊過的設(shè)備及其狀態(tài)??赏ㄟ^設(shè)備號、設(shè)備類型、區(qū)域三個參數(shù)來進(jìn)行設(shè)備查詢,并可對查詢到的設(shè)備列表進(jìn)行分頁,讓用戶管理登記到系統(tǒng)的設(shè)備,如圖7所示。
圖7 設(shè)備中心功能模塊
在視頻中心模塊的監(jiān)控設(shè)備管理頁面,可以添加或修改監(jiān)控設(shè)備,設(shè)備信息包括監(jiān)控位置、螢石云調(diào)用驗證碼、視頻地址及備注信息,如圖8所示。如圖9所示,完成監(jiān)控設(shè)備信息的注冊后,可以實時查看當(dāng)前監(jiān)控位置的農(nóng)作物生長情況,以便及時調(diào)整作物生長的環(huán)境參數(shù)。
圖8 監(jiān)控設(shè)備管理模塊
圖9 監(jiān)測查看模塊
設(shè)置模塊中包含個人信息功能和用戶管理功能兩部分。在個人信息頁面用戶可修改自己賬戶的個人信息和密碼。用戶管理界面只對管理員賬戶可見,管理員可對系統(tǒng)中所有賬戶進(jìn)行增刪改查,包括對其他用戶信息進(jìn)行修改,并且可以停用賬戶,但默認(rèn)管理員(ID 為1)的關(guān)鍵參數(shù)不可修改,也不可刪除。圖10展示了設(shè)置模塊的用戶管理界面應(yīng)用,普通用戶可以管理自己的個人信息,而管理員可以管理所有用戶的信息。
圖10 設(shè)置功能模塊
農(nóng)業(yè)大棚的生產(chǎn)和管理方式正在發(fā)生轉(zhuǎn)變,基于信息技術(shù)發(fā)展現(xiàn)代農(nóng)業(yè)已經(jīng)成為趨勢。本文設(shè)計的農(nóng)作物生長監(jiān)控平臺,既可以幫助用戶以視頻方式查看作物的圖像參數(shù),也可以幫助用戶監(jiān)測溫室大棚的各項環(huán)境數(shù)據(jù),如環(huán)境溫濕度、土壤溫濕度、光照強(qiáng)度、pH 值等參數(shù)的實時或歷史數(shù)據(jù)及其折線圖。通過觀察這些數(shù)據(jù)變化,做出設(shè)備調(diào)整應(yīng)對策略,對相應(yīng)的設(shè)備進(jìn)行管理控制從而改變這些環(huán)境指標(biāo),為大棚內(nèi)的農(nóng)作物提供更適宜的生長環(huán)境,提高農(nóng)業(yè)大棚現(xiàn)代化生產(chǎn)管理水平。本文依據(jù)物聯(lián)網(wǎng)架構(gòu)構(gòu)建了系統(tǒng)體系;基于MVVM 模式的Vue+SpringBoot 技術(shù)框架,開發(fā)了前后端分離系統(tǒng),并實現(xiàn)了TCP 與UDP 的雙層服務(wù)器運行模式。搭建的B/S 系統(tǒng)具有響應(yīng)速度快、擴(kuò)展性強(qiáng)、易于升級維護(hù)、界面美觀的優(yōu)點。
注:本文通訊作者為劉斌。