麻小娟,黨海燕,荀艷麗
(西安明德理工學(xué)院,陜西 西安 710124)
實驗室是科研實驗的平臺,其環(huán)境對于實驗設(shè)備的壽命有著十分重要的影響,對于科研人員的生命安全也至關(guān)重要。為了進(jìn)一步提高實驗室的安全性,提升實驗室安全管理的智能化,從而更科學(xué)地對實驗室環(huán)境進(jìn)行監(jiān)測,保證實驗室的安全性,本文開發(fā)了實驗室環(huán)境監(jiān)測平臺。隨著科技的不斷發(fā)展,物聯(lián)網(wǎng)技術(shù)不斷普及,成為全面應(yīng)用在當(dāng)前人與物以及物與物溝通聯(lián)系領(lǐng)域的新型技術(shù)體系[1-3],給人們生活和生產(chǎn)帶來了很大的改變。本系統(tǒng)通過無線網(wǎng)絡(luò)結(jié)合物聯(lián)網(wǎng)技術(shù)對多個實驗室環(huán)境數(shù)據(jù)進(jìn)行采集,為實驗室環(huán)境監(jiān)測平臺提供可靠的數(shù)據(jù)[4]。
實驗室環(huán)境監(jiān)測系統(tǒng)分為上位機和下位機兩部分[5]。下位機是硬件部分,主要完成實驗室環(huán)境數(shù)據(jù)的采集以及發(fā)送。上位機主要是軟件部分,即實驗室環(huán)境監(jiān)測平臺,實現(xiàn)實驗室環(huán)境數(shù)據(jù)的存儲、分析和處理以及可視化顯示。系統(tǒng)框架如圖1所示。

圖1 系統(tǒng)架構(gòu)
系統(tǒng)下位機主要包含四部分:傳感器、MCU、報警模塊以及無線模塊。其中,傳感器用于采集實驗室環(huán)境數(shù)據(jù)[6],本系統(tǒng)溫濕度模塊選用DHT11傳感器,煙霧采集模塊采用MQ-2煙霧濃度傳感器,PM2.5采集模塊采用SDS011傳感器;MCU負(fù)責(zé)對傳感器采集到的數(shù)據(jù)進(jìn)行解析,本系統(tǒng)采用STC89C52單片機;報警模塊采用蜂鳴器和發(fā)光二極管分別實現(xiàn)聲音和光線報警,從而提醒實驗室管理人員實驗室的異常情況;無線模塊主要負(fù)責(zé)將數(shù)據(jù)傳遞給服務(wù)器。下位機的系統(tǒng)原理如圖2所示。

圖2 下位機系統(tǒng)原理
本系統(tǒng)主要是對實驗室環(huán)境進(jìn)行監(jiān)測。根據(jù)實驗室的實際需求得出本系統(tǒng)主要監(jiān)測的環(huán)境指標(biāo)有溫度、濕度、PM2.5、煙霧。設(shè)置數(shù)據(jù)庫名為environment數(shù)據(jù)庫,設(shè)置表名為monitor表,該表主要用于存儲實驗室的各項環(huán)境指標(biāo)的值,其屬性和約束見表1所列。

表1 monitor表的屬性和約束
本系統(tǒng)選取以高效、簡潔、高可靠性著稱的免費開源MySQL數(shù)據(jù)庫進(jìn)行開發(fā)設(shè)計。MySQL數(shù)據(jù)庫支持標(biāo)準(zhǔn)化SQL查詢語言,能夠?qū)崿F(xiàn)高速存儲數(shù)據(jù);同時支持線程池,能夠在充分利用硬件資源的情況下,應(yīng)對大量的并發(fā)請求[7-8]。根據(jù)設(shè)計的表關(guān)系,采用標(biāo)準(zhǔn)SQL語言在關(guān)系型數(shù)據(jù)庫管理系統(tǒng)MySQL中創(chuàng)建數(shù)據(jù)庫表monitor表。
實驗室環(huán)境監(jiān)測平臺主要是管理人員能夠直觀查看每個實驗室的環(huán)境數(shù)據(jù)是否正常,并根據(jù)需要能夠查看每個實驗室的具體情況以及各種環(huán)境數(shù)據(jù)的變化趨勢,從而推斷實驗室的情況,做出預(yù)防措施。平臺采用前后端分離的形式實現(xiàn),數(shù)據(jù)庫采用MySQL5.7,后端采用MVC模式以及SpringBoot框架和MyBatis持久層框架[9-10],前端采用Vue框架、Element組件和ECharts數(shù)據(jù)可視化組件。
前端通過created()函數(shù)加載頁面時,通過請求alllabortory路徑請求后端,后端通過調(diào)用tb_laboratoryService接口的 findAllaboratorys()方法找出所有的實驗室,再調(diào)用tb_laboratoryService接口的 findAllaboratory()方法查找出每個實驗室對應(yīng)的環(huán)境數(shù)據(jù)。前端采用按鈕展示所有實驗室,為了能夠更加清楚顯示實驗室的狀態(tài),遍歷獲取的結(jié)果集,對遍歷出來的對象分別判斷溫度、濕度、PM2.5以及煙霧是否正常,若有一個數(shù)據(jù)不正常,則將按鈕設(shè)置為橘黃色,否則將按鈕設(shè)置為綠色。為了實驗室管理員能夠更加清楚地查看實驗室的具體情況,給按鈕設(shè)置點擊事件,通過this.$router.push({'path':'/Lin',query:index})進(jìn)行頁面跳轉(zhuǎn),顯示當(dāng)前實驗室環(huán)境的具體情況。
為了能夠清楚展示實驗室環(huán)境數(shù)據(jù)的變化趨勢,系統(tǒng)采用可視化形式進(jìn)行數(shù)據(jù)的顯示。在頁面中首先為可視化圖標(biāo)設(shè)置對應(yīng)的空間容器,分別通過drawLineChart()、drawLineCharts()、Histograms()函數(shù)對溫度看板、濕度看板和PM2.5看板進(jìn)行繪制,再通過drawCharts()函數(shù)用后端獲取的數(shù)據(jù)對其進(jìn)行渲染。具體獲取數(shù)據(jù)流程:通過$axios的post請求根據(jù)上個頁面?zhèn)鬟^來的參數(shù)作為傳往后端的參數(shù)。后端通過monitorService接口的allTemp()方法對該實驗室的最后20條數(shù)據(jù)即最新采集的數(shù)據(jù)進(jìn)行查找和遍歷,找出所有時間,通過new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(monitor_time)將時間轉(zhuǎn)為字符串格式,并通過format.substring(10,16)方法對時、分進(jìn)行截取;將處理好的數(shù)據(jù)存入時間集合,通過Msg.setDatas()將時間集合傳入前端。前端定義兩個數(shù)組,用來存放圖表的X軸與Y軸的數(shù)據(jù),并用push()方法對數(shù)組進(jìn)行賦值,從而實現(xiàn)了數(shù)據(jù)可視化顯示。實驗室環(huán)境監(jiān)測平臺界面如圖3所示。

圖3 實驗室環(huán)境監(jiān)測平臺界面
本系統(tǒng)結(jié)合物聯(lián)網(wǎng)技術(shù)對實驗室數(shù)據(jù)進(jìn)行采集,并通過前后端分離的形式開發(fā)了實驗室環(huán)境監(jiān)測平臺,實驗室管理人員能夠清楚地查看所有實驗室的狀態(tài)、環(huán)境數(shù)據(jù)以及數(shù)據(jù)的變化趨勢。為了提高用戶體驗度,系統(tǒng)采用可視化形式進(jìn)行環(huán)境數(shù)據(jù)的展示,對有異常數(shù)據(jù)的實驗室按鈕進(jìn)行警示性顏色設(shè)置。本系統(tǒng)平臺的實現(xiàn)使實驗室的安全管理更加人性化和智能化,提高了實驗室管理效率。