国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于物聯(lián)網(wǎng)技術(shù)的環(huán)境監(jiān)測系統(tǒng)研究

2016-07-04 00:37:40賈蘇陳永康王春明袁鴻燕
電腦知識與技術(shù) 2016年15期
關(guān)鍵詞:物聯(lián)網(wǎng)

賈蘇+陳永康+王春明+袁鴻燕

摘要:為了處理實時顯示和處理物聯(lián)網(wǎng)中收集來的大量有用數(shù)據(jù),利用.NET平臺下的ZedGraph控件以直觀的形式展現(xiàn)實時觀測的事物狀態(tài),實現(xiàn)管理,監(jiān)控的科學化、自動化。ZedGraph是一種較為常用的表達數(shù)據(jù)的控件,簡單易用,面對大量數(shù)據(jù)也有不錯的性能。

關(guān)鍵詞:物聯(lián)網(wǎng);ZedGraph;實時分析

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)15-0278-03

Abstract: In order to process enormous valuable data from the Internet of things,using the .NET platforms open-source library ZedGraph to make real-time data report,present the situation of things what we watch in various form,realize the science, automation of management and monitoring.ZedGraph is a more commonly used expression data control, and easy to use, in the face of a large number of data also has a good performance.

Key words: the Internet of things; ZedGraph; real time analysis

近年來,我國經(jīng)濟飛速發(fā)展,人們對于環(huán)境污染的日益嚴重頗為擔心,對環(huán)境監(jiān)測的重視程度越來越高。傳統(tǒng)的以人工為主的方式效率較低,且無法實現(xiàn)遠程監(jiān)控,不適合現(xiàn)代發(fā)展的需求。隨著科技的發(fā)展,物聯(lián)網(wǎng)技術(shù)將逐步取代人工監(jiān)控,大大提高了環(huán)境監(jiān)測的效率,為更科學優(yōu)化的監(jiān)測環(huán)境參數(shù)拓寬了思路與方式。

物聯(lián)網(wǎng)技術(shù)是信息化技術(shù)的一個極其重要的產(chǎn)物,是環(huán)境監(jiān)測的重要手段。物聯(lián)網(wǎng)強調(diào)的是“物—物”以無線的方式相互連接,達到“物—物”通信的目的。物聯(lián)網(wǎng)產(chǎn)生的大量數(shù)據(jù)是研究管理人員評估審查的重要指標,這些數(shù)據(jù)對環(huán)境的監(jiān)管、污染源的發(fā)現(xiàn)以及環(huán)境問題的反饋與處理方面發(fā)揮了極大的作用,那么,在環(huán)境監(jiān)測系統(tǒng)中,如何科學的呈現(xiàn)這些數(shù)據(jù)就成了研究的主要課題。

圖表是對數(shù)據(jù)進行分析評估的有效工具,也是最直觀表示數(shù)據(jù)的方式。本文就是在已通過傳感器獲得物聯(lián)網(wǎng)數(shù)據(jù)的基礎(chǔ)上,利用ZedGraph圖表制作工具來實時顯示數(shù)據(jù),使數(shù)據(jù)更富有生命,科學而直觀的動態(tài)實時展示。

1 ZedGraph的介紹

ZedGraph控件使用 C# 語言實現(xiàn)的,是 .NET 平臺上一個開源和非交互式圖表的制作類庫。ZedGraph支持多種2D圖表類型的圖表,可以利用任意的數(shù)據(jù)集合創(chuàng)建2D的線性圖表和柱形圖表,ZedGraph支持Windows Form和ASP.NET Web Form開發(fā),還能夠?qū)崿F(xiàn)各種二維表,如Line、Bar、Pie、Area等,因此是一種理想的顯示數(shù)據(jù)的控件。

ZedGraph控件是面向?qū)ο蟮模丛谑褂弥芯哂泻芨叩撵`活性。圖表的每個層面都可以被用戶修改,所有的圖表屬性都提供了缺省值,ZedGraph類庫中源代碼可被進行修改,重新生成,包括圖表顯示特性的若干默認值,如數(shù)值單位、數(shù)值范圍、步長、尺寸等。ZedGraph控件繼承了Framework中的UserControl接口,允許用戶在VS 的IDE 環(huán)境中進行拖放操作,對其他語言同時提供了相應的接口。

當上位機通過選擇指定節(jié)點和需要顯示的數(shù)據(jù)后,依從業(yè)務(wù)邏輯的需求,從某種數(shù)據(jù)接口中獲取相關(guān)數(shù)據(jù),在上位機端經(jīng)過數(shù)據(jù)整理后,構(gòu)造圖表所需的數(shù)據(jù)集,再由ZedGraph控件加載此數(shù)據(jù)集,最終,在上位機端生成圖表,通過定時器的時鐘控制,定期更新圖表信息的顯示。

ZedGraph可在運行時期創(chuàng)建實例對象,此處使用的是版本5.0.10的類庫,對應于VS2012開發(fā)平臺,一般開發(fā)步驟如下:

(1)打開Visual Studio 2012中文版。

(2)在菜單中選擇“文件”—>“新建”—>“項目…”。

(3)選擇“Windows應用程序”,取名為“ZedGraphDEMO”。

(4)在解決方案瀏覽窗口,右鍵點擊“引用”,選擇“添加引用…”。

(5)選擇“瀏覽”,導航到ZedGraph.dll,單擊“確定”,在項目引用中會增加ZedGraph。

(6)在菜單項“視圖”中選擇“工具箱”,查看“常規(guī)”選項卡的內(nèi)容。

(7)如“ZedGraphControl”選項不存在,右鍵點擊“常規(guī)”選項卡,并選“選擇項…”。

(8)在“.NetFramework組件”標簽下,點擊“瀏覽(B)…”。

(9)導航到ZedGraph.dll文件,點擊“打開”,之后點擊“確定”。

(10)工具箱中點擊“ZedGraphControl”控件,拖放控件到窗體。實際上工具箱中的控件拖放到窗體時,類庫的引用自動添加,所以在具體應用時,之前的添加引用過程可省略。

(11)窗體中點選“ZedGraphControl”控件,視圖菜單中選擇“屬性窗口”。

(12)把ZedGraphControl的名稱“(Name)”項填寫成“zg1”,默認通常是“zedGraphControl1”。

(13)雙擊窗體,切換到代碼窗口,窗口模板中帶有Form1_Load()方法。

(14)在文件上部加上“usingZedGraph;”。

2 ZedGraph應用開發(fā)實例

本例的分析數(shù)據(jù)來自物聯(lián)網(wǎng)中的中心節(jié)點,中心節(jié)點收集分散于通過無線的形式收集各處的信息采集點發(fā)送來的數(shù)據(jù),通過上位機對中心節(jié)點的讀取就實現(xiàn)對遠程節(jié)點的控制,中心節(jié)點起著一定程度上的網(wǎng)關(guān)的作用,對中心節(jié)點的讀取可以使用.NET提供的System.IO.Ports命名空間下的控件。

(1)在WinForm容器中繪制圖表的代碼

下列函數(shù)是在要表達實時數(shù)據(jù)的窗體中的私有函數(shù),zedGraphControl1在函數(shù)之外經(jīng)過實列化之后,只要設(shè)置其x軸為自動增長,PointPairList中保存有要在界面上顯示的數(shù)據(jù),執(zhí)行zedGraphControl1.Refresh();就實現(xiàn)了圖表的刷新。隨著數(shù)據(jù)的積累,應該放棄一些時間點,以保證圖表中數(shù)據(jù)的個數(shù)一樣,DropPrePoint()函數(shù)就是實現(xiàn)了這樣的功能,代碼如下:

private void DrawGraph()

{

//設(shè)置為x軸的標尺Scale可以隨著值自動增長

zedGraphControl1.GraphPane.XAxis.Scale.MaxAuto = true;

double x = (double)new XDate(DateTime.Now);//橫坐標

//縱坐標,y1表示溫度,y2表示濕度,y3表示土壤濕度

double y1 = 0, y2 = 0, y3 = 0;

for (int i = 1; i < dt.Rows.Count; i++) {

//dt中存放的是從中心節(jié)點中讀取的緩存數(shù)據(jù)

y1 = double.Parse(dt.Rows[i]["wd"].ToString());

y1 = y1 * 0.01;

y2 = double.Parse(dt.Rows[i]["sd"].ToString());

y2 = y2 * 0.01;

y3 = double.Parse(dt.Rows[i]["yw"].ToString());

y3 = y3 * 0.01;

}

//分結(jié)點添加數(shù)據(jù)

for (int k = 0; k < nodesum; k++) {

if (dt.Rows[i][0].ToString() == (k + 1).ToString()) {

wlist[k].Add(x, y1);

slist[k].Add(x, y2);

ylist[k].Add(x, y3);

}

}

}

//控制折線圖中的點保持在100個,超過100個就報先前的去掉

DropPrePoint();

this.zedGraphControl1.AxisChange();

this.zedGraphControl1.Refresh();//刷新數(shù)據(jù)

}

(2)使用定時器定期對容器中圖表進行刷新

使用定時器便可以在指定的時間間隔刷新圖表,定時器是timer1,其時間間隔到時便會自動調(diào)用約定的函數(shù)timer1_Tick(),在這個函數(shù)中需要保證上位機中留存的數(shù)據(jù)個數(shù),從串口中讀取收集來的數(shù)據(jù)LoadSerialData(),重新繪制圖表DrawGraph(),代碼如下:

private void timer1_Tick(object sender, EventArgs e) {

if (isStart) {//判斷是否已經(jīng)開始記錄

if (_serialPort.IsOpen){ //判斷端口是否打開

if (dt.Rows.Count > 1){ //dt里面是否有上位機以外的記錄

//移除掉線結(jié)點

for (int j = 1; j < dt.Rows.Count; j++){

comboBox2.Items.RemoveAt(j - 1);

dt.Rows.RemoveAt(j);

}

if (dt.Rows.Count > 0){

Node = new string[dt.Rows.Count, 5];//5表示有5列

//將dt里面的數(shù)據(jù)移入Node,以便繪制TOPO圖

for (int i = 0; i < dt.Rows.Count; i++){

Node[i, 0] = dt.Rows[i][0].ToString(); //ID碼

Node[i, 1] = dt.Rows[i]["wd"].ToString(); //溫度

Node[i, 2] = dt.Rows[i]["sd"].ToString(); //濕度

Node[i, 3] = dt.Rows[i]["yw"].ToString(); //土壤濕度

Node[i, 4] = dt.Rows[i]["ontime"].ToString(); //時刻

}

bind();//拓撲圖綁定

}

}

}

LoadSerialData();// 從串口讀取數(shù)據(jù)

DrawGraph();//畫折線圖

}

}

(3)使用定時器定期捕獲數(shù)據(jù),如圖1和圖2所示。

3 結(jié)束語

ZedGraph控件為開發(fā)者提供了豐富的屬性用來簡化軟件開發(fā)過程,控件開源的特性使得開發(fā)者可以根據(jù)具體情況修改源代碼以滿足特定需求。在生態(tài)養(yǎng)殖的環(huán)境監(jiān)測系統(tǒng)中應用ZedGraph控件,有助于監(jiān)測的數(shù)據(jù)圖形化和分析結(jié)果的可視化。

參考文獻:

[1] 孫吉赟,方明,顧燕偉.多維數(shù)據(jù)圖形顯示中ZedGraph控件的應用[J].電腦開發(fā)與應用,2008(3).

[2] 亦鋼. 應用Zedgraph高效開發(fā)數(shù)據(jù)圖表[J]. 電腦編程技巧與維護,2009(6).

[3] 沈?qū)m新 基于ZedGraph控件的制冷系統(tǒng)實時曲線的繪制[J].三門峽職業(yè)技術(shù)學院學報,2013(12).

[4] 朱振茂 無線網(wǎng)絡(luò)實時監(jiān)測系統(tǒng)上位機軟件的設(shè)計與實現(xiàn)[J].大連海事大學學報,2008(2).

猜你喜歡
物聯(lián)網(wǎng)
基于物聯(lián)網(wǎng)的無線測溫模塊設(shè)計
軟件導刊(2016年9期)2016-11-07 21:56:29
基于物聯(lián)網(wǎng)ZigBee技術(shù)的智能家居監(jiān)控系統(tǒng) 
軟件導刊(2016年9期)2016-11-07 21:32:45
物聯(lián)網(wǎng)監(jiān)測技術(shù)在G15W112邊坡的應用
基于物聯(lián)網(wǎng)的健康管理服務(wù)模式
基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設(shè)計與應用
基于高職院校物聯(lián)網(wǎng)技術(shù)應用人才培養(yǎng)的思考分析
如何在高校架設(shè)學生洗衣服務(wù)系統(tǒng)
科技視界(2016年22期)2016-10-18 17:23:30
基于無線組網(wǎng)的智慧公交站點信息系統(tǒng)研究與實踐
基于LABVIEW的溫室管理系統(tǒng)的研究與設(shè)計
論智能油田的發(fā)展趨勢及必要性
如皋市| 资兴市| 随州市| 长岛县| 土默特右旗| 睢宁县| 蒲江县| 鄂尔多斯市| 格尔木市| 遂川县| 广安市| 迭部县| 衢州市| 武汉市| 化州市| 京山县| 武冈市| 黔江区| 永宁县| 会理县| 随州市| 黎川县| 进贤县| 洪洞县| 什邡市| 吉安市| 连南| 邛崃市| 娄烦县| 洛宁县| 辛集市| 贵阳市| 浦江县| 防城港市| 兴安盟| 界首市| 雷州市| 衡山县| 泌阳县| 泗洪县| 左权县|