蘇澤蔭,陳源毅,王華敏
(廈門大學(xué)嘉庚學(xué)院 信息科學(xué)與技術(shù)學(xué)院,福建 漳州 363105)
隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,互聯(lián)網(wǎng)、物聯(lián)網(wǎng)和智能終端等技術(shù)日趨成熟,已經(jīng)逐漸滲透到社會(huì)生活的各個(gè)方面。目前高校的實(shí)驗(yàn)室和機(jī)房數(shù)量多、種類多,實(shí)驗(yàn)員經(jīng)常需要巡查實(shí)驗(yàn)室和機(jī)房以確保設(shè)備的正常運(yùn)行[1]。一些重要實(shí)驗(yàn)室還需要保證實(shí)驗(yàn)室的溫度、濕度等環(huán)境條件滿足要求,工作量大,而且容易疏忽遺漏,不能及時(shí)發(fā)現(xiàn)并處理實(shí)驗(yàn)室或者機(jī)房出現(xiàn)的問題。因此,智能化的實(shí)驗(yàn)室和機(jī)房管理需求越來越大[2]。
本文設(shè)計(jì)了一種解決方案:以物聯(lián)網(wǎng)技術(shù)為核心,采用各種傳感器采集環(huán)境數(shù)據(jù),傳輸?shù)街骺叵到y(tǒng)進(jìn)行智能化處理,并把處理后的數(shù)據(jù)通過無線網(wǎng)絡(luò)傳輸?shù)轿锫?lián)網(wǎng)平臺(tái),再?gòu)奈锫?lián)網(wǎng)平臺(tái)轉(zhuǎn)發(fā)數(shù)據(jù)到Web服務(wù)器,從而實(shí)現(xiàn)在Web應(yīng)用端和手機(jī)客戶端實(shí)時(shí)地進(jìn)行可視化顯示和控制。本方案設(shè)計(jì)的系統(tǒng)具有低成本、易實(shí)施、可拓展性強(qiáng)的優(yōu)點(diǎn),可快速根據(jù)具體的應(yīng)用場(chǎng)景進(jìn)行拓展開發(fā)。
本文設(shè)計(jì)的系統(tǒng)主要由STM32主控系統(tǒng)、傳感器數(shù)據(jù)采集模塊、ESP8266網(wǎng)絡(luò)模塊[3]、阿里云物聯(lián)網(wǎng)平臺(tái)、手機(jī)APP客戶端和Web應(yīng)用六大部分組成。系統(tǒng)方案的整體架構(gòu)分為感知網(wǎng)絡(luò)層、平臺(tái)層和應(yīng)用層,如圖1所示。
圖1 系統(tǒng)整體架構(gòu)
在感知網(wǎng)絡(luò)層中,傳感器節(jié)點(diǎn)實(shí)時(shí)采集各種環(huán)境數(shù)據(jù),傳送到STM32主控系統(tǒng)進(jìn)行處理,根據(jù)處理結(jié)果智能控制開關(guān)。STM32主控系統(tǒng)通過ESP8266網(wǎng)絡(luò)模塊,采用MQTT協(xié)議將處理后的數(shù)據(jù)通過WiFi傳輸?shù)狡脚_(tái)層的阿里云物聯(lián)網(wǎng)平臺(tái)。在應(yīng)用層,在Web應(yīng)用和移動(dòng)端的APP中集成物聯(lián)網(wǎng)平臺(tái)提供的JAVA SDK,調(diào)用API獲取物聯(lián)網(wǎng)平臺(tái)的數(shù)據(jù)實(shí)時(shí)顯示,并傳遞控制信號(hào),從而實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室或者機(jī)房狀態(tài)的實(shí)時(shí)監(jiān)控[4]。
感知網(wǎng)絡(luò)層主要由STM32主控系統(tǒng)、傳感器數(shù)據(jù)采集模塊、ESP8266無線網(wǎng)絡(luò)模塊組成。STM32主控系統(tǒng)主要由STM32F103C8T6最小系統(tǒng)板和開關(guān)模塊組成。感知網(wǎng)絡(luò)層組成如圖2所示,工作流程如圖3所示。
圖2 感知網(wǎng)絡(luò)層組成
圖3 感知網(wǎng)絡(luò)層的工作流程
感知網(wǎng)絡(luò)層主要實(shí)現(xiàn)以下功能[5]:
(1)根據(jù)實(shí)際應(yīng)用場(chǎng)景、實(shí)驗(yàn)室的要求設(shè)置每個(gè)傳感器采集指標(biāo)的閾值范圍。
(2)每秒采集傳感器數(shù)據(jù)進(jìn)行處理,將模擬量轉(zhuǎn)化為具有實(shí)際意義的數(shù)字量,然后通過ESP8266網(wǎng)絡(luò)模塊連接互聯(lián)網(wǎng)并向阿里云物聯(lián)網(wǎng)平臺(tái)上報(bào)數(shù)據(jù)。
(3)判斷數(shù)據(jù)是否在設(shè)置的閾值范圍內(nèi),如果不在,就用聲音報(bào)警并控制開關(guān)模塊關(guān)閉指定的開關(guān)。
(4)接收物聯(lián)網(wǎng)平臺(tái)下發(fā)的閾值并更新閾值。
(5)接收物聯(lián)網(wǎng)平臺(tái)下發(fā)的控制命令,關(guān)閉或者開啟指定開關(guān)。
考慮到系統(tǒng)要具備成本低、功耗低的特點(diǎn),本設(shè)計(jì)方案采用STM32F103C8T6最小系統(tǒng)作為主控模塊。
傳感器模塊由多個(gè)傳感器及其電路組成。傳感器的選用要根據(jù)實(shí)際的應(yīng)用場(chǎng)景決定,本文針對(duì)一個(gè)正常的實(shí)驗(yàn)室環(huán)境進(jìn)行測(cè)試,采用DHT22溫濕度傳感器、MQ-2煙霧氣敏傳感器、火焰?zhèn)鞲衅骱凸饷綦娮鑲鞲衅鞯葮?gòu)成傳感器檢測(cè)模塊。傳感器采集的數(shù)據(jù)需要經(jīng)過STM32單片機(jī)處理和轉(zhuǎn)化才能使用[6]。圖4是傳感器模塊的構(gòu)成。
圖4 傳感器模塊結(jié)構(gòu)
開關(guān)模塊由多路繼電器構(gòu)成,通過控制繼電器的開關(guān)從而控制實(shí)驗(yàn)室的電源、空調(diào)、照明燈開關(guān)。
感知網(wǎng)絡(luò)層采集環(huán)境數(shù)據(jù)傳輸?shù)轿锫?lián)網(wǎng)平臺(tái)存儲(chǔ),物聯(lián)網(wǎng)平臺(tái)將閾值和控制數(shù)據(jù)下發(fā)到感知網(wǎng)絡(luò)層,實(shí)現(xiàn)對(duì)系統(tǒng)的控制。本方案采用MQTT協(xié)議作為感知網(wǎng)絡(luò)層和物聯(lián)網(wǎng)平臺(tái)層的網(wǎng)絡(luò)通信協(xié)議,物聯(lián)網(wǎng)平臺(tái)采用阿里云物聯(lián)網(wǎng)平臺(tái)[7]。
MQTT協(xié)議是一個(gè)基于客戶端-服務(wù)器和消息發(fā)布/訂閱模型的通信協(xié)議。Topic是消息發(fā)布者和訂閱者之間的傳輸中介。設(shè)備可通過Topic實(shí)現(xiàn)消息的發(fā)送和接收,從而實(shí)現(xiàn)服務(wù)端與設(shè)備端的通信。
根據(jù)本方案的實(shí)際場(chǎng)景需要,在物聯(lián)網(wǎng)平臺(tái)定義了物模型通信Topic,包含屬性上報(bào)、屬性設(shè)置和事件上報(bào)。通過這些物模型通信 Topic,就能實(shí)現(xiàn)設(shè)備數(shù)據(jù)上傳和服務(wù)端指令下發(fā)。
阿里云物聯(lián)網(wǎng)平臺(tái)是在阿里云上搭建了具備設(shè)備接入、設(shè)備管理、數(shù)據(jù)安全通信和消息訂閱等能力的一體化平臺(tái),支持采集海量設(shè)備數(shù)據(jù)上云并提供云端API,讓W(xué)eb應(yīng)用和移動(dòng)端APP可通過調(diào)用云端API實(shí)現(xiàn)數(shù)據(jù)的可視化顯示或者將指令下發(fā)至設(shè)備端,實(shí)現(xiàn)遠(yuǎn)程控制的功能[8],工作原理如圖5所示。
圖5 阿里云物聯(lián)網(wǎng)平臺(tái)工作原理
要使感知網(wǎng)絡(luò)層與阿里云物聯(lián)網(wǎng)平臺(tái)通信需要經(jīng)過以下五個(gè)步驟[9]:
(1)創(chuàng)建產(chǎn)品與設(shè)備:根據(jù)實(shí)際的應(yīng)用需求,創(chuàng)建產(chǎn)品和設(shè)備,獲取設(shè)備證書信息即三元組:ProductKey、DeviceName和DeviceSecret,作為設(shè)備連接物聯(lián)網(wǎng)平臺(tái)的身份認(rèn)證。
(2)為產(chǎn)品定義物模型:將感知網(wǎng)絡(luò)層設(shè)備抽象成由屬性、服務(wù)、事件所組成的數(shù)據(jù)模型后,就能在物聯(lián)網(wǎng)平臺(tái)上進(jìn)行管理和數(shù)據(jù)交互。
(3)建立設(shè)備與平臺(tái)的連接:感知網(wǎng)絡(luò)層設(shè)備根據(jù)設(shè)備證書信息通過MQTT協(xié)議連接物聯(lián)網(wǎng)平臺(tái),在物聯(lián)網(wǎng)平臺(tái)控制臺(tái)就可以看到設(shè)備狀態(tài)顯示為在線。
(4)定義物模型通信Topic:設(shè)置屬性上報(bào)、屬性設(shè)置和事件上報(bào)Topic。
(5)設(shè)備端通過接口定時(shí)發(fā)布屬性狀態(tài)的Topic,并獲取屬性設(shè)置Topic,從而實(shí)現(xiàn)設(shè)備數(shù)據(jù)的上報(bào)和操作命令的下發(fā)。
完成感知網(wǎng)絡(luò)層和阿里云物聯(lián)網(wǎng)平臺(tái)通信后,還需要進(jìn)一步實(shí)現(xiàn)阿里云物聯(lián)網(wǎng)平臺(tái)和Web服務(wù)器通信,把物聯(lián)網(wǎng)平臺(tái)數(shù)據(jù)存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)。因此需要在物聯(lián)網(wǎng)平臺(tái)上配置服務(wù)端訂閱,主要有以下三個(gè)步驟:創(chuàng)建消費(fèi)組,創(chuàng)建訂閱,服務(wù)端集成并運(yùn)行AMQP客戶端。阿里云物聯(lián)網(wǎng)平臺(tái)采用AMQP服務(wù)端訂閱實(shí)現(xiàn)將設(shè)備消息流轉(zhuǎn)到Web服務(wù)器上,然后將設(shè)備消息存儲(chǔ)到數(shù)據(jù)庫(kù)中。
應(yīng)用層主要包含Web應(yīng)用和移動(dòng)端APP[10]。Web應(yīng)用開發(fā)采用前后端分離這種目前最新的開發(fā)模式。前端采用Vue開發(fā)框架,后端采用Spring Boot和MyBatis框架。移動(dòng)端APP采用目前市場(chǎng)占有率最高的Android系統(tǒng),后續(xù)可根據(jù)需要再擴(kuò)充其他操作系統(tǒng)。
應(yīng)用層主要實(shí)現(xiàn)的功能如下:
(1)用戶管理功能:不同的用戶登錄后具有不同的權(quán)限,能查看和控制的實(shí)驗(yàn)室是不同的,重要且敏感的系統(tǒng)功能只有高級(jí)管理員用戶能使用。
(2)接入并運(yùn)行AMQP客戶端:下載阿里云物聯(lián)網(wǎng)平臺(tái)提供的JAVA SDK,參考官方文檔,完成業(yè)務(wù)代碼編寫,運(yùn)行AMQP客戶端,即可接收設(shè)備消息,將上報(bào)的數(shù)據(jù)存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)中。
(3)數(shù)據(jù)的實(shí)時(shí)顯示:在Web應(yīng)用和移動(dòng)端APP的頁(yè)面實(shí)現(xiàn)各種指標(biāo)數(shù)據(jù)的實(shí)時(shí)顯示。
(4)各個(gè)指標(biāo)數(shù)據(jù)在一段時(shí)間內(nèi)的折線圖顯示:可長(zhǎng)時(shí)間記錄歷史數(shù)據(jù),隨時(shí)可查詢。
(5)開關(guān)控制和閾值設(shè)置:提供按鈕進(jìn)行開關(guān)控制,提供文本框進(jìn)行閾值設(shè)置??刂坪驮O(shè)置命令通過物聯(lián)網(wǎng)平臺(tái)轉(zhuǎn)發(fā),下發(fā)到設(shè)備端。
各個(gè)高校的實(shí)驗(yàn)室、機(jī)房環(huán)境和設(shè)備不盡相同,而本文提出的實(shí)驗(yàn)室智能化管理的解決方案需要根據(jù)學(xué)校實(shí)驗(yàn)室的實(shí)際環(huán)境進(jìn)行配置。本文針對(duì)一個(gè)比較普通的實(shí)驗(yàn)室環(huán)境進(jìn)行測(cè)試。
測(cè)試過程:在實(shí)驗(yàn)室運(yùn)行整套硬件系統(tǒng),查看Web應(yīng)用的頁(yè)面和手機(jī)APP上是否實(shí)時(shí)顯示數(shù)據(jù),顯示的數(shù)據(jù)是否正常。
測(cè)試結(jié)果:阿里云物聯(lián)網(wǎng)平臺(tái)的物模型數(shù)據(jù)顯示如圖6所示,手機(jī)APP的測(cè)試頁(yè)面如圖7所示,Web應(yīng)用的測(cè)試頁(yè)面如圖8所示。
圖6 阿里云物聯(lián)網(wǎng)平臺(tái)的物模型數(shù)據(jù)
圖7 手機(jī)APP頁(yè)面顯示
圖8 Web應(yīng)用頁(yè)面顯示
經(jīng)過測(cè)試分析,該系統(tǒng)能實(shí)時(shí)顯示傳感器采集數(shù)據(jù),對(duì)異常數(shù)據(jù)也能報(bào)警并上報(bào),在Web應(yīng)用和手機(jī)APP都能實(shí)現(xiàn)遠(yuǎn)程控制實(shí)驗(yàn)室、空調(diào)和照明開關(guān),很好地滿足了系統(tǒng)的設(shè)計(jì)要求。
本文結(jié)合了互聯(lián)網(wǎng)、物聯(lián)網(wǎng)和智能終端等技術(shù),提出一個(gè)智能化管理實(shí)驗(yàn)室的解決方案,以解決目前高校實(shí)驗(yàn)室采用人工管理的方式帶來的工作量大且無法及時(shí)發(fā)現(xiàn)現(xiàn)場(chǎng)出現(xiàn)的狀況的問題。本方案設(shè)計(jì)的系統(tǒng)成本較低、易于實(shí)現(xiàn)、應(yīng)用場(chǎng)景廣泛,可以針對(duì)各種室內(nèi)場(chǎng)景進(jìn)行定制化開發(fā),具有一定的應(yīng)用價(jià)值,可進(jìn)一步推廣。