基于VB的上位機(jī)的設(shè)計講解_第1頁
基于VB的上位機(jī)的設(shè)計講解_第2頁
基于VB的上位機(jī)的設(shè)計講解_第3頁
基于VB的上位機(jī)的設(shè)計講解_第4頁
基于VB的上位機(jī)的設(shè)計講解_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、課程設(shè)計報告課程名稱: 專業(yè)綜合課程設(shè)計 報告題目:基于VB的無線傳感器網(wǎng)絡(luò) 上位機(jī)軟件的設(shè)計 學(xué)生姓名: 所在學(xué)院: 信息科學(xué)與工程學(xué)院 專業(yè)班級: 學(xué)生學(xué)號: 指導(dǎo)教師: 2013年12月23日摘 要無線傳感器網(wǎng)絡(luò)是由大量無處不在的微小傳感器節(jié)點組成,它能根據(jù)環(huán)境自主完成指定任務(wù)的自治監(jiān)控功能,是對21世紀(jì)產(chǎn)生巨大影響力的技術(shù)之一。本設(shè)計是將無線傳感器網(wǎng)絡(luò)應(yīng)用于溫度監(jiān)測方面。軟件系統(tǒng)前臺應(yīng)用Visual Basic 6.0編程開發(fā)環(huán)境。采用VB的ADODC控件完成數(shù)據(jù)庫連接,MSchart控件實現(xiàn)節(jié)點溫度的條形圖顯示,MScomm控件完成串行數(shù)據(jù)接收。軟件系統(tǒng)后臺采用Microsoft O

2、ffice Access 2003 數(shù)據(jù)庫,實現(xiàn)節(jié)點信息的存儲。采用定時器定時讀取數(shù)據(jù)庫,完成節(jié)點信息的實時更新。通過串行口與下位機(jī)連接,接收適配器發(fā)送過來的字符數(shù)據(jù),實現(xiàn)無線傳感器網(wǎng)絡(luò)溫度監(jiān)測功能。關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò);Access 2003數(shù)據(jù)庫;串行通信目錄摘 要1緒論3課題背景與研究意義3無線傳感器網(wǎng)絡(luò)簡介3設(shè)計任務(wù)51無線傳感器網(wǎng)絡(luò)上位機(jī)系統(tǒng)概要設(shè)計51.1系統(tǒng)功能簡要描述51.2系統(tǒng)模塊功能描述61.3系統(tǒng)設(shè)計的上位機(jī)、下位機(jī)的連接61.4數(shù)據(jù)庫設(shè)計81.4.1數(shù)據(jù)庫表的創(chuàng)建81.4.2數(shù)據(jù)庫表91.4.3數(shù)據(jù)庫表設(shè)計說明91.4.4數(shù)據(jù)庫連接設(shè)計102無線傳感器網(wǎng)絡(luò)(上位機(jī))

3、詳細(xì)設(shè)計112.1無線傳感器網(wǎng)絡(luò)溫度監(jiān)測系統(tǒng)(main.frm)112.2節(jié)點管理(net_creat.frm)142.3節(jié)點信息設(shè)置(net_setup.frm)152.4報警管理(alarm.frm)152.5軟件模擬(moni.frm)162.6出廠設(shè)置(default_setup)173軟件測試183.1測試內(nèi)容183.1.1軟件模擬測試193.1.2無線傳感器網(wǎng)絡(luò)上、下位機(jī)實現(xiàn)測試203.2測試結(jié)果204 結(jié)論與心得21參考文獻(xiàn)22緒論課題背景與研究意義人類進(jìn)入21世紀(jì)以來,微電子機(jī)械系統(tǒng)、計算機(jī)、通信、自動控制和人工智能等學(xué)科的飛速發(fā)展孕育了一種新型的測控網(wǎng)絡(luò)無線傳感器網(wǎng)絡(luò) (wi

4、reless sensor network,WSN)。無線傳感器網(wǎng)絡(luò)是由大量無處不在的具有通信與計算機(jī)能力的微小傳感器節(jié)點,密集布設(shè)在無人值守的監(jiān)控區(qū)域而構(gòu)成的,能夠根據(jù)環(huán)境自主完成指定任務(wù)的“智能”自治監(jiān)控網(wǎng)絡(luò)系統(tǒng)。無線傳感器網(wǎng)絡(luò)是一種超大規(guī)模、無人值守、資源嚴(yán)格受限的全分布系統(tǒng),采用多跳對等的通信方式,其網(wǎng)絡(luò)拓?fù)鋭討B(tài)變化,具有自組織、自治、自適應(yīng)等智能屬性。無線傳感器網(wǎng)絡(luò)的出現(xiàn)引起了全世界范圍的廣泛關(guān)注。無線傳感器網(wǎng)絡(luò)技術(shù)的研究起源于20世紀(jì)70年代,最早應(yīng)用于軍事領(lǐng)域,在卡耐基一梅隆大學(xué)成立了新一代分布式傳感器網(wǎng)絡(luò)工作組。此后,DA聯(lián)合美國自然科學(xué)基金委員會設(shè)立了多項有關(guān)無線傳感器網(wǎng)絡(luò)的

5、研究項目。我國近兩年也以多種形式支持無線傳感器網(wǎng)絡(luò)的研究。這些研究推動了以網(wǎng)絡(luò)技術(shù)為核心的新軍事革命,誕生了網(wǎng)絡(luò)中心戰(zhàn)的思想和體系。目前,無線傳感器網(wǎng)絡(luò)的應(yīng)用己由軍事領(lǐng)域擴(kuò)展到其他許多領(lǐng)域,如災(zāi)難預(yù)警與救助、家庭健康監(jiān)測、空間探索等傳統(tǒng)方法無法完成的任務(wù),成為一種“無所不在”的傳感技術(shù)。本課題的研究目的是設(shè)計一種基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)系統(tǒng),進(jìn)而將其應(yīng)用于溫度系統(tǒng)的監(jiān)控方面。因為這種監(jiān)控網(wǎng)絡(luò)成本較低、無需布線,多個傳感器節(jié)點布置于各種監(jiān)控環(huán)境。企業(yè)設(shè)備監(jiān)測系統(tǒng)一般需要鋪設(shè)大量的電纜、網(wǎng)線、光纖構(gòu)成傳輸網(wǎng)絡(luò),設(shè)備建設(shè)和維護(hù)成本很高,而無線傳感器網(wǎng)絡(luò)技術(shù)是一種低功耗、自組織的短距離技術(shù)

6、,可以實現(xiàn)監(jiān)測、感知和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種環(huán)境對象數(shù)據(jù)。傳感器網(wǎng)絡(luò)配合專家系統(tǒng)就可以實現(xiàn)數(shù)據(jù)的采集和分析,從而降低人工維護(hù)成本和設(shè)備成本?;赯igBee的傳感器網(wǎng)絡(luò)技術(shù)如果配合有線網(wǎng)絡(luò)(如以太網(wǎng)),可以實現(xiàn)整個工廠范圍內(nèi)機(jī)組的實時監(jiān)控;配合無線蜂窩網(wǎng)絡(luò)技術(shù)可以實現(xiàn)手機(jī)對溫度的實時監(jiān)測。因此無線傳感器網(wǎng)絡(luò)的研究具有重要的應(yīng)用價值。無線傳感器網(wǎng)絡(luò)簡介整個傳感器網(wǎng)絡(luò)由無線溫度傳感器節(jié)點(溫度數(shù)據(jù)采集終端)、協(xié)調(diào)器和監(jiān)測中心計算機(jī)組成。無線溫度傳感器節(jié)點分布于需要測量的現(xiàn)場,執(zhí)行溫度數(shù)據(jù)的采集、預(yù)處理、發(fā)送等工作。協(xié)調(diào)器負(fù)責(zé)接收節(jié)點傳送過來的數(shù)據(jù),將無線網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)轉(zhuǎn)化為以太網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)傳送

7、到監(jiān)測中心計算機(jī)。監(jiān)測中心計算機(jī)通過與協(xié)調(diào)器間的通信,實時的顯示每個溫度傳感器節(jié)點的溫度信息。系統(tǒng)框圖如圖1所示。每一個傳感器節(jié)點周期性的將溫度數(shù)據(jù)通過無線收發(fā)模塊發(fā)送到協(xié)調(diào)器,最終顯示于監(jiān)測中心計算機(jī)。圖1 系統(tǒng)總體結(jié)構(gòu)圖無線傳感器網(wǎng)絡(luò)下位機(jī)設(shè)計主要分為硬件設(shè)計和軟件設(shè)計,硬件方面是以CC2530為主要器件,CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的一個真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總的材料成本建立強大的網(wǎng)絡(luò)節(jié)點。CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8

8、-KB RAM 和許多其它強大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256KB 的閃存。CC2530 具有不同的運行模式,使得它尤其適應(yīng)超低功耗要求的系統(tǒng)。運行模式之間的轉(zhuǎn)換時間短進(jìn)一步確保了低能源消耗。軟件部分采用Zigbee協(xié)議棧,完成無線網(wǎng)絡(luò)的網(wǎng)絡(luò)連接和無線網(wǎng)絡(luò)數(shù)據(jù)傳輸交換。ZigBee協(xié)議依據(jù) IEEE 802.15.4標(biāo)準(zhǔn),在數(shù)千個微小的傳感器之間相互協(xié)調(diào)實現(xiàn)通信。這些傳感器只需要很少的能量,以接力的方式通過無線電波將溫度數(shù)據(jù)從一個傳感器傳到另一個傳感器,然后傳到適配器最后傳到電腦端。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è)計任務(wù)主要任務(wù)是分析CC2530協(xié)調(diào)器串口傳輸?shù)臏囟葦?shù)據(jù)格式,通過VB編程實現(xiàn)的數(shù)據(jù)庫寫入、讀出處理,實時對溫度進(jìn)行圖形顯示,同時設(shè)置溫度報警范圍,可以進(jìn)行報警事件處理等。1 無線傳感器網(wǎng)絡(luò)上位機(jī)系統(tǒng)概要設(shè)計1.1 系統(tǒng)功能簡要描述1)

10、系統(tǒng)具有良好的人機(jī)界面。2) 自然美觀的圖形化溫度顯示,可以一目了然的監(jiān)測所有節(jié)點溫度。3) 方便的數(shù)據(jù)添加和修改功能。4) 定時更新數(shù)據(jù)庫,定時更新溫度數(shù)據(jù),人性化的溫度監(jiān)測。5) 聲光報警功能,最大限度的告訴監(jiān)控人員節(jié)點狀態(tài)。6) 環(huán)境模擬仿真,在沒有下位機(jī)時也可體驗溫度檢測功能。7) 串行口數(shù)據(jù)自動接收,自動分析,自動處理,無需人工干預(yù)。8) 數(shù)據(jù)備份和清理功能。1.2 系統(tǒng)模塊功能描述整個上位機(jī)系統(tǒng)由許多窗體組成,它包括出窗體main.frm、節(jié)點管理窗體net_creat.frm、節(jié)點信息設(shè)置窗體net_setup.frm、報警管理窗體alarm.frm。具體窗體信息見表1.1。表1

11、.1統(tǒng)功能描述序號功能名稱窗體名稱優(yōu)先級簡要描述1無線傳感器網(wǎng)絡(luò)監(jiān)測系統(tǒng)Main.frm高串行口設(shè)置,和溫度的圖形顯示2節(jié)點管理Net_creat.frm中新建節(jié)點,刪除節(jié)點3節(jié)點信息設(shè)置Net_setup.frm中節(jié)點報警溫度設(shè)置,更新時間設(shè)置4報警管理Alarm_m.frm高顯示報警節(jié)點,報警屏蔽等1.3 系統(tǒng)設(shè)計的上位機(jī)、下位機(jī)的連接無線傳感器網(wǎng)絡(luò)上位機(jī)通過串行線與下位機(jī)連接,按照串行通信協(xié)議發(fā)送、接收數(shù)據(jù),串行通信發(fā)送的數(shù)據(jù)幀結(jié)構(gòu)如表1.2。數(shù)據(jù)幀由“:”開始,表示一個網(wǎng)絡(luò)節(jié)點數(shù)據(jù)的開始,其次是網(wǎng)絡(luò)節(jié)點ID,用來標(biāo)識檢測的節(jié)點通道號,然后是網(wǎng)絡(luò)節(jié)點溫度,最后“。”上位機(jī)一但接收到該字符

12、,則立即進(jìn)入事件處理,首先分析發(fā)送過來的字符數(shù)據(jù),分別提取節(jié)點ID號,節(jié)點溫度,然后在數(shù)據(jù)庫中搜索對應(yīng)的網(wǎng)絡(luò)節(jié)點ID字段,如果搜索到成功,則立即更新節(jié)點溫度,如果搜索失敗,返回為空,不更新數(shù)據(jù)庫。表1.2 數(shù)據(jù)幀格式8位數(shù)據(jù)起始標(biāo)志網(wǎng)絡(luò)節(jié)點ID號節(jié)點溫度8位數(shù)據(jù)結(jié)束標(biāo)識當(dāng)下位機(jī)增加網(wǎng)絡(luò)節(jié)點時,必須在上位機(jī)端對應(yīng)添加網(wǎng)絡(luò)節(jié)點,并按照實際網(wǎng)絡(luò)節(jié)點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ù)庫設(shè)計本設(shè)計主要采用微軟公司Office Access 2003數(shù)據(jù)庫,比起SQL此數(shù)據(jù)庫功能稍稍遜色,但Access 2003數(shù)據(jù)庫操作簡單,屬于Office家族,基于它的程序開發(fā)較為快捷,它具有很好的兼容性,拓展性,受到許多VB程序員們青睞。1.4.1 數(shù)據(jù)庫表的創(chuàng)建首先打開Office Access 2003,點擊新建,這時右

16、邊會出現(xiàn)你所要新建的對象,如圖1.3。圖1.3數(shù)據(jù)庫窗創(chuàng)建界面進(jìn)入之后如圖1.4。此時你可以選擇使用設(shè)計器創(chuàng)建表,使用向?qū)?chuàng)建表,通過輸入數(shù)據(jù)創(chuàng)建表。此時選擇使用設(shè)計器創(chuàng)建表。圖1.4 數(shù)據(jù)庫創(chuàng)建向?qū)Ы缑孢x擇使用設(shè)計器進(jìn)入數(shù)據(jù)表設(shè)計,設(shè)置字段名稱以及字段存儲類型。定義主鍵,數(shù)據(jù)表設(shè)計界面如圖1.5。圖1.5 數(shù)據(jù)表設(shè)計界面設(shè)置好所有節(jié)點字段名稱,設(shè)置的節(jié)點名稱要與你的數(shù)據(jù)庫信息有關(guān),以便于方便調(diào)用。設(shè)置完后可以向數(shù)據(jù)表中添加新數(shù)據(jù),具體新數(shù)據(jù)錄入如圖1.6。圖 1.6 新數(shù)據(jù)錄入1.4.2 數(shù)據(jù)庫表表1.3 數(shù)據(jù)庫表介紹編號數(shù)據(jù)表名稱描述功能說明1網(wǎng)絡(luò)節(jié)點信息表網(wǎng)絡(luò)節(jié)點信息主要用于所有網(wǎng)絡(luò)節(jié)點

17、信息存儲,比如節(jié)點溫度,節(jié)點ID等。2節(jié)點出廠信息表網(wǎng)絡(luò)節(jié)點初始值信息主要用于新建網(wǎng)絡(luò)節(jié)點時的初始信息。3管理員信息表管理員登陸信息主要用于管理員登陸1.4.3 數(shù)據(jù)庫表設(shè)計說明1) 網(wǎng)絡(luò)節(jié)點信息表(Noteinformation)表1.4 網(wǎng)絡(luò)節(jié)點信息編號字段名稱字段代碼字段類型是否為空是否主鍵1序號Num自動編號NY2節(jié)點IDNid文本YN3節(jié)點狀態(tài)Nstate文本YN4節(jié)點名稱Nname文本YN5節(jié)點地址Naddress文本YN6節(jié)點溫度Ntemp數(shù)字YN7一級報警值Falarm數(shù)字YN8二級報警值Salarm數(shù)字YN9單位Danwei文本YN10更新時間Updatetime數(shù)字YN11

18、節(jié)點類型Nstyle文本YN2) 管理員信息表(Administrator)表1.5 管理員信息編號字段名稱字段代碼字段類型是否為空是否主鍵1管理員IDAdministrator文本NN2管理員密碼Secret文本NN3) 節(jié)點出廠信息表(Notedefault)表1.6 節(jié)點出廠信息編號字段名稱字段代碼字段類型是否為空是否主鍵1節(jié)點溫度Ntemp數(shù)字YN2一級報警值Falarm數(shù)字YN3二級報警值Salarm數(shù)字YN4單位Danwei文本YN5更新時間Updatetime數(shù)字YN6節(jié)點類型Nstyle文本YN1.4.4 數(shù)據(jù)庫連接設(shè)計Visual Basic 6.0中的ADODC1控件擁有強

19、大的數(shù)據(jù)庫連接功能,在窗體中添加該控件后,調(diào)用如下函數(shù),即可實現(xiàn)數(shù)據(jù)庫連接。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ù)庫連接成功后,系統(tǒng)

20、軟件就可以訪問數(shù)據(jù)庫了,但是還不能調(diào)用、修改、更新數(shù)據(jù)庫中的數(shù)據(jù)表,必須建立記錄集,建立記錄集的函數(shù)如下,記錄集與數(shù)據(jù)庫表連接成功后,就可以修改數(shù)據(jù)庫表中的數(shù)據(jù)了。Public Sub getrs()sql = select * from basicrs.Open sql, con, adOpenDynamic, adLockPessimisticEnd SubPublic Sub2 無線傳感器網(wǎng)絡(luò)(上位機(jī))詳細(xì)設(shè)計無線傳感器網(wǎng)絡(luò)(上位機(jī))主要實現(xiàn)人機(jī)對話功能,設(shè)計要求人性化,可視化,圖形化。上位機(jī)通過一根串行通信線與下位機(jī)連接,下位機(jī)定時向上位機(jī)發(fā)送一定格式的數(shù)據(jù)幀,數(shù)據(jù)幀包含節(jié)點ID,節(jié)點

21、溫度等信息,上位機(jī)接收到數(shù)據(jù)后首先存入數(shù)據(jù)庫,然后更新連接數(shù)據(jù)庫,圖形化、圖表化顯示節(jié)點信息。主程序流程圖如圖2.1。圖2.1 主數(shù)據(jù)流圖2.1 無線傳感器網(wǎng)絡(luò)溫度監(jiān)測系統(tǒng)(main.frm)功能描述:可視化的操作界面,主要由串行口設(shè)置模塊、數(shù)據(jù)庫連接模塊、圖形顯示模塊、報警模塊組成,管理員可以使用串行口設(shè)置模塊設(shè)置串行端口號,串行端口傳輸速率,是否校驗,以及是否有停止位。在串行通信前這個模塊完成所有串行口初始化工作,管理員設(shè)置完串行口后,打開串行口即可實現(xiàn)串行通信。數(shù)據(jù)庫連接模塊完成與Access 2003的數(shù)據(jù)庫的連接,連接完成后,顯示連接成功,連接成功后軟件自動初始化,將數(shù)據(jù)庫中所有網(wǎng)絡(luò)

22、節(jié)點信息用DataGrid顯示出來,管理員可以一目了然的看到所有網(wǎng)絡(luò)節(jié)點信息,并可以清楚知道是否有節(jié)點處于報警狀態(tài)。圖形顯示模塊的功能主要是實時顯示節(jié)點溫度,使用人性化、可視化的設(shè)計,用簡單的條形圖就可以監(jiān)測所有節(jié)點,避免龐大的數(shù)據(jù)表查看,讓監(jiān)控過程更為輕松。報警模塊采用聲光報警,當(dāng)有節(jié)點溫度操作設(shè)置的報警值時,報警指示燈不斷閃爍,并發(fā)出報警聲音,不斷告知有節(jié)點溫度超標(biāo)。無線傳感器網(wǎng)絡(luò)界面如圖2.2所示。圖2.2 無線傳感器網(wǎng)絡(luò)溫度監(jiān)測中心無線傳感器網(wǎng)絡(luò)溫度監(jiān)測中心是整個軟件的主界面,它承載著數(shù)據(jù)庫連接,記錄集建立,串口初始化,以及圖形控件的初始化等,運行軟件后,系統(tǒng)首先初始化串行口,然后等待

23、用戶建網(wǎng),當(dāng)建網(wǎng)成功后,數(shù)據(jù)庫會連接成功,Datagrid與記錄集連接,并顯示記錄集所有信息。實現(xiàn)初始化的關(guān)鍵代碼如下:Public Sub k_int()-數(shù)據(jù)庫記錄集連接-Call getconCall getrsSet DataGrid1.DataSource = rscb2.ListIndex = 0cb3.ListIndex = 0cb4.ListIndex = 0cb5.ListIndex = 0-串口初始化- MSCON.CommPort = 1 設(shè)置通信端口號為COM1 MSCON.Settings = 38400,n,8,1 設(shè)置串口參數(shù),波特率9600 MSCON.Inpu

24、tMode = 0 接收文本型數(shù)據(jù) MSCON.RThreshold = 1 接收到一個字符就產(chǎn)生oncomm事件 MSCON.PortOpen = True-Datagrid 初始化-DataGrid1.MarqueeStyle = dbgHighlightRowDataGrid1.RefreshDataGrid1.Columns(0).Caption = 序號DataGrid1.Columns(1).Caption = 節(jié)點IDDataGrid1.Columns(2).Caption = 節(jié)點狀態(tài)DataGrid1.Columns(3).Caption = 節(jié)點名稱DataGrid1.Co

25、lumns(4).Caption = 節(jié)點地址DataGrid1.Columns(5).Caption = 節(jié)點溫度DataGrid1.Columns(6).Caption = 一級報警值DataGrid1.Columns(7).Caption = 二級報警值DataGrid1.Columns(8).Caption = 單位DataGrid1.Columns(9).Caption = 更新時間DataGrid1.Columns(10).Caption = 節(jié)點類型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è)置不能選中整個系列MSChart1.RowCount = 15 設(shè)置行共15行MSChart1.ColumnCount = 1 設(shè)置列1列TT.Interval = rs.Fields(updatetime)End Sub2.2 節(jié)點管理(net_creat.frm)功能描述:可視化界面,用戶可以管理節(jié)點基本信息,包括節(jié)點ID,節(jié)點名稱,節(jié)點狀態(tài),節(jié)點地址,節(jié)點溫度,節(jié)點

28、報警值,節(jié)點溫度單位,更新時間等,每個節(jié)點的信息清晰、完整,方便管理員對每個節(jié)點的管理,同時管理員可以進(jìn)行添加節(jié)點,刪除節(jié)點等操作。節(jié)點管理界面如圖2.3所示。圖2.3 節(jié)點管理節(jié)點管理的核心功能是實現(xiàn)數(shù)據(jù)庫記錄集內(nèi)數(shù)據(jù)的新建和刪除,并及時更新數(shù)據(jù)庫,在主界面顯示出來。新建記錄集的時候系統(tǒng)首先自動由出廠設(shè)置預(yù)設(shè)網(wǎng)絡(luò)節(jié)點初始信息,用戶也可以根據(jù)自己的需求更改。核心代碼實現(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é)點信息設(shè)置(net_setup.frm)功能描述:可視化界面,包括一級報警值設(shè)置,二級報警值設(shè)置,更新時間設(shè)置,管理員可以通過主界面右鍵進(jìn)入,也可以通過菜單選項進(jìn)入。管理員可以根據(jù)實際需求設(shè)置每個節(jié)點的報警值,方便對每個節(jié)點特殊管理,使監(jiān)控更實用,更具有廣闊的監(jiān)控范圍。節(jié)點設(shè)置界面如圖2.4所示。圖2.4 節(jié)點信息設(shè)置節(jié)點信息設(shè)置主要實現(xiàn)數(shù)據(jù)庫更新數(shù)據(jù)功能,包括更新一級報警值,二級報警值和更新時間。實現(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 報警管理(alarm.frm)功能描述:可視化界面,管理員可以查看所有溫度超標(biāo)的節(jié)點信息,包括節(jié)點ID,節(jié)點溫度,一級報警值,二級報警值,和列表顯示報警節(jié)點信息,人性化的設(shè)計,方便管理員對報警節(jié)點統(tǒng)一管理,同時管理員可以對報警節(jié)點報警屏蔽,報警值重新設(shè)置等操作。報警管理界面如圖2.5所示。圖2.5 報警管理報警管理窗體能搜索所有報警中的字段并列表顯示出來,實現(xiàn)核心

31、是搜索功能。核心代碼如下:sql = select * from basic where nstate like %報警%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ī)的情況下測試軟件的功能,數(shù)據(jù)幀主要包括數(shù)據(jù)幀起始標(biāo)志,節(jié)點ID,節(jié)點溫度,數(shù)據(jù)幀結(jié)束標(biāo)志。管理員可以自行設(shè)置節(jié)點ID,節(jié)點溫度,并通過復(fù)選框按鈕選擇是否多通道發(fā)送字符,為更好的人機(jī)結(jié)合,管理員可查看發(fā)送的字符串?dāng)?shù)據(jù),為調(diào)試和測試軟件功能提供了強大的支持,模擬開始后,主窗體會顯示模擬字樣,操作非常簡單。模擬參數(shù)設(shè)置界面如圖2.6所示。圖2.6 軟件模擬軟件模擬的實現(xiàn)主要是定時向串行口發(fā)送數(shù)據(jù)幀格式的數(shù)據(jù),以觸發(fā)主界面的數(shù)據(jù)接收事件,即使更新數(shù)據(jù)信息。定時功能用定時器完成。核心代碼如下

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é)點測試類型,選擇好溫度檢測類型后,系統(tǒng)會自動根據(jù)測試類型初始化一級報警值和二級報警值,如果符合要求確定表示設(shè)置完成,如果需要更改立即更改,出廠設(shè)置參數(shù)設(shè)置后,在新建網(wǎng)絡(luò)節(jié)點時的一級報警值、二級報警值和節(jié)點類型都和出廠設(shè)置的信息相同,這樣非常

35、方便的對新網(wǎng)絡(luò)節(jié)點的統(tǒng)一管理,功能更為完善和強大。出廠設(shè)置界面如圖2.7所示。圖2.7 出廠設(shè)置出廠設(shè)置的核心處理是更改數(shù)據(jù)庫字段內(nèi)容,操作比較簡單:rs1.Fields(falarm) = Text1.Textrs1.Fields(salarm) = Text2.Textrs1.Fields(nstyle) = Combo1.Textrs1.Update3 軟件測試本設(shè)計是基于CC2530無線傳感器網(wǎng)絡(luò)(上位機(jī))設(shè)計,配合下位機(jī)將各個網(wǎng)絡(luò)節(jié)點溫度顯示出來,并有報警功能。為提高程序開發(fā)效率以及能方便的調(diào)試,軟件還具有模擬功能,在沒有下位機(jī)的情況下,只需要將串行通信口的發(fā)送、接收引腳短接,即可實

36、現(xiàn)軟件仿真功能。軟件仿真窗體將定時從串行口的2引腳(數(shù)據(jù)發(fā)送引腳TXD)發(fā)送數(shù)據(jù)幀,因為2、3引腳短接,數(shù)據(jù)直接發(fā)送到3(數(shù)據(jù)接收引腳RXD)引腳,并傳回電腦端,這時主窗體的數(shù)據(jù)字符處理模塊就正常運行,進(jìn)行網(wǎng)絡(luò)節(jié)點溫度實時顯示和處理功能了,同時,管理員還可以改變模擬節(jié)點的節(jié)點ID和溫度,模擬軟件的實時顯示溫度,并在主窗體上顯示“模擬中”字樣,表示現(xiàn)在處于模擬狀態(tài),停止模擬后,該字樣消失。3.1 測試內(nèi)容1) 軟件是否初始化正常,數(shù)據(jù)庫連接是否成功,退出及關(guān)閉時是否無任何錯誤。2) 主界面良好,是否能成功建網(wǎng)并提示,圖形顯示是否正常并能定時更新,管理員是否根據(jù)自己需求改變串行端口號、傳輸速率和是

37、否校驗等。3) 數(shù)據(jù)庫可維護(hù)性好,數(shù)據(jù)的錄入、刪除及更改是否能順利完成,并能實現(xiàn)動態(tài)更新。4) 串行口數(shù)據(jù)接收是否正常,能正常、準(zhǔn)確分析接收的數(shù)據(jù),并且數(shù)據(jù)庫字段是否能搜索實時更新。5) 軟件模擬功能是否正常實現(xiàn),演示功能是否強大。6) 與下位機(jī)連接是否成功,并能成功傳輸更新數(shù)據(jù)。7) 測試步驟3.1.1 軟件模擬測試首先進(jìn)入主界面(圖3.1),這時,窗體界面基本初始化已經(jīng)完成,但并沒有完成網(wǎng)絡(luò)節(jié)點注冊,選擇菜單軟件模擬 ,進(jìn)入軟件模擬窗體(圖3.2)。圖3.1 主界面圖 圖3.2 軟件模擬界面點擊開始模擬和開始建網(wǎng),建網(wǎng)成功后,圖形化顯示初始化并連接數(shù)據(jù)庫,開定時更新數(shù)據(jù),通過模擬軟件窗體改

38、變節(jié)點溫度,網(wǎng)路節(jié)點列表和條形圖實時顯示溫度信息(圖3.3)。管理員可以點擊鼠標(biāo)右鍵,打開彈出菜單,選擇要進(jìn)行的操作,可以重新設(shè)置節(jié)點報警值或進(jìn)入報警處理窗體(圖3.4),進(jìn)行報警屏蔽等操作。 圖3.4報警屏蔽界面圖圖3.3 程序主界面圖 進(jìn)入節(jié)點管理窗體(圖3.5),可以新建節(jié)點,刪除節(jié)點,軟件會自動給新節(jié)點分配網(wǎng)絡(luò)地址和網(wǎng)絡(luò)ID,并按照出廠設(shè)置內(nèi)容初始化網(wǎng)絡(luò)節(jié)點,點擊保存后,新建節(jié)點成功,系統(tǒng)立刻更新數(shù)據(jù),主界面記錄會立刻添加管理員新建的數(shù)據(jù)(圖3.6),并開始實時顯示。圖3.6 新建節(jié)點后的主界面圖3.5 節(jié)點管理 3.1.2 無線傳感器網(wǎng)絡(luò)上、下位機(jī)實現(xiàn)測試與下位機(jī)連接后進(jìn)入上位機(jī)下位

39、機(jī)連接測試,因為下位機(jī)僅有一個網(wǎng)絡(luò)節(jié)點,所以軟件只監(jiān)測一個節(jié)點溫度,測試步驟如下進(jìn)入主界面(如圖3.1)后點擊開始建網(wǎng),建網(wǎng)成功后(如圖3.6),圖形化顯示初始化并連接數(shù)據(jù)庫,此時,數(shù)據(jù)庫連接成功,軟件已經(jīng)開始定時接收串行口發(fā)送過來的數(shù)據(jù),已經(jīng)開始定時更新數(shù)據(jù)庫了,此時我在程序中加一條代碼:msgbox net_tem, 這個代碼的意思是在每次接收到串行數(shù)據(jù)發(fā)送的數(shù)據(jù)后,待分析完字符數(shù)據(jù),提取net_tem后,通過msgbox告訴我是否溫度檢測成功,數(shù)據(jù)是否成功收到,如果消息盒子的報告是空的,則表示數(shù)據(jù)接收失敗或者沒受到數(shù)據(jù),如果消息盒子報告彈出溫度正常,則表示成功接收并更新了數(shù)據(jù)庫。具體代碼如下cu_msg

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論