2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p> 題目基于CC2430的無線傳感器網絡研究</p><p>?。ㄉ衔粰C部分)</p><p><b>  摘 要</b></p><p>  無線傳感器網絡是由大量無處不在的微小傳感器節(jié)點組成,它能根據環(huán)境自主完成指定任務的自治監(jiān)控功能,是對21世紀產生巨大影響

2、力的技術之一。</p><p>  本設計是將無線傳感器網絡應用于溫度監(jiān)測方面。軟件系統(tǒng)前臺應用Visual Basic 6.0編程開發(fā)環(huán)境。采用VB的ADODC控件完成數據庫連接,MSchart控件實現節(jié)點溫度的條形圖顯示,MScomm控件完成串行數據接收。軟件系統(tǒng)后臺采用Microsoft Office Access 2003 數據庫,實現節(jié)點信息的存儲。采用定時器定時讀取數據庫,完成節(jié)點信息的實時更新。通過

3、串行口與下位機連接,接收適配器發(fā)送過來的字符數據,實現無線傳感器網絡溫度監(jiān)測功能。</p><p>  關鍵詞: 無線傳感器網絡;Access 2003數據庫;串行通信</p><p><b>  Abstract</b></p><p>  Wireless Sensor Networks is consisted of a large nu

4、mber of tiny sensor nodes which is randomly deployed in unattended monitoring regional. It can complete the assigned task of environmental self-monitoring network system. Furthermore it is the one of the great impact of

5、competitive technologies which is important to the 21st century.</p><p>  This design is that wireless sensor networks will be used in monitoring the temperature. The front Software system use Visual Basic 6

6、.0 programming development environment, make use of VB’s ADODC to complete database connection control, use MSchart control box to achieve the node’s bar graph displaying, otherwise the MScomm control box complete seri

7、al data receiving ,Background software system use Microsoft Office Access 2003 databases to achieve the node information storage. Using the timer t</p><p>  Keywords: Wireless Sensor Networks; Access Databas

8、e; Serial Communication</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  1緒論1</b></p><p>  

9、1.1課題背景與研究意義1</p><p>  1.2無線傳感器網絡簡介1</p><p>  1.3設計任務4</p><p>  2無線傳感器網絡上位機系統(tǒng)概要設計5</p><p>  2.1系統(tǒng)功能簡要描述5</p><p>  2.2系統(tǒng)模塊功能描述5</p><p

10、>  2.3系統(tǒng)設計的上位機、下位機的連接5</p><p>  2.4數據庫設計7</p><p>  2.4.1數據庫表的創(chuàng)建7</p><p>  2.4.2數據庫表9</p><p>  2.4.3數據庫表設計說明9</p><p>  2.4.4數據庫連接設計10</p&g

11、t;<p>  2.5計算機硬件要求及開發(fā)環(huán)境10</p><p>  2.5.1計算機的硬件建議配置10</p><p>  2.5.2開發(fā)工具的選擇11</p><p>  2.5.3開發(fā)工具概述11</p><p>  3無線傳感器網絡(上位機)詳細設計12</p><p>  

12、3.1無線傳感器網絡溫度監(jiān)測系統(tǒng)(main.frm)12</p><p>  3.2節(jié)點管理(net_creat.frm)15</p><p>  3.3節(jié)點信息設置(net_setup.frm)16</p><p>  3.4報警管理(alarm.frm)16</p><p>  3.5軟件模擬(moni.frm)17&

13、lt;/p><p>  3.6出廠設置(default_setup)18</p><p><b>  4軟件測試20</b></p><p>  4.1測試內容20</p><p>  4.2測試步驟20</p><p>  4.2.1軟件模擬測試20</p><

14、;p>  4.2.2無線傳感器網絡上、下位機實現測試21</p><p>  4.3測試結果22</p><p><b>  5結 論24</b></p><p><b>  謝 辭25</b></p><p><b>  參考文獻26</b></p

15、><p><b>  附 錄27</b></p><p><b>  緒論</b></p><p><b>  課題背景與研究意義</b></p><p>  人類進入21世紀以來,微電子機械系統(tǒng)、計算機、通信、自動控制和人工智能等學科的飛速發(fā)展孕育了一種新型的測控網絡—無線傳感

16、器網絡 (wireless sensor network,WSN)。無線傳感器網絡是由大量無處不在的具有通信與計算機能力的微小傳感器節(jié)點,密集布設在無人值守的監(jiān)控區(qū)域而構成的,能夠根據環(huán)境自主完成指定任務的“智能”自治監(jiān)控網絡系統(tǒng)。無線傳感器網絡是一種超大規(guī)模、無人值守、資源嚴格受限的全分布系統(tǒng),采用多跳對等的通信方式,其網絡拓撲動態(tài)變化,具有自組織、自治、自適應等智能屬性。</p><p>  無線傳感器網絡的

17、出現引起了全世界范圍的廣泛關注。無線傳感器網絡技術的研究起源于20世紀70年代,最早應用于軍事領域,在卡耐基一梅隆大學成立了新一代分布式傳感器網絡工作組。此后,DA聯合美國自然科學基金委員會設立了多項有關無線傳感器網絡的研究項目。我國近兩年也以多種形式支持無線傳感器網絡的研究。這些研究推動了以網絡技術為核心的新軍事革命,誕生了網絡中心戰(zhàn)的思想和體系。目前,無線傳感器網絡的應用己由軍事領域擴展到其他許多領域,如災難預警與救助、家庭健康監(jiān)測

18、、空間探索等傳統(tǒng)方法無法完成的任務,成為一種“無所不在”的傳感技術。</p><p>  本課題的研究目的是設計一種基于ZigBee技術的無線傳感器網絡系統(tǒng),進而將其應用于溫度系統(tǒng)的監(jiān)控方面。因為這種監(jiān)控網絡成本較低、無需布線,多個傳感器節(jié)點布置于各種監(jiān)控環(huán)境。企業(yè)設備監(jiān)測系統(tǒng)一般需要鋪設大量的電纜、網線、光纖構成傳輸網絡,設備建設和維護成本很高,而無線傳感器網絡技術是一種低功耗、自組織的短距離技術,可以實現監(jiān)測

19、、感知和采集網絡分布區(qū)域內的各種環(huán)境對象數據。傳感器網絡配合專家系統(tǒng)就可以實現數據的采集和分析,從而降低人工維護成本和設備成本?;赯igBee的傳感器網絡技術如果配合有線網絡(如以太網),可以實現整個工廠范圍內機組的實時監(jiān)控;配合無線蜂窩網絡技術可以實現手機對溫度的實時監(jiān)測。因此無線傳感器網絡的研究具有重要的應用價值。</p><p><b>  無線傳感器網絡簡介</b></p&g

20、t;<p>  整個傳感器網絡由無線溫度傳感器節(jié)點(溫度數據采集終端)、協調器和監(jiān)測中心計算機組成。無線溫度傳感器節(jié)點分布于需要測量的現場,執(zhí)行溫度數據的采集、預處理、發(fā)送等工作。協調器負責接收節(jié)點傳送過來的數據,將無線網絡協議的數據轉化為以太網絡協議的數據傳送到監(jiān)測中心計算機。監(jiān)測中心計算機通過與協調器間的通信,實時的顯示每個溫度傳感器節(jié)點的溫度信息。系統(tǒng)框圖如圖1.1所示。每一個傳感器節(jié)點周期性的將溫度數據通過無線收發(fā)

21、模塊發(fā)送到協調器,最終顯示于監(jiān)測中心計算機。</p><p>  圖1.1 系統(tǒng)總體結構圖</p><p>  無線傳感器網絡下位機設計主要分為硬件設計和軟件設計,硬件方面是以CC2430為主要器件,系統(tǒng)功能引腳圖如圖1.2。CC2430內部包含80C51的內核、無線收發(fā)模塊,一個CC2340即可完成無線接收或發(fā)送功能,功能非常強大。</p><p>  CC24

22、30是TI公司推出的全新概念新一代ZigBee無線單片機系列芯片。是一款真正符合IEEE802.15.4標準的片上ZigBee產品,采用7 mmx7 mln QLP48封裝。它包括RF收發(fā)器,集成了加強型8051MCU。CC2430工作在2.4GHz頻段,靈敏度高、最大輸出為24 dBm、最大傳送速率為250 kb/s,其外圍元件數目很少。使用一個非平衡天線,連接非平衡變壓器使天線性能更好。電路中的非平衡變壓器由電容C12和電感L1、L

23、2、L3以及1個PCB微波傳輸線組成,整個結構滿足RF輸入/輸出匹配電阻(50 Q)的要求。值得注意的是。為了使系統(tǒng)達到有效復位,應使RESET-N端保持10 ms的低電平。當復位結束后立即對該器件進行初始化時。很容易發(fā)生錯誤。所以,進入O000H地址后。應首先執(zhí)行1 ms-10 ms的軟件延時。然后再進行初始化。</p><p>  圖1.2 CC2430及外圍器件</p><p> 

24、 溫度采集使用數字式溫度傳感器DS18B20,DS18B20具有3引腳PR-35小體積封裝形式,溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉換精度,測溫分辨率可達0.0625℃,測出的溫度用符號擴展的16位數字量方式串行輸出, CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。DS18B20采集溫度數據后,處理為數字信號發(fā)送給CC2430內部控制器運算器,由它進行溫

25、度處理并傳送給無線發(fā)送模塊。</p><p>  與上位機的串行通信還要求下位機有串行通信模塊,串行通信使用RS232串行接口,該接口技術成熟,結構簡單,只需3條普通導線就可以進行雙向通信,實現非常方便。</p><p>  軟件部分采用Zigbee協議棧,完成無線網絡的網絡連接和無線網絡數據傳輸交換。ZigBee協議依據 IEEE 802.15.4標準,在數千個微小的傳感器之間相互協調實

26、現通信。這些傳感器只需要很少的能量,以接力的方式通過無線電波將溫度數據從一個傳感器傳到另一個傳感器,然后傳到適配器最后傳到電腦端。</p><p>  ZigBee協議是由IEEE802.15.4協議標準定義的PHY層和MAC層與ZigBee聯盟所制定的網絡層和應用層所構成。其工作頻率在2.4GHz、9l5MHz和868MHz,最高傳輸速率為250kbps。IEEE802.15.4協議MAC層采用CSMA-CA機

27、制來控制信道接入,主要負責傳輸信標幀、同步以及提供可信賴的傳輸機制。ZigBee協議棧如圖1.3。</p><p>  圖1.3 ZigBee協議架構</p><p><b>  設計任務</b></p><p>  主要任務是分析CC2430協調器串口傳輸的溫度數據格式,通過VB編程實現的數據庫寫入、讀出處理,實時對溫度進行圖形顯示,同時設置

28、溫度報警范圍,可以進行報警事件處理等。</p><p>  無線傳感器網絡上位機系統(tǒng)概要設計</p><p><b>  系統(tǒng)功能簡要描述</b></p><p>  系統(tǒng)具有良好的人機界面。</p><p>  自然美觀的圖形化溫度顯示,可以一目了然的監(jiān)測所有節(jié)點溫度。</p><p>  方便

29、的數據添加和修改功能。</p><p>  定時更新數據庫,定時更新溫度數據,人性化的溫度監(jiān)測。</p><p>  聲光報警功能,最大限度的告訴監(jiān)控人員節(jié)點狀態(tài)。</p><p>  環(huán)境模擬仿真,在沒有下位機時也可體驗溫度檢測功能。</p><p>  串行口數據自動接收,自動分析,自動處理,無需人工干預。</p><

30、p>  數據備份和清理功能。</p><p><b>  系統(tǒng)模塊功能描述</b></p><p>  整個上位機系統(tǒng)由許多窗體組成,它包括出窗體main.frm、節(jié)點管理窗體net_creat.frm、節(jié)點信息設置窗體net_setup.frm、報警管理窗體alarm.frm。具體窗體信息見表2.1。</p><p><b>

31、  表2.1統(tǒng)功能描述</b></p><p>  系統(tǒng)設計的上位機、下位機的連接</p><p>  無線傳感器網絡上位機通過串行線與下位機連接,按照串行通信協議發(fā)送、接收數據,串行通信發(fā)送的數據幀結構如表2.2。數據幀由“:”開始,表示一個網絡節(jié)點數據的開始,其次是網絡節(jié)點ID,用來標識檢測的節(jié)點通道號,然后是網絡節(jié)點溫度,最后“?!鄙衔粰C一但接收到該字符,則立即進入事件處

32、理,首先分析發(fā)送過來的字符數據,分別提取節(jié)點ID號,節(jié)點溫度,然后在數據庫中搜索對應的網絡節(jié)點ID字段,如果搜索到成功,則立即更新節(jié)點溫度,如果搜索失敗,返回為空,不更新數據庫。</p><p>  表2.2 數據幀格式</p><p>  當下位機增加網絡節(jié)點時,必須在上位機端對應添加網絡節(jié)點,并按照實際網絡節(jié)點ID添加。事件處理代碼見下:</p><p>  P

33、rivate Sub MSCON_OnComm()</p><p>  Dim my_end$</p><p>  Dim my_sql$</p><p>  Dim my_rs As New ADODB.Recordset</p><p>  Dim net_id$</p><p>  Dim net_tem$<

34、;/p><p>  Dim b As Integer</p><p>  Dim c As Integer</p><p>  With MSCON</p><p>  Select Case .CommEvent</p><p>  Case comEvReceive</p><p>  my_e

35、nd = .Input</p><p>  mcu_msg = mcu_msg & my_end</p><p>  Text2.Text = mcu_msg</p><p>  If InStr(my_end, ".") Then '收到結束標志</p><p>  '取用戶名,查詢,寫如記錄&

36、lt;/p><p>  c = InStrL(mcu_msg, ".")</p><p>  mcu_msg = Left(mcu_msg, c)</p><p>  b = InStrL(mcu_msg, ":")</p><p>  mcu_msg = Mid(mcu_msg, b + 1, c - b

37、 - 1)</p><p>  net_id = Left(mcu_msg, 4)</p><p>  net_tem = Right(mcu_msg, Len(mcu_msg) - 4)</p><p>  'MsgBox (net_id)</p><p>  my_sql = "select nid,ntemp from

38、 basic where nid='" & net_id & "'"</p><p>  my_rs.Open sql, con, adOpenDynamic, adLockPessimistic</p><p>  If my_rs.EOF Then <

39、;/p><p>  Else ‘寫入進出記錄</p><p>  Image2.Visible = True</p><p>  Image1.Visible = False</p><p>  Timer1.Enabled = False</p&

40、gt;<p>  Timer2.Enabled = False</p><p>  Call Add_temp(net_id, net_tem)</p><p><b>  End If</b></p><p>  my_rs.Close</p><p>  Set my_rs = Nothing</

41、p><p>  mcu_msg = ""</p><p><b>  End If</b></p><p>  End Select</p><p><b>  End With</b></p><p><b>  End Sub</b>

42、</p><p><b>  數據庫設計</b></p><p>  本設計主要采用微軟公司Office Access 2003數據庫,比起SQL此數據庫功能稍稍遜色,但Access 2003數據庫操作簡單,屬于Office家族,基于它的程序開發(fā)較為快捷,它具有很好的兼容性,拓展性,受到許多VB程序員們青睞。</p><p><b>

43、  數據庫表的創(chuàng)建</b></p><p>  首先打開Office Access 2003,點擊新建,這時右邊會出現你所要新建的對象,如圖2.3。</p><p>  圖2.3數據庫窗創(chuàng)建界面</p><p>  進入之后如圖2.4。此時你可以選擇使用設計器創(chuàng)建表,使用向導創(chuàng)建表,通過輸入數據創(chuàng)建表。此時選擇使用設計器創(chuàng)建表。</p>&

44、lt;p>  圖2.4 數據庫創(chuàng)建向導界面</p><p>  選擇使用設計器進入數據表設計,設置字段名稱以及字段存儲類型。定義主鍵,數據表設計界面如圖2.5。</p><p>  圖2.5 數據表設計界面</p><p>  設置好所有節(jié)點字段名稱,設置的節(jié)點名稱要與你的數據庫信息有關,以便于方便調用。設置完后可以向數據表中添加新數據,具體新數據錄入如圖2.

45、6。</p><p>  圖 2.6 新數據錄入</p><p><b>  數據庫表</b></p><p>  表2.3 數據庫表介紹</p><p><b>  數據庫表設計說明</b></p><p>  網絡節(jié)點信息表(Noteinformation)</p&

46、gt;<p>  表2.4 網絡節(jié)點信息</p><p>  管理員信息表(Administrator)</p><p>  表2.5 管理員信息</p><p>  節(jié)點出廠信息表(Notedefault)</p><p>  表2.6 節(jié)點出廠信息</p><p><b>  數據庫連接設計

47、</b></p><p>  Visual Basic 6.0中的ADODC1控件擁有強大的數據庫連接功能,在窗體中添加該控件后,調用如下函數,即可實現數據庫連接。</p><p>  Public Function getcon()</p><p>  appdisk = IIf(Right(App.Path, 1) = "\",

48、App.Path, App.Path & "\")</p><p>  con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & appdisk & "db1.mdb"</p>

49、<p><b>  con.Open</b></p><p>  con.CursorLocation = adUseClient</p><p>  End Function</p><p>  數據庫連接成功后,系統(tǒng)軟件就可以訪問數據庫了,但是還不能調用、修改、更新數據庫中的數據表,必須建立記錄集,建立記錄集的函數如下,記錄集

50、與數據庫表連接成功后,就可以修改數據庫表中的數據了。</p><p>  Public Sub getrs()</p><p>  sql = "select * from basic"</p><p>  rs.Open sql, con, adOpenDynamic, adLockPessimistic</p><p>

51、;<b>  End Sub</b></p><p>  Public Sub</p><p>  計算機硬件要求及開發(fā)環(huán)境</p><p>  計算機的硬件建議配置</p><p>  CPU 1.6GMHZ</p><p><b>  內存 512M</b>&l

52、t;/p><p><b>  硬盤 60G</b></p><p>  操作系統(tǒng) WINXP操作系統(tǒng)或更高</p><p><b>  開發(fā)工具的選擇</b></p><p>  本系統(tǒng)后臺采用Microsoft Office Access 2003數據庫,該數據庫操作簡單,功能強大,兼容性和拓展

53、性非常好,前臺采用Microsoft公司的Microsoft Visual Basic 6.0 作為主要的開發(fā)工具,它可以與Microsoft Office Access 2003 數據庫無縫連接。</p><p><b>  開發(fā)工具概述</b></p><p>  Visual Basic 6.0簡介</p><p>  微軟公司的Visu

54、al Basic 6.0是Windows應用程序開發(fā)工具,使目前非常廣泛的、易學易用的面向對象的開發(fā)工具。Visual Basic 6.0能自動產生界面設計代碼,編程人員不必編寫大量的程序代碼,只需要按照設計要求在窗口中的適當位置添加所需的各種部件,整個界面設計過程是直觀、可視的,設計界面與程序運行時實際顯示的界面一致,大大提高了程序設計的效率。Visual Basic 6.0還擁有以下幾個特點:</p><p>

55、;  支持面向對象的程序設計(OOP);</p><p><b>  采用事件驅動方式;</b></p><p>  提供對象的連接與嵌入(OLE)和訪問數據庫功能;</p><p>  Microsoft Office Access 2003簡介</p><p>  Microsoft Office Access 20

56、03是由微軟發(fā)布的關聯式數據庫管理系統(tǒng)。它結合了Microsoft Jet Database Engine和圖形用戶界面兩項特點,是Microsoft Office 2007的成員之一。</p><p>  ACCESS 2003 具有強大的數據資源能力和強大的業(yè)務支持,通過表格鏈接,您可以在Access 2003窗體、報表和數據訪問頁面中同時訪問來自多個數據庫的數據。它還能夠將來自其他Microsoft Acc

57、ess數據庫、Microsoft Excel電子表格、ODBC數據源、Microsoft SQL Server數據庫以及其他的數據庫資源的表格進行鏈接。</p><p>  ACCESS 2003是一個功能強大的后臺數據庫管理系統(tǒng),以其低費用、可伸縮性、可靠性和易用性等諸多方面的優(yōu)勢,被廣大人們所喜愛。</p><p>  無線傳感器網絡(上位機)詳細設計</p><p

58、>  無線傳感器網絡(上位機)主要實現人機對話功能,設計要求人性化,可視化,圖形化。上位機通過一根串行通信線與下位機連接,下位機定時向上位機發(fā)送一定格式的數據幀,數據幀包含節(jié)點ID,節(jié)點溫度等信息,上位機接收到數據后首先存入數據庫,然后更新連接數據庫,圖形化、圖表化顯示節(jié)點信息。主程序流程圖如圖3.1。</p><p>  圖3.1 主數據流圖</p><p>  無線傳感器網絡溫度

59、監(jiān)測系統(tǒng)(main.frm)</p><p>  功能描述:可視化的操作界面,主要由串行口設置模塊、數據庫連接模塊、圖形顯示模塊、報警模塊組成,管理員可以使用串行口設置模塊設置串行端口號,串行端口傳輸速率,是否校驗,以及是否有停止位。在串行通信前這個模塊完成所有串行口初始化工作,管理員設置完串行口后,打開串行口即可實現串行通信。</p><p>  數據庫連接模塊完成與Access 200

60、3的數據庫的連接,連接完成后,顯示連接成功,連接成功后軟件自動初始化,將數據庫中所有網絡節(jié)點信息用DataGrid顯示出來,管理員可以一目了然的看到所有網絡節(jié)點信息,并可以清楚知道是否有節(jié)點處于報警狀態(tài)。</p><p>  圖形顯示模塊的功能主要是實時顯示節(jié)點溫度,使用人性化、可視化的設計,用簡單的條形圖就可以監(jiān)測所有節(jié)點,避免龐大的數據表查看,讓監(jiān)控過程更為輕松。</p><p>  

61、報警模塊采用聲光報警,當有節(jié)點溫度操作設置的報警值時,報警指示燈不斷閃爍,并發(fā)出報警聲音,不斷告知有節(jié)點溫度超標。無線傳感器網絡界面如圖3.2所示。</p><p>  圖3.2 無線傳感器網絡溫度監(jiān)測中心</p><p>  無線傳感器網絡溫度監(jiān)測中心是整個軟件的主界面,它承載著數據庫連接,記錄集建立,串口初始化,以及圖形控件的初始化等,軟件流程圖見附錄圖3.8,運行軟件后,系統(tǒng)首先初始

62、化串行口,然后等待用戶建網,當建網成功后,數據庫會連接成功,Datagrid與記錄集連接,并顯示記錄集所有信息。實現初始化的關鍵代碼如下:</p><p>  Public Sub k_int()</p><p>  '--------------數據庫記錄集連接----------------------------'</p><p>  Call

63、 getcon</p><p>  Call getrs</p><p>  Set DataGrid1.DataSource = rs</p><p>  cb2.ListIndex = 0</p><p>  cb3.ListIndex = 0</p><p>  cb4.ListIndex = 0</p&g

64、t;<p>  cb5.ListIndex = 0</p><p>  '--------------串口初始化---------------------------------'</p><p>  MSCON.CommPort = 1 '設置通信端口號為COM1</p><p>  

65、MSCON.Settings = "38400,n,8,1" '設置串口參數,波特率9600</p><p>  MSCON.InputMode = 0 '接收文本型數據</p><p>  MSCON.RThreshold = 1 '接收到一個字符就產生oncomm

66、事件</p><p>  MSCON.PortOpen = True</p><p>  '------------Datagrid 初始化----------------------------------'</p><p>  DataGrid1.MarqueeStyle = dbgHighlightRow</p><p>

67、;  DataGrid1.Refresh</p><p>  DataGrid1.Columns(0).Caption = "序號"</p><p>  DataGrid1.Columns(1).Caption = "節(jié)點ID"</p><p>  DataGrid1.Columns(2).Caption = "節(jié)點

68、狀態(tài)"</p><p>  DataGrid1.Columns(3).Caption = "節(jié)點名稱"</p><p>  DataGrid1.Columns(4).Caption = "節(jié)點地址"</p><p>  DataGrid1.Columns(5).Caption = "節(jié)點溫度"&l

69、t;/p><p>  DataGrid1.Columns(6).Caption = "一級報警值"</p><p>  DataGrid1.Columns(7).Caption = "二級報警值"</p><p>  DataGrid1.Columns(8).Caption = "單位"</p>

70、<p>  DataGrid1.Columns(9).Caption = "更新時間"</p><p>  DataGrid1.Columns(10).Caption = "節(jié)點類型"</p><p>  DataGrid1.Columns(0).Width = 600</p><p>  Dim i As Inte

71、ger</p><p>  For i = 1 To 10</p><p>  DataGrid1.Columns(i).Width = 1000</p><p><b>  Next i</b></p><p>  DataGrid1.BorderStyle = dbgFixedSingle</p>&l

72、t;p>  '---------------text初始化----------------------------------'</p><p>  If rs.BOF = False And rs.EOF = False Then</p><p>  cb1.Text = rs.Fields("nid")</p><p>

73、  Text1(0).Text = rs.Fields("nname")</p><p>  Text1(1).Text = rs.Fields("ntemp")</p><p>  Text1(2).Text = Trim(rs.Fields("updatetime"))</p><p>  Text1(

74、3).Text = rs.Fields("falarm")</p><p>  Text1(4).Text = rs.Fields("salarm")</p><p>  Text1(5).Text = rs.Fields("danwei")</p><p><b>  End If</b&

75、gt;</p><p>  '--------------初始化MSchart---------------------------------'</p><p>  MSChart1.AllowSeriesSelection = False '設置不能選中整個系列</p><p>  MSChart1.RowCount = 15

76、 '設置行共15行</p><p>  MSChart1.ColumnCount = 1 '設置列1列</p><p>  TT.Interval = rs.Fields("updatetime")</p><p><b>  End Sub</b>

77、;</p><p>  節(jié)點管理(net_creat.frm)</p><p>  功能描述:可視化界面,用戶可以管理節(jié)點基本信息,包括節(jié)點ID,節(jié)點名稱,節(jié)點狀態(tài),節(jié)點地址,節(jié)點溫度,節(jié)點報警值,節(jié)點溫度單位,更新時間等,每個節(jié)點的信息清晰、完整,方便管理員對每個節(jié)點的管理,同時管理員可以進行添加節(jié)點,刪除節(jié)點等操作。節(jié)點管理界面如圖3.3所示。</p><p>

78、<b>  圖3.3 節(jié)點管理</b></p><p>  節(jié)點管理的核心功能是實現數據庫記錄集內數據的新建和刪除,并及時更新數據庫,在主界面顯示出來,軟件流程圖見附錄圖3.9。新建記錄集的時候系統(tǒng)首先自動由出廠設置預設網絡節(jié)點初始信息,用戶也可以根據自己的需求更改。核心代碼實現見下:</p><p><b>  rs.AddNew</b><

79、;/p><p>  For i = 0 To 8</p><p>  rs.Fields(i + 1) = Text1(i).Text</p><p><b>  Next i</b></p><p>  Call getrs1</p><p>  rs.Fields("nstyle&quo

80、t;) = rs1.Fields("nstyle")</p><p>  Call lostrs1</p><p><b>  rs.Update</b></p><p>  rs.MoveFirst</p><p>  Call k_int</p><p>  節(jié)點信息設置(

81、net_setup.frm)</p><p>  功能描述:可視化界面,包括一級報警值設置,二級報警值設置,更新時間設置,管理員可以通過主界面右鍵進入,也可以通過菜單選項進入。管理員可以根據實際需求設置每個節(jié)點的報警值,方便對每個節(jié)點特殊管理,使監(jiān)控更實用,更具有廣闊的監(jiān)控范圍。節(jié)點設置界面如圖3.4所示。</p><p>  圖3.4 節(jié)點信息設置</p><p>

82、;  節(jié)點信息設置主要實現數據庫更新數據功能,包括更新一級報警值,二級報警值和更新時間。軟件流程圖見附錄圖3.10。實現核心代碼見下:</p><p>  Private Sub Command1_Click()</p><p>  rs.Fields("falarm") = Text2.Text</p><p>  rs.Fields(&quo

83、t;salarm") = Text3.Text</p><p>  rs.Fields("updatetime") = List1.Text</p><p><b>  rs.Update</b></p><p><b>  rs.Resync</b></p><p>

84、<b>  Unload Me</b></p><p><b>  End Sub</b></p><p>  報警管理(alarm.frm)</p><p>  功能描述:可視化界面,管理員可以查看所有溫度超標的節(jié)點信息,包括節(jié)點ID,節(jié)點溫度,一級報警值,二級報警值,和列表顯示報警節(jié)點信息,人性化的設計,方便管理員對報

85、警節(jié)點統(tǒng)一管理,同時管理員可以對報警節(jié)點報警屏蔽,報警值重新設置等操作。報警管理界面如圖3.5所示。</p><p><b>  圖3.5 報警管理</b></p><p>  報警管理窗體能搜索所有報警中的字段并列表顯示出來,實現核心是搜索功能,軟件流程圖見附錄圖3.11。核心代碼如下:</p><p>  sql = "selec

86、t * from basic where nstate like '%報警%'"</p><p>  my_rs2.Open sql, con, 1, 1</p><p>  Set display.DataSource = my_rs2</p><p>  If my_rs2.BOF = False And my_rs2.EOF = Fa

87、lse Then</p><p>  Text1(0).Text = my_rs2.Fields("nid")</p><p>  Text1(1).Text = my_rs2.Fields("ntemp")</p><p>  Text1(2).Text = my_rs2.Fields("falarm")

88、</p><p>  Text1(3).Text = my_rs2.Fields("salarm")</p><p><b>  End If</b></p><p>  軟件模擬(moni.frm)</p><p><b>  功能描述:</b></p><

89、p>  可視化界面,管理員可以在沒有下位機的情況下測試軟件的功能,數據幀主要包括數據幀起始標志,節(jié)點ID,節(jié)點溫度,數據幀結束標志。管理員可以自行設置節(jié)點ID,節(jié)點溫度,并通過復選框按鈕選擇是否多通道發(fā)送字符,為更好的人機結合,管理員可查看發(fā)送的字符串數據,為調試和測試軟件功能提供了強大的支持,模擬開始后,主窗體會顯示模擬字樣,操作非常簡單。模擬參數設置界面如圖3.6所示。</p><p><b>

90、;  圖3.6 軟件模擬</b></p><p>  軟件模擬的實現主要是定時向串行口發(fā)送數據幀格式的數據,以觸發(fā)主界面的數據接收事件,即使更新數據信息。定時功能用定時器完成。軟件流程圖見附錄圖3.12。核心代碼如下:</p><p>  Private Sub Timer1_Timer()</p><p>  If Check1.Value = 1 A

91、nd Check2.Value = 1 Then</p><p>  cstring = ":" & Text1.Text & Text2.Text & "." & ":" & Text3.Text & Text4.Text & "."</p><p> 

92、 ElseIf Check1.Value = 1 And Check2.Value = 0 Then</p><p>  cstring = ":" & Text1.Text & Text2.Text & "."</p><p>  ElseIf Check1.Value = 0 And Check2.Value = 1 Th

93、en</p><p>  cstring = ":" & Text3.Text & Text4.Text & "."</p><p><b>  Else</b></p><p>  cstring = ""</p><p><b&

94、gt;  End If</b></p><p>  If main.MSCON = False Then</p><p>  main.MSCON.PortOpen = True</p><p><b>  End If</b></p><p>  main.MSCON.Output = cstring<

95、;/p><p><b>  End Sub</b></p><p>  出廠設置(default_setup)</p><p>  可視化界面,管理員可以設置溫度節(jié)點測試類型,選擇好溫度檢測類型后,系統(tǒng)會自動根據測試類型初始化一級報警值和二級報警值,如果符合要求確定表示設置完成,如果需要更改立即更改,出廠設置參數設置后,在新建網絡節(jié)點時的一級報警值

96、、二級報警值和節(jié)點類型都和出廠設置的信息相同,這樣非常方便的對新網絡節(jié)點的統(tǒng)一管理,功能更為完善和強大。出廠設置界面如圖3.7所示。</p><p><b>  圖3.7 出廠設置</b></p><p>  出廠設置的核心處理是更改數據庫字段內容,操作比較簡單:</p><p>  rs1.Fields("falarm")

97、 = Text1.Text</p><p>  rs1.Fields("salarm") = Text2.Text</p><p>  rs1.Fields("nstyle") = Combo1.Text</p><p>  rs1.Update</p><p><b>  軟件測試<

98、/b></p><p>  本設計是基于CC2430無線傳感器網絡(上位機)設計,配合下位機將各個網絡節(jié)點溫度顯示出來,并有報警功能。為提高程序開發(fā)效率以及能方便的調試,軟件還具有模擬功能,在沒有下位機的情況下,只需要將串行通信口的發(fā)送、接收引腳短接,即可實現軟件仿真功能。軟件仿真窗體將定時從串行口的2引腳(數據發(fā)送引腳TXD)發(fā)送數據幀,因為2、3引腳短接,數據直接發(fā)送到3(數據接收引腳RXD)引腳,并傳

99、回電腦端,這時主窗體的數據字符處理模塊就正常運行,進行網絡節(jié)點溫度實時顯示和處理功能了,同時,管理員還可以改變模擬節(jié)點的節(jié)點ID和溫度,模擬軟件的實時顯示溫度,并在主窗體上顯示“模擬中”字樣,表示現在處于模擬狀態(tài),停止模擬后,該字樣消失。</p><p><b>  測試內容</b></p><p>  軟件是否初始化正常,數據庫連接是否成功,退出及關閉時是否無任何錯

100、誤。</p><p>  主界面良好,是否能成功建網并提示,圖形顯示是否正常并能定時更新,管理員是否根據自己需求改變串行端口號、傳輸速率和是否校驗等。</p><p>  數據庫可維護性好,數據的錄入、刪除及更改是否能順利完成,并能實現動態(tài)更新。</p><p>  串行口數據接收是否正常,能正常、準確分析接收的數據,并且數據庫字段是否能搜索實時更新。</p&

101、gt;<p>  軟件模擬功能是否正常實現,演示功能是否強大。</p><p>  與下位機連接是否成功,并能成功傳輸更新數據。</p><p><b>  測試步驟</b></p><p><b>  軟件模擬測試</b></p><p>  首先進入主界面(圖4.1),這時,窗體界

102、面基本初始化已經完成,但并沒有完成網絡節(jié)點注冊,選擇菜單軟件模擬 ,進入軟件模擬窗體(圖4.2)。</p><p>  點擊開始模擬和開始建網,建網成功后,圖形化顯示初始化并連接數據庫,開定時更新數據,通過模擬軟件窗體改變節(jié)點溫度,網路節(jié)點列表和條形圖實時顯示溫度信息(圖4.3)。管理員可以點擊鼠標右鍵,打開彈出菜單,選擇要進行的操作,可以重新設置節(jié)點報警值或進入報警處理窗體(圖4.4),進行報警屏蔽等操作。&l

103、t;/p><p>  進入節(jié)點管理窗體(圖4.5),可以新建節(jié)點,刪除節(jié)點,軟件會自動給新節(jié)點分配網絡地址和網絡ID,并按照出廠設置內容初始化網絡節(jié)點,點擊保存后,新建節(jié)點成功,系統(tǒng)立刻更新數據,主界面記錄會立刻添加管理員新建的數據(圖4.6),并開始實時顯示。</p><p>  無線傳感器網絡上、下位機實現測試</p><p>  與下位機連接后進入上位機下位機連接

104、測試,因為下位機僅有一個網絡節(jié)點,所以軟件只監(jiān)測一個節(jié)點溫度,測試步驟如下</p><p>  進入主界面(如圖4.1)后點擊開始建網,建網成功后(如圖4.6),圖形化顯示初始化并連接數據庫,此時,數據庫連接成功,軟件已經開始定時接收串行口發(fā)送過來的數據,已經開始定時更新數據庫了,此時我在程序中加一條代碼:msgbox net_tem, 這個代碼的意思是在每次接收到串行數據發(fā)送的數據后,待分析完字符數據,提取ne

105、t_tem后,通過msgbox告訴我是否溫度檢測成功,數據是否成功收到,如果消息盒子的報告是空的,則表示數據接收失敗或者沒受到數據,如果消息盒子報告彈出溫度正常,則表示成功接收并更新了數據庫。具體代碼如下</p><p>  cu_msg = Mid(mcu_msg, 2, 3)</p><p>  net_tem = mcu_msg</p><p>  MsgBo

106、x net_tem</p><p>  Call Add_temp("0001", net_tem)</p><p><b>  測試結果</b></p><p>  在軟件的不斷啟動關閉過程中沒有出現死機、程序執(zhí)行效率降低等各種不良現象,功能的實現較為完善。</p><p>  數據庫的可維護性良好

107、,數據的錄入能順利完成,并能實現動態(tài)更新,刪除和修改也能順利完成。</p><p>  串行數據接收只能識別一種數據幀格式,對其他數據格式不具有兼容性,但數據幀分析處理功能正常,數據幀中提取節(jié)點ID,節(jié)點溫度字段非常準確,能很好的完成數據更新。</p><p>  數據溢出、越界基本未能進行非法提示,以警告用戶的錯誤使用。但能對用戶的非正常操作方式能提出警告。</p><

108、;p>  軟件對操作系統(tǒng)的兼容性良好,但未打包程序不能在未安裝VB的機器上使用,主要是因為系統(tǒng)中用到了ADO控件和MSchart控件。</p><p>  軟件窗體在運行過程中主窗體不能最大化,但可以拖動窗體縮放,根據使用者習慣調整窗體大小。</p><p>  原本Access 2003 數據庫網絡節(jié)點信息表信息如圖4.7,一共有5條記錄,每條記錄有完整的參數,包括節(jié)點ID、節(jié)點狀

109、態(tài)、節(jié)點名稱、節(jié)點地址、節(jié)點溫度、節(jié)點報警值等。</p><p>  圖4.7 數據庫網路節(jié)點信息表1</p><p>  新建網絡節(jié)點后,記錄集一共增加為6條(圖4.8),新網絡節(jié)點的所有相關參數也準確的設定了初始值,數據庫記錄添加無誤。</p><p>  圖4.8 數據庫網路節(jié)點信息表2</p><p><b>  結 論

110、</b></p><p>  無線傳感器網絡的應用越來越廣泛,基于CC2430的無線傳感器網絡研究非常有意義,我經過3個月的不懈努力,完成了無線傳感器網絡上位機的設計。</p><p>  設計采用Visual Basic 6.0軟件開發(fā)環(huán)境開發(fā)前臺人機界面程序,采用Access 2003數據庫完成數據存儲,整個軟件分為8個窗體,每個窗體完成特定功能,經過反復測試,系統(tǒng)完成后運

111、行添加、修改、查詢、等功能均正常,并能完成數據幀接收,分析處理數據幀。采用定時器定時讀取數據庫,完成節(jié)點信息的實時更新。通過串行口與下位機連接,接收適配器發(fā)送過來的字符數據,成功實現無線傳感器網絡溫度監(jiān)測。</p><p>  此系統(tǒng)仍存在許多缺陷,但是通過該系統(tǒng)設計達到了系統(tǒng)設計目的意義,基本掌握了無線傳感器網絡的基本原理,了解了軟件開發(fā)時必須注意的問題,另外,在設計過程中也逐漸提高了軟件開發(fā)技能和編程技能。因

112、此本設計雖然較粗糙,但是從學習的角度上看,非常有意義。</p><p><b>  謝 辭</b></p><p>  本次畢業(yè)設計是在指導老師xx的悉心指導下,我才能順利地完成了這次畢業(yè)設計的工作任務。在畢業(yè)設計期間,導師李老師給予了很大的幫助和關心,xx老師他對整個畢業(yè)設計要求很嚴格,但正是這種嚴格,讓我學到了曾經遺漏和忽略的知識。xx老師在電子制作和軟件程序設計

113、方面也有面深刻的造詣,給與了我許多指導,值得我尊敬,在此謹向他表示最誠摯的感謝。</p><p>  在本設計的研究過程中,參考了許多專家學者的重要著作和文獻資料,同時借鑒了VB程序員們成功的編程經驗,他們的研究成果以及成熟的VB程序程序設計理念給了我極大的啟發(fā)和幫助,在此向他們表示最衷心的感謝。</p><p>  最后衷心地感謝電子信息工程學院與通信工程教研室的老師們以及輔導員老師,感

114、謝你們這四年來對我的諄諄教導和殷切關懷,你們的教育和關心,使得我在大學四年里不僅學到了扎實的專業(yè)知識,而且學到了很多做人道理,我定會以更加飽滿的激情和昂揚的斗志投身到新的學習工作當中,以更加優(yōu)異的成績回報老師,回報母校!</p><p>  由于知識水平有限,在設計過程中難免有所差錯和不足,所以,希望各位老師、同學能對我的設計論文中的缺陷和不足予以指正,本人在此表示衷心感謝!</p><p&g

115、t;<b>  參考文獻</b></p><p>  [1]李玉東等編著. Visual Basic 6.0/.NET控件大全. 北京:電子工業(yè)出版社,2002</p><p>  [2]陳學東,常丹等編著. Visual Basic 6.0程序設計教程. 北京:清華大學出版社,2005</p><p>  [3]李文仲, 段朝玉等編著. Zi

116、gBee無線網絡技術入門與實戰(zhàn). 北京:北京航空航天大學出版社,2007</p><p>  [4]瞿雷, 劉盛德, 胡咸斌編著. ZigBee技術及應用. 北京:北京航空航天大學出版社,2007.9</p><p>  [5]謝炎樺編著.Visual Basic & Access數據庫管理系統(tǒng)構建實例. 北京:清華大學出版社,2001.5</p><p>

117、<b>  附 錄</b></p><p>  1.主窗體(main.frm)源代碼</p><p>  Option Explicit</p><p>  Dim tspeed</p><p>  Dim mcu_msg$</p><p>  Public Sub lostrs1()</p

118、><p><b>  End Sub</b></p><p>  Public Sub getrs()</p><p>  sql = "select * from basic"</p><p>  rs.Open sql, con, adOpenDynamic, adLockPessimistic<

119、;/p><p><b>  End Sub</b></p><p>  Public Sub getrs1()</p><p>  sql = "select * from hf "</p><p>  rs1.Open sql, con, adOpenDynamic, adLockPessimisti

120、c</p><p><b>  End Sub</b></p><p>  Public Function getcon()</p><p>  appdisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")</p>

溫馨提示

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

評論

0/150

提交評論