劉世龍 王新琪 吳通金 郭雁青 王薊皓
摘要:本文基于MYSQL與Echarts技術(shù),進(jìn)行了數(shù)據(jù)可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),將通過(guò)單片機(jī)采集的溫度、濕度、電壓、電流等信號(hào),通過(guò)SQL數(shù)據(jù)庫(kù)進(jìn)行清洗、處理、入庫(kù),利用Echarts技術(shù),將各類型的信號(hào)實(shí)現(xiàn)了可視化的展示,通過(guò)本系統(tǒng)的設(shè)計(jì)與應(yīng)用,更好的完成了多源數(shù)據(jù)的管理監(jiān)測(cè)。
關(guān)鍵詞:數(shù)據(jù)可視化;MYSQL;系統(tǒng)設(shè)計(jì)
中圖分類號(hào):TP311.52?? 文獻(xiàn)標(biāo)識(shí)碼:A?? 文章編號(hào):1672-9129(2020)04-0034-01
Abstract:this article is based on MYSQL and Echarts technology, data visualization system design and implementation, will be collected by single chip microcomputer, such as temperature, humidity, voltage, current signal, through the SQL database for cleaning, handling, storage, using Echarts technology, will be to implement the visualization of each type of signal display, through the design and application of this system, better to complete the multi-source data management monitoring.
Key words:data visualization;MYSQL;The system design
引言:數(shù)據(jù)可視化已經(jīng)成為了信息處理的必要工作。如何將獲取的信息進(jìn)行更好的展示,是數(shù)據(jù)可視化研究的重點(diǎn)。本文中對(duì)于分布在不同網(wǎng)絡(luò)節(jié)點(diǎn)上的單片機(jī)所采集的各類型觀測(cè)數(shù)據(jù)進(jìn)行管理和可視化展示,就其中詳細(xì)技術(shù)進(jìn)行探討。
1 數(shù)據(jù)可視化系統(tǒng)設(shè)計(jì)
系統(tǒng)分為數(shù)據(jù)采集、存儲(chǔ)、可視化三個(gè)主要部分。采集階段,采用單片機(jī)獲取溫度、濕度、電壓、電流等節(jié)點(diǎn)數(shù)據(jù),存儲(chǔ)階段,利用Python解析數(shù)據(jù)后,入庫(kù)MySQL中,通過(guò)搭建PHP+mysql的后臺(tái)服務(wù)進(jìn)行數(shù)據(jù)清洗、分析和處理,區(qū)分日常記錄和閾值報(bào)警??梢暬A段,利用Echarts技術(shù)開(kāi)發(fā)可視化前端,實(shí)現(xiàn)B/S架構(gòu)的客戶端界面,生成的圖像化報(bào)表和報(bào)警信息便于值班員監(jiān)測(cè)處理。
2 關(guān)鍵技術(shù)
2.1數(shù)據(jù)采集。數(shù)據(jù)采集是通過(guò)單片機(jī)完成的。采集的數(shù)據(jù)包含多源異構(gòu)類型的數(shù)據(jù)信息,例如:溫度、濕度、電壓、電流信號(hào)強(qiáng)度等。通過(guò)單片機(jī)采集到信息后,經(jīng)過(guò)串口將數(shù)據(jù)傳輸至電腦中,存儲(chǔ)在構(gòu)建的MYSQL數(shù)據(jù)庫(kù)中。同時(shí),單片機(jī)預(yù)留了后續(xù)的擴(kuò)展接口,對(duì)于發(fā)現(xiàn)數(shù)據(jù)異?;蛟O(shè)備異常后,管理員可以交互式地通過(guò)直接點(diǎn)擊按鈕,操縱單片機(jī)上的模塊,進(jìn)而控制機(jī)房或機(jī)房的服務(wù)器。
2.2數(shù)據(jù)處理與存儲(chǔ)。數(shù)據(jù)通過(guò)單片機(jī)采集完成后,需要進(jìn)行解析才能入庫(kù),此方面,作者團(tuán)隊(duì)使用python對(duì)串口數(shù)據(jù)進(jìn)行處理,完成字符串的解析,并將格式規(guī)整的數(shù)據(jù)寫(xiě)入到MySQL數(shù)據(jù)庫(kù)。
本文中,數(shù)據(jù)采用開(kāi)源免費(fèi)的MYSQL數(shù)據(jù)庫(kù),單表存儲(chǔ)量可達(dá)百萬(wàn)級(jí)別,讀取速率達(dá)到毫秒級(jí)別,MySQL作為最早的一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),使用率和普及率都非常高,鑒于其始終開(kāi)源的優(yōu)點(diǎn),具備很靈活的個(gè)性化修改能力。MySQL也是使用結(jié)構(gòu)化查詢語(yǔ)言(SQL)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的管理。長(zhǎng)期以來(lái),一直以速度、可靠性、適應(yīng)性而著稱。
本文中數(shù)據(jù)庫(kù)具體的設(shè)計(jì)思想是:每一個(gè)節(jié)點(diǎn)接收到的每一條數(shù)據(jù)都存放在固定數(shù)據(jù)庫(kù)的同一張表上。實(shí)際工作中,系統(tǒng)單節(jié)點(diǎn)每天的數(shù)據(jù)量大約為1500多條、年度數(shù)據(jù)量約為55萬(wàn)條,這樣的數(shù)據(jù)量而言,每年數(shù)據(jù)只需單獨(dú)存放一張表即可。這樣按年存放有利于數(shù)據(jù)的查詢和分析。
2.3數(shù)據(jù)可視化技術(shù)。數(shù)據(jù)的可視化主要是采用Echarts來(lái)展示數(shù)據(jù),用到了DOM容器、grid組件、地理地圖組件以及ajax刷新軟件
根據(jù)項(xiàng)目實(shí)際需求,一個(gè)單片機(jī)可以同時(shí)采集多種類型的信息,僅生成一個(gè)圖表是不能滿足的要求的。因此需要想辦法在同一個(gè)頁(yè)面生成多張圖表。為此,需要準(zhǔn)備一個(gè)DOM容器,通過(guò)參數(shù)確定多個(gè)圖表的相對(duì)位置,用一個(gè)setOption方法生成多個(gè)圖表,就需要在option中引入grid組件,單個(gè)grid內(nèi)最多可以放置上下兩個(gè)X軸,左右兩個(gè)Y軸。在ECharts 3中單個(gè) echarts 實(shí)例可以存在任意個(gè)grid組件,這意味著如果要增加單片機(jī)傳送的數(shù)據(jù),只需增加grid組件即可,這為項(xiàng)目的擴(kuò)展提供了可行之處。
單元節(jié)點(diǎn)數(shù)據(jù)可視化展示。每個(gè)單片機(jī)數(shù)據(jù)都展示在了同一個(gè)頁(yè)面。頁(yè)面中會(huì)詳細(xì)展示實(shí)時(shí)的監(jiān)控情況,根據(jù)監(jiān)控的數(shù)據(jù)情況是否符合規(guī)定,會(huì)出現(xiàn)警告或報(bào)警。
多元節(jié)點(diǎn)數(shù)據(jù)展可視化示,也就是多個(gè)單片機(jī)的總體展示。Echarts展示地圖也是比較方便的,引入相應(yīng)的地圖插件即可。將單片機(jī)采集回來(lái)的經(jīng)緯度信息展示在地圖上,根據(jù)節(jié)點(diǎn)范圍的大小可以任意放大或縮小地圖,使數(shù)據(jù)更加地直觀。今后,還將增加信號(hào)強(qiáng)度的實(shí)時(shí)動(dòng)態(tài)展示,用信號(hào)強(qiáng)度搭建起一個(gè)虛擬的網(wǎng)絡(luò),這也是“自組網(wǎng)”的一個(gè)直觀展示。
數(shù)據(jù)可視化刷新。在用Echarts實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的靜態(tài)展示之后,還需考慮實(shí)時(shí)動(dòng)態(tài)刷新數(shù)據(jù),這時(shí)就可以在頁(yè)面中采用Ajax方法。Ajax是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法,它最大的優(yōu)點(diǎn)是在不重新加載整個(gè)頁(yè)面的情況下,可以與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)內(nèi)容。所以可以利用Ajax動(dòng)態(tài)地從MySQL數(shù)據(jù)庫(kù)讀取數(shù)據(jù)加載到頁(yè)面中去,再利用setInterval()函數(shù)間隔調(diào)用Ajax以達(dá)到更新數(shù)據(jù)的目的。
2.4數(shù)據(jù)分析。進(jìn)行數(shù)據(jù)分析??梢暬皇菙?shù)據(jù)展示的過(guò)程,對(duì)于實(shí)際應(yīng)用來(lái)說(shuō),利用數(shù)據(jù)去進(jìn)行分析和預(yù)測(cè)才是更有用的技術(shù)手段。設(shè)置數(shù)據(jù)判定和條件報(bào)警,目前初步設(shè)置了三種狀態(tài)標(biāo)志,綠點(diǎn)表示節(jié)點(diǎn)一切正常、紅點(diǎn)表示存在異常情況。根據(jù)報(bào)警信息的不同,管理員可以清楚地了解機(jī)房的實(shí)時(shí)情況。
根據(jù)歷史數(shù)據(jù)進(jìn)行分析預(yù)測(cè)。根據(jù)大數(shù)據(jù)的思想,研究數(shù)據(jù)并不能僅限于分析現(xiàn)有的數(shù)據(jù),還要根據(jù)現(xiàn)有的數(shù)據(jù)進(jìn)行趨勢(shì)的預(yù)測(cè)。多個(gè)節(jié)點(diǎn)多個(gè)時(shí)間段的數(shù)據(jù)聯(lián)系到一起將會(huì)變得非常有用。因此數(shù)據(jù)庫(kù)表至少會(huì)保留一年,以用于數(shù)據(jù)時(shí)間上的趨勢(shì)分析。
3 結(jié)語(yǔ)
隨著接入網(wǎng)絡(luò)的數(shù)據(jù)量的增加,對(duì)于數(shù)據(jù)的可視化展示已經(jīng)變得非常必要,直觀的數(shù)據(jù)展示,能夠更好地從整體性上體現(xiàn)出數(shù)據(jù)信息的分布和發(fā)展規(guī)律,作為信息分析的必要手段,將更有助于進(jìn)行決策支持。
參考文獻(xiàn):
[1]王勇,王松,張紅英.基于B/S構(gòu)架的網(wǎng)絡(luò)結(jié)構(gòu)可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2020,56(11):230-237.
[2]張玉龍,丁錳.基于數(shù)據(jù)處理與可視化的信息分析系統(tǒng)設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2019,(30):49-53.
[3]王志鵬,張麗瑤,陳思逸.面向工業(yè)生產(chǎn)的大數(shù)據(jù)管理與可視化系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2019,27(24):24-28.