版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告課程名稱: 專業(yè)綜合課程設(shè)計(jì) 報(bào)告題目:基于VB的無(wú)線傳感器網(wǎng)絡(luò) 上位機(jī)軟件的設(shè)計(jì) 學(xué)生姓名: 所在學(xué)院: 信息科學(xué)與工程學(xué)院 專業(yè)班級(jí): 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 2013年12月23日摘 要無(wú)線傳感器網(wǎng)絡(luò)是由大量無(wú)處不在的微小傳感器節(jié)點(diǎn)組成,它能根據(jù)環(huán)境自主完成指定任務(wù)的自治監(jiān)控功能,是對(duì)21世紀(jì)產(chǎn)生巨大影響力的技術(shù)之一。本設(shè)計(jì)是將無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用于溫度監(jiān)測(cè)方面。軟件系統(tǒng)前臺(tái)應(yīng)用Visual Basic 6.0編程開發(fā)環(huán)境。采用VB的ADODC控件完成數(shù)據(jù)庫(kù)連接,MSchart控件實(shí)現(xiàn)節(jié)點(diǎn)溫度的條形圖顯示,MScomm控件完成串行數(shù)據(jù)接收。軟件系統(tǒng)后臺(tái)采用Microsoft O
2、ffice Access 2003 數(shù)據(jù)庫(kù),實(shí)現(xiàn)節(jié)點(diǎn)信息的存儲(chǔ)。采用定時(shí)器定時(shí)讀取數(shù)據(jù)庫(kù),完成節(jié)點(diǎn)信息的實(shí)時(shí)更新。通過串行口與下位機(jī)連接,接收適配器發(fā)送過來的字符數(shù)據(jù),實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)功能。關(guān)鍵詞: 無(wú)線傳感器網(wǎng)絡(luò);Access 2003數(shù)據(jù)庫(kù);串行通信目錄摘 要1緒論3課題背景與研究意義3無(wú)線傳感器網(wǎng)絡(luò)簡(jiǎn)介3設(shè)計(jì)任務(wù)51無(wú)線傳感器網(wǎng)絡(luò)上位機(jī)系統(tǒng)概要設(shè)計(jì)51.1系統(tǒng)功能簡(jiǎn)要描述51.2系統(tǒng)模塊功能描述61.3系統(tǒng)設(shè)計(jì)的上位機(jī)、下位機(jī)的連接61.4數(shù)據(jù)庫(kù)設(shè)計(jì)81.4.1數(shù)據(jù)庫(kù)表的創(chuàng)建81.4.2數(shù)據(jù)庫(kù)表91.4.3數(shù)據(jù)庫(kù)表設(shè)計(jì)說明91.4.4數(shù)據(jù)庫(kù)連接設(shè)計(jì)102無(wú)線傳感器網(wǎng)絡(luò)(上位機(jī))
3、詳細(xì)設(shè)計(jì)112.1無(wú)線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)系統(tǒng)(main.frm)112.2節(jié)點(diǎn)管理(net_creat.frm)142.3節(jié)點(diǎn)信息設(shè)置(net_setup.frm)152.4報(bào)警管理(alarm.frm)152.5軟件模擬(moni.frm)162.6出廠設(shè)置(default_setup)173軟件測(cè)試183.1測(cè)試內(nèi)容183.1.1軟件模擬測(cè)試193.1.2無(wú)線傳感器網(wǎng)絡(luò)上、下位機(jī)實(shí)現(xiàn)測(cè)試203.2測(cè)試結(jié)果204 結(jié)論與心得21參考文獻(xiàn)22緒論課題背景與研究意義人類進(jìn)入21世紀(jì)以來,微電子機(jī)械系統(tǒng)、計(jì)算機(jī)、通信、自動(dòng)控制和人工智能等學(xué)科的飛速發(fā)展孕育了一種新型的測(cè)控網(wǎng)絡(luò)無(wú)線傳感器網(wǎng)絡(luò) (wi
4、reless sensor network,WSN)。無(wú)線傳感器網(wǎng)絡(luò)是由大量無(wú)處不在的具有通信與計(jì)算機(jī)能力的微小傳感器節(jié)點(diǎn),密集布設(shè)在無(wú)人值守的監(jiān)控區(qū)域而構(gòu)成的,能夠根據(jù)環(huán)境自主完成指定任務(wù)的“智能”自治監(jiān)控網(wǎng)絡(luò)系統(tǒng)。無(wú)線傳感器網(wǎng)絡(luò)是一種超大規(guī)模、無(wú)人值守、資源嚴(yán)格受限的全分布系統(tǒng),采用多跳對(duì)等的通信方式,其網(wǎng)絡(luò)拓?fù)鋭?dòng)態(tài)變化,具有自組織、自治、自適應(yīng)等智能屬性。無(wú)線傳感器網(wǎng)絡(luò)的出現(xiàn)引起了全世界范圍的廣泛關(guān)注。無(wú)線傳感器網(wǎng)絡(luò)技術(shù)的研究起源于20世紀(jì)70年代,最早應(yīng)用于軍事領(lǐng)域,在卡耐基一梅隆大學(xué)成立了新一代分布式傳感器網(wǎng)絡(luò)工作組。此后,DA聯(lián)合美國(guó)自然科學(xué)基金委員會(huì)設(shè)立了多項(xiàng)有關(guān)無(wú)線傳感器網(wǎng)絡(luò)的
5、研究項(xiàng)目。我國(guó)近兩年也以多種形式支持無(wú)線傳感器網(wǎng)絡(luò)的研究。這些研究推動(dòng)了以網(wǎng)絡(luò)技術(shù)為核心的新軍事革命,誕生了網(wǎng)絡(luò)中心戰(zhàn)的思想和體系。目前,無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用己由軍事領(lǐng)域擴(kuò)展到其他許多領(lǐng)域,如災(zāi)難預(yù)警與救助、家庭健康監(jiān)測(cè)、空間探索等傳統(tǒng)方法無(wú)法完成的任務(wù),成為一種“無(wú)所不在”的傳感技術(shù)。本課題的研究目的是設(shè)計(jì)一種基于ZigBee技術(shù)的無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng),進(jìn)而將其應(yīng)用于溫度系統(tǒng)的監(jiān)控方面。因?yàn)檫@種監(jiān)控網(wǎng)絡(luò)成本較低、無(wú)需布線,多個(gè)傳感器節(jié)點(diǎn)布置于各種監(jiān)控環(huán)境。企業(yè)設(shè)備監(jiān)測(cè)系統(tǒng)一般需要鋪設(shè)大量的電纜、網(wǎng)線、光纖構(gòu)成傳輸網(wǎng)絡(luò),設(shè)備建設(shè)和維護(hù)成本很高,而無(wú)線傳感器網(wǎng)絡(luò)技術(shù)是一種低功耗、自組織的短距離技術(shù)
6、,可以實(shí)現(xiàn)監(jiān)測(cè)、感知和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種環(huán)境對(duì)象數(shù)據(jù)。傳感器網(wǎng)絡(luò)配合專家系統(tǒng)就可以實(shí)現(xiàn)數(shù)據(jù)的采集和分析,從而降低人工維護(hù)成本和設(shè)備成本?;赯igBee的傳感器網(wǎng)絡(luò)技術(shù)如果配合有線網(wǎng)絡(luò)(如以太網(wǎng)),可以實(shí)現(xiàn)整個(gè)工廠范圍內(nèi)機(jī)組的實(shí)時(shí)監(jiān)控;配合無(wú)線蜂窩網(wǎng)絡(luò)技術(shù)可以實(shí)現(xiàn)手機(jī)對(duì)溫度的實(shí)時(shí)監(jiān)測(cè)。因此無(wú)線傳感器網(wǎng)絡(luò)的研究具有重要的應(yīng)用價(jià)值。無(wú)線傳感器網(wǎng)絡(luò)簡(jiǎn)介整個(gè)傳感器網(wǎng)絡(luò)由無(wú)線溫度傳感器節(jié)點(diǎn)(溫度數(shù)據(jù)采集終端)、協(xié)調(diào)器和監(jiān)測(cè)中心計(jì)算機(jī)組成。無(wú)線溫度傳感器節(jié)點(diǎn)分布于需要測(cè)量的現(xiàn)場(chǎng),執(zhí)行溫度數(shù)據(jù)的采集、預(yù)處理、發(fā)送等工作。協(xié)調(diào)器負(fù)責(zé)接收節(jié)點(diǎn)傳送過來的數(shù)據(jù),將無(wú)線網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)轉(zhuǎn)化為以太網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)傳送
7、到監(jiān)測(cè)中心計(jì)算機(jī)。監(jiān)測(cè)中心計(jì)算機(jī)通過與協(xié)調(diào)器間的通信,實(shí)時(shí)的顯示每個(gè)溫度傳感器節(jié)點(diǎn)的溫度信息。系統(tǒng)框圖如圖1所示。每一個(gè)傳感器節(jié)點(diǎn)周期性的將溫度數(shù)據(jù)通過無(wú)線收發(fā)模塊發(fā)送到協(xié)調(diào)器,最終顯示于監(jiān)測(cè)中心計(jì)算機(jī)。圖1 系統(tǒng)總體結(jié)構(gòu)圖無(wú)線傳感器網(wǎng)絡(luò)下位機(jī)設(shè)計(jì)主要分為硬件設(shè)計(jì)和軟件設(shè)計(jì),硬件方面是以CC2530為主要器件,CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的一個(gè)真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總的材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8
8、-KB RAM 和許多其它強(qiáng)大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256KB 的閃存。CC2530 具有不同的運(yùn)行模式,使得它尤其適應(yīng)超低功耗要求的系統(tǒng)。運(yùn)行模式之間的轉(zhuǎn)換時(shí)間短進(jìn)一步確保了低能源消耗。軟件部分采用Zigbee協(xié)議棧,完成無(wú)線網(wǎng)絡(luò)的網(wǎng)絡(luò)連接和無(wú)線網(wǎng)絡(luò)數(shù)據(jù)傳輸交換。ZigBee協(xié)議依據(jù) IEEE 802.15.4標(biāo)準(zhǔn),在數(shù)千個(gè)微小的傳感器之間相互協(xié)調(diào)實(shí)現(xiàn)通信。這些傳感器只需要很少的能量,以接力的方式通過無(wú)線電波將溫度數(shù)據(jù)從一個(gè)傳感器傳到另一個(gè)傳感器,然后傳到適配器最后傳到電腦端。ZigBee協(xié)議是由IE
9、EE802.15.4協(xié)議標(biāo)準(zhǔn)定義的PHY層和MAC層與ZigBee聯(lián)盟所制定的網(wǎng)絡(luò)層和應(yīng)用層所構(gòu)成。其工作頻率在2.4GHz、9l5MHz和868MHz,最高傳輸速率為250kbps。IEEE802.15.4協(xié)議MAC層采用CSMA-CA機(jī)制來控制信道接入,主要負(fù)責(zé)傳輸信標(biāo)幀、同步以及提供可信賴的傳輸機(jī)制。ZigBee協(xié)議棧如圖2。圖2 ZigBee協(xié)議架構(gòu)設(shè)計(jì)任務(wù)主要任務(wù)是分析CC2530協(xié)調(diào)器串口傳輸?shù)臏囟葦?shù)據(jù)格式,通過VB編程實(shí)現(xiàn)的數(shù)據(jù)庫(kù)寫入、讀出處理,實(shí)時(shí)對(duì)溫度進(jìn)行圖形顯示,同時(shí)設(shè)置溫度報(bào)警范圍,可以進(jìn)行報(bào)警事件處理等。1 無(wú)線傳感器網(wǎng)絡(luò)上位機(jī)系統(tǒng)概要設(shè)計(jì)1.1 系統(tǒng)功能簡(jiǎn)要描述1)
10、系統(tǒng)具有良好的人機(jī)界面。2) 自然美觀的圖形化溫度顯示,可以一目了然的監(jiān)測(cè)所有節(jié)點(diǎn)溫度。3) 方便的數(shù)據(jù)添加和修改功能。4) 定時(shí)更新數(shù)據(jù)庫(kù),定時(shí)更新溫度數(shù)據(jù),人性化的溫度監(jiān)測(cè)。5) 聲光報(bào)警功能,最大限度的告訴監(jiān)控人員節(jié)點(diǎn)狀態(tài)。6) 環(huán)境模擬仿真,在沒有下位機(jī)時(shí)也可體驗(yàn)溫度檢測(cè)功能。7) 串行口數(shù)據(jù)自動(dòng)接收,自動(dòng)分析,自動(dòng)處理,無(wú)需人工干預(yù)。8) 數(shù)據(jù)備份和清理功能。1.2 系統(tǒng)模塊功能描述整個(gè)上位機(jī)系統(tǒng)由許多窗體組成,它包括出窗體main.frm、節(jié)點(diǎn)管理窗體net_creat.frm、節(jié)點(diǎn)信息設(shè)置窗體net_setup.frm、報(bào)警管理窗體alarm.frm。具體窗體信息見表1.1。表1
11、.1統(tǒng)功能描述序號(hào)功能名稱窗體名稱優(yōu)先級(jí)簡(jiǎn)要描述1無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)Main.frm高串行口設(shè)置,和溫度的圖形顯示2節(jié)點(diǎn)管理Net_creat.frm中新建節(jié)點(diǎn),刪除節(jié)點(diǎn)3節(jié)點(diǎn)信息設(shè)置Net_setup.frm中節(jié)點(diǎn)報(bào)警溫度設(shè)置,更新時(shí)間設(shè)置4報(bào)警管理Alarm_m.frm高顯示報(bào)警節(jié)點(diǎn),報(bào)警屏蔽等1.3 系統(tǒng)設(shè)計(jì)的上位機(jī)、下位機(jī)的連接無(wú)線傳感器網(wǎng)絡(luò)上位機(jī)通過串行線與下位機(jī)連接,按照串行通信協(xié)議發(fā)送、接收數(shù)據(jù),串行通信發(fā)送的數(shù)據(jù)幀結(jié)構(gòu)如表1.2。數(shù)據(jù)幀由“:”開始,表示一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)的開始,其次是網(wǎng)絡(luò)節(jié)點(diǎn)ID,用來標(biāo)識(shí)檢測(cè)的節(jié)點(diǎn)通道號(hào),然后是網(wǎng)絡(luò)節(jié)點(diǎn)溫度,最后“?!鄙衔粰C(jī)一但接收到該字符
12、,則立即進(jìn)入事件處理,首先分析發(fā)送過來的字符數(shù)據(jù),分別提取節(jié)點(diǎn)ID號(hào),節(jié)點(diǎn)溫度,然后在數(shù)據(jù)庫(kù)中搜索對(duì)應(yīng)的網(wǎng)絡(luò)節(jié)點(diǎn)ID字段,如果搜索到成功,則立即更新節(jié)點(diǎn)溫度,如果搜索失敗,返回為空,不更新數(shù)據(jù)庫(kù)。表1.2 數(shù)據(jù)幀格式8位數(shù)據(jù)起始標(biāo)志網(wǎng)絡(luò)節(jié)點(diǎn)ID號(hào)節(jié)點(diǎn)溫度8位數(shù)據(jù)結(jié)束標(biāo)識(shí)當(dāng)下位機(jī)增加網(wǎng)絡(luò)節(jié)點(diǎn)時(shí),必須在上位機(jī)端對(duì)應(yīng)添加網(wǎng)絡(luò)節(jié)點(diǎn),并按照實(shí)際網(wǎng)絡(luò)節(jié)點(diǎn)ID添加。事件處理代碼見下:Private Sub MSCON_OnComm()Dim my_end$Dim my_sql$Dim my_rs As New ADODB.RecordsetDim net_id$Dim net_tem$Dim b As In
13、tegerDim c As IntegerWith MSCON Select Case .CommEvent Case comEvReceive my_end = .Input mcu_msg = mcu_msg & my_end Text2.Text = mcu_msg If InStr(my_end, .) Then 收到結(jié)束標(biāo)志 取用戶名,查詢,寫如記錄 c = InStrL(mcu_msg, .) mcu_msg = Left(mcu_msg, c) b = InStrL(mcu_msg, :) mcu_msg = Mid(mcu_msg, b + 1, c - b - 1) net_
14、id = Left(mcu_msg, 4) net_tem = Right(mcu_msg, Len(mcu_msg) - 4) MsgBox (net_id) my_sql = select nid,ntemp from basic where nid= & net_id & my_rs.Open sql, con, adOpenDynamic, adLockPessimistic If my_rs.EOF Then Else 寫入進(jìn)出記錄 Image2.Visible = True Image1.Visible = False Timer1.Enabled = False Timer2.E
15、nabled = False Call Add_temp(net_id, net_tem) End If my_rs.Close Set my_rs = Nothing mcu_msg = End If End SelectEnd WithEnd Sub1.4 數(shù)據(jù)庫(kù)設(shè)計(jì)本設(shè)計(jì)主要采用微軟公司Office Access 2003數(shù)據(jù)庫(kù),比起SQL此數(shù)據(jù)庫(kù)功能稍稍遜色,但Access 2003數(shù)據(jù)庫(kù)操作簡(jiǎn)單,屬于Office家族,基于它的程序開發(fā)較為快捷,它具有很好的兼容性,拓展性,受到許多VB程序員們青睞。1.4.1 數(shù)據(jù)庫(kù)表的創(chuàng)建首先打開Office Access 2003,點(diǎn)擊新建,這時(shí)右
16、邊會(huì)出現(xiàn)你所要新建的對(duì)象,如圖1.3。圖1.3數(shù)據(jù)庫(kù)窗創(chuàng)建界面進(jìn)入之后如圖1.4。此時(shí)你可以選擇使用設(shè)計(jì)器創(chuàng)建表,使用向?qū)?chuàng)建表,通過輸入數(shù)據(jù)創(chuàng)建表。此時(shí)選擇使用設(shè)計(jì)器創(chuàng)建表。圖1.4 數(shù)據(jù)庫(kù)創(chuàng)建向?qū)Ы缑孢x擇使用設(shè)計(jì)器進(jìn)入數(shù)據(jù)表設(shè)計(jì),設(shè)置字段名稱以及字段存儲(chǔ)類型。定義主鍵,數(shù)據(jù)表設(shè)計(jì)界面如圖1.5。圖1.5 數(shù)據(jù)表設(shè)計(jì)界面設(shè)置好所有節(jié)點(diǎn)字段名稱,設(shè)置的節(jié)點(diǎn)名稱要與你的數(shù)據(jù)庫(kù)信息有關(guān),以便于方便調(diào)用。設(shè)置完后可以向數(shù)據(jù)表中添加新數(shù)據(jù),具體新數(shù)據(jù)錄入如圖1.6。圖 1.6 新數(shù)據(jù)錄入1.4.2 數(shù)據(jù)庫(kù)表表1.3 數(shù)據(jù)庫(kù)表介紹編號(hào)數(shù)據(jù)表名稱描述功能說明1網(wǎng)絡(luò)節(jié)點(diǎn)信息表網(wǎng)絡(luò)節(jié)點(diǎn)信息主要用于所有網(wǎng)絡(luò)節(jié)點(diǎn)
17、信息存儲(chǔ),比如節(jié)點(diǎn)溫度,節(jié)點(diǎn)ID等。2節(jié)點(diǎn)出廠信息表網(wǎng)絡(luò)節(jié)點(diǎn)初始值信息主要用于新建網(wǎng)絡(luò)節(jié)點(diǎn)時(shí)的初始信息。3管理員信息表管理員登陸信息主要用于管理員登陸1.4.3 數(shù)據(jù)庫(kù)表設(shè)計(jì)說明1) 網(wǎng)絡(luò)節(jié)點(diǎn)信息表(Noteinformation)表1.4 網(wǎng)絡(luò)節(jié)點(diǎn)信息編號(hào)字段名稱字段代碼字段類型是否為空是否主鍵1序號(hào)Num自動(dòng)編號(hào)NY2節(jié)點(diǎn)IDNid文本YN3節(jié)點(diǎn)狀態(tài)Nstate文本YN4節(jié)點(diǎn)名稱Nname文本YN5節(jié)點(diǎn)地址Naddress文本YN6節(jié)點(diǎn)溫度Ntemp數(shù)字YN7一級(jí)報(bào)警值Falarm數(shù)字YN8二級(jí)報(bào)警值Salarm數(shù)字YN9單位Danwei文本YN10更新時(shí)間Updatetime數(shù)字YN11
18、節(jié)點(diǎn)類型Nstyle文本YN2) 管理員信息表(Administrator)表1.5 管理員信息編號(hào)字段名稱字段代碼字段類型是否為空是否主鍵1管理員IDAdministrator文本NN2管理員密碼Secret文本NN3) 節(jié)點(diǎn)出廠信息表(Notedefault)表1.6 節(jié)點(diǎn)出廠信息編號(hào)字段名稱字段代碼字段類型是否為空是否主鍵1節(jié)點(diǎn)溫度Ntemp數(shù)字YN2一級(jí)報(bào)警值Falarm數(shù)字YN3二級(jí)報(bào)警值Salarm數(shù)字YN4單位Danwei文本YN5更新時(shí)間Updatetime數(shù)字YN6節(jié)點(diǎn)類型Nstyle文本YN1.4.4 數(shù)據(jù)庫(kù)連接設(shè)計(jì)Visual Basic 6.0中的ADODC1控件擁有強(qiáng)
19、大的數(shù)據(jù)庫(kù)連接功能,在窗體中添加該控件后,調(diào)用如下函數(shù),即可實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接。Public Function getcon()appdisk = IIf(Right(App.Path, 1) = , App.Path, App.Path & )con.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= & appdisk & db1.mdbcon.Opencon.CursorLocation = adUseClientEnd Function數(shù)據(jù)庫(kù)連接成功后,系統(tǒng)
20、軟件就可以訪問數(shù)據(jù)庫(kù)了,但是還不能調(diào)用、修改、更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,必須建立記錄集,建立記錄集的函數(shù)如下,記錄集與數(shù)據(jù)庫(kù)表連接成功后,就可以修改數(shù)據(jù)庫(kù)表中的數(shù)據(jù)了。Public Sub getrs()sql = select * from basicrs.Open sql, con, adOpenDynamic, adLockPessimisticEnd SubPublic Sub2 無(wú)線傳感器網(wǎng)絡(luò)(上位機(jī))詳細(xì)設(shè)計(jì)無(wú)線傳感器網(wǎng)絡(luò)(上位機(jī))主要實(shí)現(xiàn)人機(jī)對(duì)話功能,設(shè)計(jì)要求人性化,可視化,圖形化。上位機(jī)通過一根串行通信線與下位機(jī)連接,下位機(jī)定時(shí)向上位機(jī)發(fā)送一定格式的數(shù)據(jù)幀,數(shù)據(jù)幀包含節(jié)點(diǎn)ID,節(jié)點(diǎn)
21、溫度等信息,上位機(jī)接收到數(shù)據(jù)后首先存入數(shù)據(jù)庫(kù),然后更新連接數(shù)據(jù)庫(kù),圖形化、圖表化顯示節(jié)點(diǎn)信息。主程序流程圖如圖2.1。圖2.1 主數(shù)據(jù)流圖2.1 無(wú)線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)系統(tǒng)(main.frm)功能描述:可視化的操作界面,主要由串行口設(shè)置模塊、數(shù)據(jù)庫(kù)連接模塊、圖形顯示模塊、報(bào)警模塊組成,管理員可以使用串行口設(shè)置模塊設(shè)置串行端口號(hào),串行端口傳輸速率,是否校驗(yàn),以及是否有停止位。在串行通信前這個(gè)模塊完成所有串行口初始化工作,管理員設(shè)置完串行口后,打開串行口即可實(shí)現(xiàn)串行通信。數(shù)據(jù)庫(kù)連接模塊完成與Access 2003的數(shù)據(jù)庫(kù)的連接,連接完成后,顯示連接成功,連接成功后軟件自動(dòng)初始化,將數(shù)據(jù)庫(kù)中所有網(wǎng)絡(luò)
22、節(jié)點(diǎn)信息用DataGrid顯示出來,管理員可以一目了然的看到所有網(wǎng)絡(luò)節(jié)點(diǎn)信息,并可以清楚知道是否有節(jié)點(diǎn)處于報(bào)警狀態(tài)。圖形顯示模塊的功能主要是實(shí)時(shí)顯示節(jié)點(diǎn)溫度,使用人性化、可視化的設(shè)計(jì),用簡(jiǎn)單的條形圖就可以監(jiān)測(cè)所有節(jié)點(diǎn),避免龐大的數(shù)據(jù)表查看,讓監(jiān)控過程更為輕松。報(bào)警模塊采用聲光報(bào)警,當(dāng)有節(jié)點(diǎn)溫度操作設(shè)置的報(bào)警值時(shí),報(bào)警指示燈不斷閃爍,并發(fā)出報(bào)警聲音,不斷告知有節(jié)點(diǎn)溫度超標(biāo)。無(wú)線傳感器網(wǎng)絡(luò)界面如圖2.2所示。圖2.2 無(wú)線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)中心無(wú)線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)中心是整個(gè)軟件的主界面,它承載著數(shù)據(jù)庫(kù)連接,記錄集建立,串口初始化,以及圖形控件的初始化等,運(yùn)行軟件后,系統(tǒng)首先初始化串行口,然后等待
23、用戶建網(wǎng),當(dāng)建網(wǎng)成功后,數(shù)據(jù)庫(kù)會(huì)連接成功,Datagrid與記錄集連接,并顯示記錄集所有信息。實(shí)現(xiàn)初始化的關(guān)鍵代碼如下:Public Sub k_int()-數(shù)據(jù)庫(kù)記錄集連接-Call getconCall getrsSet DataGrid1.DataSource = rscb2.ListIndex = 0cb3.ListIndex = 0cb4.ListIndex = 0cb5.ListIndex = 0-串口初始化- MSCON.CommPort = 1 設(shè)置通信端口號(hào)為COM1 MSCON.Settings = 38400,n,8,1 設(shè)置串口參數(shù),波特率9600 MSCON.Inpu
24、tMode = 0 接收文本型數(shù)據(jù) MSCON.RThreshold = 1 接收到一個(gè)字符就產(chǎn)生oncomm事件 MSCON.PortOpen = True-Datagrid 初始化-DataGrid1.MarqueeStyle = dbgHighlightRowDataGrid1.RefreshDataGrid1.Columns(0).Caption = 序號(hào)DataGrid1.Columns(1).Caption = 節(jié)點(diǎn)IDDataGrid1.Columns(2).Caption = 節(jié)點(diǎn)狀態(tài)DataGrid1.Columns(3).Caption = 節(jié)點(diǎn)名稱DataGrid1.Co
25、lumns(4).Caption = 節(jié)點(diǎn)地址DataGrid1.Columns(5).Caption = 節(jié)點(diǎn)溫度DataGrid1.Columns(6).Caption = 一級(jí)報(bào)警值DataGrid1.Columns(7).Caption = 二級(jí)報(bào)警值DataGrid1.Columns(8).Caption = 單位DataGrid1.Columns(9).Caption = 更新時(shí)間DataGrid1.Columns(10).Caption = 節(jié)點(diǎn)類型DataGrid1.Columns(0).Width = 600Dim i As IntegerFor i = 1 To 10Dat
26、aGrid1.Columns(i).Width = 1000Next iDataGrid1.BorderStyle = dbgFixedSingle-text初始化- If rs.BOF = False And rs.EOF = False Thencb1.Text = rs.Fields(nid)Text1(0).Text = rs.Fields(nname)Text1(1).Text = rs.Fields(ntemp)Text1(2).Text = Trim(rs.Fields(updatetime)Text1(3).Text = rs.Fields(falarm)Text1(4).Te
27、xt = rs.Fields(salarm)Text1(5).Text = rs.Fields(danwei) End If-初始化MSchart-MSChart1.AllowSeriesSelection = False 設(shè)置不能選中整個(gè)系列MSChart1.RowCount = 15 設(shè)置行共15行MSChart1.ColumnCount = 1 設(shè)置列1列TT.Interval = rs.Fields(updatetime)End Sub2.2 節(jié)點(diǎn)管理(net_creat.frm)功能描述:可視化界面,用戶可以管理節(jié)點(diǎn)基本信息,包括節(jié)點(diǎn)ID,節(jié)點(diǎn)名稱,節(jié)點(diǎn)狀態(tài),節(jié)點(diǎn)地址,節(jié)點(diǎn)溫度,節(jié)點(diǎn)
28、報(bào)警值,節(jié)點(diǎn)溫度單位,更新時(shí)間等,每個(gè)節(jié)點(diǎn)的信息清晰、完整,方便管理員對(duì)每個(gè)節(jié)點(diǎn)的管理,同時(shí)管理員可以進(jìn)行添加節(jié)點(diǎn),刪除節(jié)點(diǎn)等操作。節(jié)點(diǎn)管理界面如圖2.3所示。圖2.3 節(jié)點(diǎn)管理節(jié)點(diǎn)管理的核心功能是實(shí)現(xiàn)數(shù)據(jù)庫(kù)記錄集內(nèi)數(shù)據(jù)的新建和刪除,并及時(shí)更新數(shù)據(jù)庫(kù),在主界面顯示出來。新建記錄集的時(shí)候系統(tǒng)首先自動(dòng)由出廠設(shè)置預(yù)設(shè)網(wǎng)絡(luò)節(jié)點(diǎn)初始信息,用戶也可以根據(jù)自己的需求更改。核心代碼實(shí)現(xiàn)見下:rs.AddNewFor i = 0 To 8rs.Fields(i + 1) = Text1(i).TextNext iCall getrs1rs.Fields(nstyle) = rs1.Fields(nstyle)C
29、all lostrs1rs.Updaters.MoveFirstCall k_int2.3 節(jié)點(diǎn)信息設(shè)置(net_setup.frm)功能描述:可視化界面,包括一級(jí)報(bào)警值設(shè)置,二級(jí)報(bào)警值設(shè)置,更新時(shí)間設(shè)置,管理員可以通過主界面右鍵進(jìn)入,也可以通過菜單選項(xiàng)進(jìn)入。管理員可以根據(jù)實(shí)際需求設(shè)置每個(gè)節(jié)點(diǎn)的報(bào)警值,方便對(duì)每個(gè)節(jié)點(diǎn)特殊管理,使監(jiān)控更實(shí)用,更具有廣闊的監(jiān)控范圍。節(jié)點(diǎn)設(shè)置界面如圖2.4所示。圖2.4 節(jié)點(diǎn)信息設(shè)置節(jié)點(diǎn)信息設(shè)置主要實(shí)現(xiàn)數(shù)據(jù)庫(kù)更新數(shù)據(jù)功能,包括更新一級(jí)報(bào)警值,二級(jí)報(bào)警值和更新時(shí)間。實(shí)現(xiàn)核心代碼見下:Private Sub Command1_Click()rs.Fields(falar
30、m) = Text2.Textrs.Fields(salarm) = Text3.Textrs.Fields(updatetime) = List1.Textrs.Updaters.ResyncUnload MeEnd Sub2.4 報(bào)警管理(alarm.frm)功能描述:可視化界面,管理員可以查看所有溫度超標(biāo)的節(jié)點(diǎn)信息,包括節(jié)點(diǎn)ID,節(jié)點(diǎn)溫度,一級(jí)報(bào)警值,二級(jí)報(bào)警值,和列表顯示報(bào)警節(jié)點(diǎn)信息,人性化的設(shè)計(jì),方便管理員對(duì)報(bào)警節(jié)點(diǎn)統(tǒng)一管理,同時(shí)管理員可以對(duì)報(bào)警節(jié)點(diǎn)報(bào)警屏蔽,報(bào)警值重新設(shè)置等操作。報(bào)警管理界面如圖2.5所示。圖2.5 報(bào)警管理報(bào)警管理窗體能搜索所有報(bào)警中的字段并列表顯示出來,實(shí)現(xiàn)核心
31、是搜索功能。核心代碼如下:sql = select * from basic where nstate like %報(bào)警%my_rs2.Open sql, con, 1, 1Set display.DataSource = my_rs2If my_rs2.BOF = False And my_rs2.EOF = False ThenText1(0).Text = my_rs2.Fields(nid)Text1(1).Text = my_rs2.Fields(ntemp)Text1(2).Text = my_rs2.Fields(falarm)Text1(3).Text = my_rs2.Fie
32、lds(salarm)End If2.5 軟件模擬(moni.frm)功能描述:可視化界面,管理員可以在沒有下位機(jī)的情況下測(cè)試軟件的功能,數(shù)據(jù)幀主要包括數(shù)據(jù)幀起始標(biāo)志,節(jié)點(diǎn)ID,節(jié)點(diǎn)溫度,數(shù)據(jù)幀結(jié)束標(biāo)志。管理員可以自行設(shè)置節(jié)點(diǎn)ID,節(jié)點(diǎn)溫度,并通過復(fù)選框按鈕選擇是否多通道發(fā)送字符,為更好的人機(jī)結(jié)合,管理員可查看發(fā)送的字符串?dāng)?shù)據(jù),為調(diào)試和測(cè)試軟件功能提供了強(qiáng)大的支持,模擬開始后,主窗體會(huì)顯示模擬字樣,操作非常簡(jiǎn)單。模擬參數(shù)設(shè)置界面如圖2.6所示。圖2.6 軟件模擬軟件模擬的實(shí)現(xiàn)主要是定時(shí)向串行口發(fā)送數(shù)據(jù)幀格式的數(shù)據(jù),以觸發(fā)主界面的數(shù)據(jù)接收事件,即使更新數(shù)據(jù)信息。定時(shí)功能用定時(shí)器完成。核心代碼如下
33、:Private Sub Timer1_Timer()If Check1.Value = 1 And Check2.Value = 1 Then cstring = : & Text1.Text & Text2.Text & . & : & Text3.Text & Text4.Text & .ElseIf Check1.Value = 1 And Check2.Value = 0 Then cstring = : & Text1.Text & Text2.Text & .ElseIf Check1.Value = 0 And Check2.Value = 1 Thencstring = :
34、& Text3.Text & Text4.Text & .Elsecstring = End IfIf main.MSCON = False Thenmain.MSCON.PortOpen = TrueEnd Ifmain.MSCON.Output = cstringEnd Sub2.6 出廠設(shè)置(default_setup)可視化界面,管理員可以設(shè)置溫度節(jié)點(diǎn)測(cè)試類型,選擇好溫度檢測(cè)類型后,系統(tǒng)會(huì)自動(dòng)根據(jù)測(cè)試類型初始化一級(jí)報(bào)警值和二級(jí)報(bào)警值,如果符合要求確定表示設(shè)置完成,如果需要更改立即更改,出廠設(shè)置參數(shù)設(shè)置后,在新建網(wǎng)絡(luò)節(jié)點(diǎn)時(shí)的一級(jí)報(bào)警值、二級(jí)報(bào)警值和節(jié)點(diǎn)類型都和出廠設(shè)置的信息相同,這樣非常
35、方便的對(duì)新網(wǎng)絡(luò)節(jié)點(diǎn)的統(tǒng)一管理,功能更為完善和強(qiáng)大。出廠設(shè)置界面如圖2.7所示。圖2.7 出廠設(shè)置出廠設(shè)置的核心處理是更改數(shù)據(jù)庫(kù)字段內(nèi)容,操作比較簡(jiǎn)單:rs1.Fields(falarm) = Text1.Textrs1.Fields(salarm) = Text2.Textrs1.Fields(nstyle) = Combo1.Textrs1.Update3 軟件測(cè)試本設(shè)計(jì)是基于CC2530無(wú)線傳感器網(wǎng)絡(luò)(上位機(jī))設(shè)計(jì),配合下位機(jī)將各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)溫度顯示出來,并有報(bào)警功能。為提高程序開發(fā)效率以及能方便的調(diào)試,軟件還具有模擬功能,在沒有下位機(jī)的情況下,只需要將串行通信口的發(fā)送、接收引腳短接,即可實(shí)
36、現(xiàn)軟件仿真功能。軟件仿真窗體將定時(shí)從串行口的2引腳(數(shù)據(jù)發(fā)送引腳TXD)發(fā)送數(shù)據(jù)幀,因?yàn)?、3引腳短接,數(shù)據(jù)直接發(fā)送到3(數(shù)據(jù)接收引腳RXD)引腳,并傳回電腦端,這時(shí)主窗體的數(shù)據(jù)字符處理模塊就正常運(yùn)行,進(jìn)行網(wǎng)絡(luò)節(jié)點(diǎn)溫度實(shí)時(shí)顯示和處理功能了,同時(shí),管理員還可以改變模擬節(jié)點(diǎn)的節(jié)點(diǎn)ID和溫度,模擬軟件的實(shí)時(shí)顯示溫度,并在主窗體上顯示“模擬中”字樣,表示現(xiàn)在處于模擬狀態(tài),停止模擬后,該字樣消失。3.1 測(cè)試內(nèi)容1) 軟件是否初始化正常,數(shù)據(jù)庫(kù)連接是否成功,退出及關(guān)閉時(shí)是否無(wú)任何錯(cuò)誤。2) 主界面良好,是否能成功建網(wǎng)并提示,圖形顯示是否正常并能定時(shí)更新,管理員是否根據(jù)自己需求改變串行端口號(hào)、傳輸速率和是
37、否校驗(yàn)等。3) 數(shù)據(jù)庫(kù)可維護(hù)性好,數(shù)據(jù)的錄入、刪除及更改是否能順利完成,并能實(shí)現(xiàn)動(dòng)態(tài)更新。4) 串行口數(shù)據(jù)接收是否正常,能正常、準(zhǔn)確分析接收的數(shù)據(jù),并且數(shù)據(jù)庫(kù)字段是否能搜索實(shí)時(shí)更新。5) 軟件模擬功能是否正常實(shí)現(xiàn),演示功能是否強(qiáng)大。6) 與下位機(jī)連接是否成功,并能成功傳輸更新數(shù)據(jù)。7) 測(cè)試步驟3.1.1 軟件模擬測(cè)試首先進(jìn)入主界面(圖3.1),這時(shí),窗體界面基本初始化已經(jīng)完成,但并沒有完成網(wǎng)絡(luò)節(jié)點(diǎn)注冊(cè),選擇菜單軟件模擬 ,進(jìn)入軟件模擬窗體(圖3.2)。圖3.1 主界面圖 圖3.2 軟件模擬界面點(diǎn)擊開始模擬和開始建網(wǎng),建網(wǎng)成功后,圖形化顯示初始化并連接數(shù)據(jù)庫(kù),開定時(shí)更新數(shù)據(jù),通過模擬軟件窗體改
38、變節(jié)點(diǎn)溫度,網(wǎng)路節(jié)點(diǎn)列表和條形圖實(shí)時(shí)顯示溫度信息(圖3.3)。管理員可以點(diǎn)擊鼠標(biāo)右鍵,打開彈出菜單,選擇要進(jìn)行的操作,可以重新設(shè)置節(jié)點(diǎn)報(bào)警值或進(jìn)入報(bào)警處理窗體(圖3.4),進(jìn)行報(bào)警屏蔽等操作。 圖3.4報(bào)警屏蔽界面圖圖3.3 程序主界面圖 進(jìn)入節(jié)點(diǎn)管理窗體(圖3.5),可以新建節(jié)點(diǎn),刪除節(jié)點(diǎn),軟件會(huì)自動(dòng)給新節(jié)點(diǎn)分配網(wǎng)絡(luò)地址和網(wǎng)絡(luò)ID,并按照出廠設(shè)置內(nèi)容初始化網(wǎng)絡(luò)節(jié)點(diǎn),點(diǎn)擊保存后,新建節(jié)點(diǎn)成功,系統(tǒng)立刻更新數(shù)據(jù),主界面記錄會(huì)立刻添加管理員新建的數(shù)據(jù)(圖3.6),并開始實(shí)時(shí)顯示。圖3.6 新建節(jié)點(diǎn)后的主界面圖3.5 節(jié)點(diǎn)管理 3.1.2 無(wú)線傳感器網(wǎng)絡(luò)上、下位機(jī)實(shí)現(xiàn)測(cè)試與下位機(jī)連接后進(jìn)入上位機(jī)下位
39、機(jī)連接測(cè)試,因?yàn)橄挛粰C(jī)僅有一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),所以軟件只監(jiān)測(cè)一個(gè)節(jié)點(diǎn)溫度,測(cè)試步驟如下進(jìn)入主界面(如圖3.1)后點(diǎn)擊開始建網(wǎng),建網(wǎng)成功后(如圖3.6),圖形化顯示初始化并連接數(shù)據(jù)庫(kù),此時(shí),數(shù)據(jù)庫(kù)連接成功,軟件已經(jīng)開始定時(shí)接收串行口發(fā)送過來的數(shù)據(jù),已經(jīng)開始定時(shí)更新數(shù)據(jù)庫(kù)了,此時(shí)我在程序中加一條代碼:msgbox net_tem, 這個(gè)代碼的意思是在每次接收到串行數(shù)據(jù)發(fā)送的數(shù)據(jù)后,待分析完字符數(shù)據(jù),提取net_tem后,通過msgbox告訴我是否溫度檢測(cè)成功,數(shù)據(jù)是否成功收到,如果消息盒子的報(bào)告是空的,則表示數(shù)據(jù)接收失敗或者沒受到數(shù)據(jù),如果消息盒子報(bào)告彈出溫度正常,則表示成功接收并更新了數(shù)據(jù)庫(kù)。具體代碼如下cu_msg
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技金融驅(qū)動(dòng)家庭資產(chǎn)增長(zhǎng)的新動(dòng)力
- 教育心理學(xué)研究的匯報(bào)方法論
- 2025年高效節(jié)能窯爐項(xiàng)目可行性研究報(bào)告
- 跨文化交流與創(chuàng)意產(chǎn)業(yè)商業(yè)模式構(gòu)建
- 教育新時(shí)代的校園體育環(huán)境改善與創(chuàng)新思考-以操場(chǎng)為出發(fā)點(diǎn)
- 2025年連續(xù)式合片機(jī)項(xiàng)目可行性研究報(bào)告
- 山區(qū)特色墓地的設(shè)計(jì)與文化傳承研究
- 2025年篩粉機(jī)械項(xiàng)目可行性研究報(bào)告
- 科技創(chuàng)新為商業(yè)領(lǐng)域帶來的新機(jī)遇
- 移動(dòng)式實(shí)驗(yàn)室建設(shè)規(guī)劃與實(shí)施
- 2025年銷售部年度工作計(jì)劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- ESG表現(xiàn)對(duì)企業(yè)財(cái)務(wù)績(jī)效的影響研究
- 車間空調(diào)崗位送風(fēng)方案
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 初一年級(jí)班主任上學(xué)期工作總結(jié)
- 2023-2024年同等學(xué)力經(jīng)濟(jì)學(xué)綜合真題及參考答案
- 農(nóng)村集體土地使用權(quán)轉(zhuǎn)讓協(xié)議
- 課件四露天礦山安全知識(shí)培訓(xùn)
- 2024年高考全國(guó)甲卷英語(yǔ)試卷(含答案)
- 職業(yè)技術(shù)學(xué)院《裝配式混凝土構(gòu)件生產(chǎn)與管理》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論