版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p> 題目基于CC2430的無線傳感器網(wǎng)絡(luò)研究</p><p> (上位機(jī)部分)</p><p><b> 摘 要</b></p><p> 無線傳感器網(wǎng)絡(luò)是由大量無處不在的微小傳感器節(jié)點(diǎn)組成,它能根據(jù)環(huán)境自主完成指定任務(wù)的自治監(jiān)控功能,是對(duì)21世紀(jì)產(chǎn)生巨大影響
2、力的技術(shù)之一。</p><p> 本設(shè)計(jì)是將無線傳感器網(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 Office Access 2003 數(shù)據(jù)庫(kù),實(shí)現(xiàn)節(jié)點(diǎn)信息的存儲(chǔ)。采用定時(shí)器定時(shí)讀取數(shù)據(jù)庫(kù),完成節(jié)點(diǎn)信息的實(shí)時(shí)更新。通過
3、串行口與下位機(jī)連接,接收適配器發(fā)送過來的字符數(shù)據(jù),實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)功能。</p><p> 關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò);Access 2003數(shù)據(jù)庫(kù);串行通信</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無線傳感器網(wǎng)絡(luò)簡(jiǎn)介1</p><p> 1.3設(shè)計(jì)任務(wù)4</p><p> 2無線傳感器網(wǎng)絡(luò)上位機(jī)系統(tǒng)概要設(shè)計(jì)5</p><p> 2.1系統(tǒng)功能簡(jiǎn)要描述5</p><p> 2.2系統(tǒng)模塊功能描述5</p><p
10、> 2.3系統(tǒng)設(shè)計(jì)的上位機(jī)、下位機(jī)的連接5</p><p> 2.4數(shù)據(jù)庫(kù)設(shè)計(jì)7</p><p> 2.4.1數(shù)據(jù)庫(kù)表的創(chuàng)建7</p><p> 2.4.2數(shù)據(jù)庫(kù)表9</p><p> 2.4.3數(shù)據(jù)庫(kù)表設(shè)計(jì)說明9</p><p> 2.4.4數(shù)據(jù)庫(kù)連接設(shè)計(jì)10</p&g
11、t;<p> 2.5計(jì)算機(jī)硬件要求及開發(fā)環(huán)境10</p><p> 2.5.1計(jì)算機(jī)的硬件建議配置10</p><p> 2.5.2開發(fā)工具的選擇11</p><p> 2.5.3開發(fā)工具概述11</p><p> 3無線傳感器網(wǎng)絡(luò)(上位機(jī))詳細(xì)設(shè)計(jì)12</p><p>
12、3.1無線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)系統(tǒng)(main.frm)12</p><p> 3.2節(jié)點(diǎn)管理(net_creat.frm)15</p><p> 3.3節(jié)點(diǎn)信息設(shè)置(net_setup.frm)16</p><p> 3.4報(bào)警管理(alarm.frm)16</p><p> 3.5軟件模擬(moni.frm)17&
13、lt;/p><p> 3.6出廠設(shè)置(default_setup)18</p><p><b> 4軟件測(cè)試20</b></p><p> 4.1測(cè)試內(nèi)容20</p><p> 4.2測(cè)試步驟20</p><p> 4.2.1軟件模擬測(cè)試20</p><
14、;p> 4.2.2無線傳感器網(wǎng)絡(luò)上、下位機(jī)實(shí)現(xiàn)測(cè)試21</p><p> 4.3測(cè)試結(jié)果22</p><p><b> 5結(jié) 論24</b></p><p><b> 謝 辭25</b></p><p><b> 參考文獻(xiàn)26</b></p
15、><p><b> 附 錄27</b></p><p><b> 緒論</b></p><p><b> 課題背景與研究意義</b></p><p> 人類進(jìn)入21世紀(jì)以來,微電子機(jī)械系統(tǒng)、計(jì)算機(jī)、通信、自動(dòng)控制和人工智能等學(xué)科的飛速發(fā)展孕育了一種新型的測(cè)控網(wǎng)絡(luò)—無線傳感
16、器網(wǎng)絡(luò) (wireless sensor network,WSN)。無線傳感器網(wǎng)絡(luò)是由大量無處不在的具有通信與計(jì)算機(jī)能力的微小傳感器節(jié)點(diǎn),密集布設(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),采用多跳對(duì)等的通信方式,其網(wǎng)絡(luò)拓?fù)鋭?dòng)態(tài)變化,具有自組織、自治、自適應(yīng)等智能屬性。</p><p> 無線傳感器網(wǎng)絡(luò)的
17、出現(xiàn)引起了全世界范圍的廣泛關(guān)注。無線傳感器網(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ǎng)絡(luò)的研究項(xiàng)目。我國(guó)近兩年也以多種形式支持無線傳感器網(wǎng)絡(luò)的研究。這些研究推動(dòng)了以網(wǎng)絡(luò)技術(shù)為核心的新軍事革命,誕生了網(wǎng)絡(luò)中心戰(zhàn)的思想和體系。目前,無線傳感器網(wǎng)絡(luò)的應(yīng)用己由軍事領(lǐng)域擴(kuò)展到其他許多領(lǐng)域,如災(zāi)難預(yù)警與救助、家庭健康監(jiān)測(cè)
18、、空間探索等傳統(tǒng)方法無法完成的任務(wù),成為一種“無所不在”的傳感技術(shù)。</p><p> 本課題的研究目的是設(shè)計(jì)一種基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)系統(tǒng),進(jìn)而將其應(yīng)用于溫度系統(tǒng)的監(jiān)控方面。因?yàn)檫@種監(jiān)控網(wǎng)絡(luò)成本較低、無需布線,多個(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ǎng)絡(luò)技術(shù)是一種低功耗、自組織的短距離技術(shù),可以實(shí)現(xiàn)監(jiān)測(cè)
19、、感知和采集網(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ǎng)絡(luò)技術(shù)可以實(shí)現(xiàn)手機(jī)對(duì)溫度的實(shí)時(shí)監(jiān)測(cè)。因此無線傳感器網(wǎng)絡(luò)的研究具有重要的應(yīng)用價(jià)值。</p><p><b> 無線傳感器網(wǎng)絡(luò)簡(jiǎn)介</b></p&g
20、t;<p> 整個(gè)傳感器網(wǎng)絡(luò)由無線溫度傳感器節(jié)點(diǎn)(溫度數(shù)據(jù)采集終端)、協(xié)調(diào)器和監(jiān)測(cè)中心計(jì)算機(jī)組成。無線溫度傳感器節(jié)點(diǎn)分布于需要測(cè)量的現(xiàn)場(chǎng),執(zhí)行溫度數(shù)據(jù)的采集、預(yù)處理、發(fā)送等工作。協(xié)調(diào)器負(fù)責(zé)接收節(jié)點(diǎn)傳送過來的數(shù)據(jù),將無線網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)轉(zhuǎn)化為以太網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)傳送到監(jiān)測(cè)中心計(jì)算機(jī)。監(jiān)測(cè)中心計(jì)算機(jī)通過與協(xié)調(diào)器間的通信,實(shí)時(shí)的顯示每個(gè)溫度傳感器節(jié)點(diǎn)的溫度信息。系統(tǒng)框圖如圖1.1所示。每一個(gè)傳感器節(jié)點(diǎn)周期性的將溫度數(shù)據(jù)通過無線收發(fā)
21、模塊發(fā)送到協(xié)調(diào)器,最終顯示于監(jiān)測(cè)中心計(jì)算機(jī)。</p><p> 圖1.1 系統(tǒng)總體結(jié)構(gòu)圖</p><p> 無線傳感器網(wǎng)絡(luò)下位機(jī)設(shè)計(jì)主要分為硬件設(shè)計(jì)和軟件設(shè)計(jì),硬件方面是以CC2430為主要器件,系統(tǒng)功能引腳圖如圖1.2。CC2430內(nèi)部包含80C51的內(nèi)核、無線收發(fā)模塊,一個(gè)CC2340即可完成無線接收或發(fā)送功能,功能非常強(qiáng)大。</p><p> CC24
22、30是TI公司推出的全新概念新一代ZigBee無線單片機(jī)系列芯片。是一款真正符合IEEE802.15.4標(biāo)準(zhǔn)的片上ZigBee產(chǎn)品,采用7 mmx7 mln QLP48封裝。它包括RF收發(fā)器,集成了加強(qiáng)型8051MCU。CC2430工作在2.4GHz頻段,靈敏度高、最大輸出為24 dBm、最大傳送速率為250 kb/s,其外圍元件數(shù)目很少。使用一個(gè)非平衡天線,連接非平衡變壓器使天線性能更好。電路中的非平衡變壓器由電容C12和電感L1、L
23、2、L3以及1個(gè)PCB微波傳輸線組成,整個(gè)結(jié)構(gòu)滿足RF輸入/輸出匹配電阻(50 Q)的要求。值得注意的是。為了使系統(tǒng)達(dá)到有效復(fù)位,應(yīng)使RESET-N端保持10 ms的低電平。當(dāng)復(fù)位結(jié)束后立即對(duì)該器件進(jìn)行初始化時(shí)。很容易發(fā)生錯(cuò)誤。所以,進(jìn)入O000H地址后。應(yīng)首先執(zhí)行1 ms-10 ms的軟件延時(shí)。然后再進(jìn)行初始化。</p><p> 圖1.2 CC2430及外圍器件</p><p>
24、 溫度采集使用數(shù)字式溫度傳感器DS18B20,DS18B20具有3引腳PR-35小體積封裝形式,溫度測(cè)量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃,測(cè)出的溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出, CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。DS18B20采集溫度數(shù)據(jù)后,處理為數(shù)字信號(hào)發(fā)送給CC2430內(nèi)部控制器運(yùn)算器,由它進(jìn)行溫
25、度處理并傳送給無線發(fā)送模塊。</p><p> 與上位機(jī)的串行通信還要求下位機(jī)有串行通信模塊,串行通信使用RS232串行接口,該接口技術(shù)成熟,結(jié)構(gòu)簡(jiǎn)單,只需3條普通導(dǎo)線就可以進(jìn)行雙向通信,實(shí)現(xiàn)非常方便。</p><p> 軟件部分采用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ù)千個(gè)微小的傳感器之間相互協(xié)調(diào)實(shí)
26、現(xiàn)通信。這些傳感器只需要很少的能量,以接力的方式通過無線電波將溫度數(shù)據(jù)從一個(gè)傳感器傳到另一個(gè)傳感器,然后傳到適配器最后傳到電腦端。</p><p> ZigBee協(xié)議是由IEEE802.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ī)
27、制來控制信道接入,主要負(fù)責(zé)傳輸信標(biāo)幀、同步以及提供可信賴的傳輸機(jī)制。ZigBee協(xié)議棧如圖1.3。</p><p> 圖1.3 ZigBee協(xié)議架構(gòu)</p><p><b> 設(shè)計(jì)任務(wù)</b></p><p> 主要任務(wù)是分析CC2430協(xié)調(diào)器串口傳輸?shù)臏囟葦?shù)據(jù)格式,通過VB編程實(shí)現(xiàn)的數(shù)據(jù)庫(kù)寫入、讀出處理,實(shí)時(shí)對(duì)溫度進(jìn)行圖形顯示,同時(shí)設(shè)置
28、溫度報(bào)警范圍,可以進(jìn)行報(bào)警事件處理等。</p><p> 無線傳感器網(wǎng)絡(luò)上位機(jī)系統(tǒng)概要設(shè)計(jì)</p><p><b> 系統(tǒng)功能簡(jiǎn)要描述</b></p><p> 系統(tǒng)具有良好的人機(jī)界面。</p><p> 自然美觀的圖形化溫度顯示,可以一目了然的監(jiān)測(cè)所有節(jié)點(diǎn)溫度。</p><p> 方便
29、的數(shù)據(jù)添加和修改功能。</p><p> 定時(shí)更新數(shù)據(jù)庫(kù),定時(shí)更新溫度數(shù)據(jù),人性化的溫度監(jiān)測(cè)。</p><p> 聲光報(bào)警功能,最大限度的告訴監(jiān)控人員節(jié)點(diǎn)狀態(tài)。</p><p> 環(huán)境模擬仿真,在沒有下位機(jī)時(shí)也可體驗(yàn)溫度檢測(cè)功能。</p><p> 串行口數(shù)據(jù)自動(dòng)接收,自動(dòng)分析,自動(dòng)處理,無需人工干預(yù)。</p><
30、p> 數(shù)據(jù)備份和清理功能。</p><p><b> 系統(tǒng)模塊功能描述</b></p><p> 整個(gè)上位機(jī)系統(tǒng)由許多窗體組成,它包括出窗體main.frm、節(jié)點(diǎn)管理窗體net_creat.frm、節(jié)點(diǎn)信息設(shè)置窗體net_setup.frm、報(bào)警管理窗體alarm.frm。具體窗體信息見表2.1。</p><p><b>
31、 表2.1統(tǒng)功能描述</b></p><p> 系統(tǒng)設(shè)計(jì)的上位機(jī)、下位機(jī)的連接</p><p> 無線傳感器網(wǎng)絡(luò)上位機(jī)通過串行線與下位機(jī)連接,按照串行通信協(xié)議發(fā)送、接收數(shù)據(jù),串行通信發(fā)送的數(shù)據(jù)幀結(jié)構(gòu)如表2.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ī)一但接收到該字符,則立即進(jìn)入事件處
32、理,首先分析發(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ù)。</p><p> 表2.2 數(shù)據(jù)幀格式</p><p> 當(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添加。事件處理代碼見下:</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 '收到結(jié)束標(biāo)志</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 ‘寫入進(jìn)出記錄</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> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 本設(shè)計(jì)主要采用微軟公司Office Access 2003數(shù)據(jù)庫(kù),比起SQL此數(shù)據(jù)庫(kù)功能稍稍遜色,但Access 2003數(shù)據(jù)庫(kù)操作簡(jiǎn)單,屬于Office家族,基于它的程序開發(fā)較為快捷,它具有很好的兼容性,拓展性,受到許多VB程序員們青睞。</p><p><b>
43、 數(shù)據(jù)庫(kù)表的創(chuàng)建</b></p><p> 首先打開Office Access 2003,點(diǎn)擊新建,這時(shí)右邊會(huì)出現(xiàn)你所要新建的對(duì)象,如圖2.3。</p><p> 圖2.3數(shù)據(jù)庫(kù)窗創(chuàng)建界面</p><p> 進(jìn)入之后如圖2.4。此時(shí)你可以選擇使用設(shè)計(jì)器創(chuàng)建表,使用向?qū)?chuàng)建表,通過輸入數(shù)據(jù)創(chuàng)建表。此時(shí)選擇使用設(shè)計(jì)器創(chuàng)建表。</p>&
44、lt;p> 圖2.4 數(shù)據(jù)庫(kù)創(chuàng)建向?qū)Ы缑?lt;/p><p> 選擇使用設(shè)計(jì)器進(jìn)入數(shù)據(jù)表設(shè)計(jì),設(shè)置字段名稱以及字段存儲(chǔ)類型。定義主鍵,數(shù)據(jù)表設(shè)計(jì)界面如圖2.5。</p><p> 圖2.5 數(shù)據(jù)表設(shè)計(jì)界面</p><p> 設(shè)置好所有節(jié)點(diǎn)字段名稱,設(shè)置的節(jié)點(diǎn)名稱要與你的數(shù)據(jù)庫(kù)信息有關(guān),以便于方便調(diào)用。設(shè)置完后可以向數(shù)據(jù)表中添加新數(shù)據(jù),具體新數(shù)據(jù)錄入如圖2.
45、6。</p><p> 圖 2.6 新數(shù)據(jù)錄入</p><p><b> 數(shù)據(jù)庫(kù)表</b></p><p> 表2.3 數(shù)據(jù)庫(kù)表介紹</p><p><b> 數(shù)據(jù)庫(kù)表設(shè)計(jì)說明</b></p><p> 網(wǎng)絡(luò)節(jié)點(diǎn)信息表(Noteinformation)</p&
46、gt;<p> 表2.4 網(wǎng)絡(luò)節(jié)點(diǎn)信息</p><p> 管理員信息表(Administrator)</p><p> 表2.5 管理員信息</p><p> 節(jié)點(diǎn)出廠信息表(Notedefault)</p><p> 表2.6 節(jié)點(diǎn)出廠信息</p><p><b> 數(shù)據(jù)庫(kù)連接設(shè)計(jì)
47、</b></p><p> Visual Basic 6.0中的ADODC1控件擁有強(qiáng)大的數(shù)據(jù)庫(kù)連接功能,在窗體中添加該控件后,調(diào)用如下函數(shù),即可實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接。</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> 數(shù)據(jù)庫(kù)連接成功后,系統(tǒng)軟件就可以訪問數(shù)據(jù)庫(kù)了,但是還不能調(diào)用、修改、更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,必須建立記錄集,建立記錄集的函數(shù)如下,記錄集
50、與數(shù)據(jù)庫(kù)表連接成功后,就可以修改數(shù)據(jù)庫(kù)表中的數(shù)據(jù)了。</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> 計(jì)算機(jī)硬件要求及開發(fā)環(huán)境</p><p> 計(jì)算機(jī)的硬件建議配置</p><p> CPU 1.6GMHZ</p><p><b> 內(nèi)存 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)后臺(tái)采用Microsoft Office Access 2003數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)操作簡(jiǎn)單,功能強(qiáng)大,兼容性和拓展
53、性非常好,前臺(tái)采用Microsoft公司的Microsoft Visual Basic 6.0 作為主要的開發(fā)工具,它可以與Microsoft Office Access 2003 數(shù)據(jù)庫(kù)無縫連接。</p><p><b> 開發(fā)工具概述</b></p><p> Visual Basic 6.0簡(jiǎn)介</p><p> 微軟公司的Visu
54、al Basic 6.0是Windows應(yīng)用程序開發(fā)工具,使目前非常廣泛的、易學(xué)易用的面向?qū)ο蟮拈_發(fā)工具。Visual Basic 6.0能自動(dòng)產(chǎn)生界面設(shè)計(jì)代碼,編程人員不必編寫大量的程序代碼,只需要按照設(shè)計(jì)要求在窗口中的適當(dāng)位置添加所需的各種部件,整個(gè)界面設(shè)計(jì)過程是直觀、可視的,設(shè)計(jì)界面與程序運(yùn)行時(shí)實(shí)際顯示的界面一致,大大提高了程序設(shè)計(jì)的效率。Visual Basic 6.0還擁有以下幾個(gè)特點(diǎn):</p><p>
55、; 支持面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP);</p><p><b> 采用事件驅(qū)動(dòng)方式;</b></p><p> 提供對(duì)象的連接與嵌入(OLE)和訪問數(shù)據(jù)庫(kù)功能;</p><p> Microsoft Office Access 2003簡(jiǎn)介</p><p> Microsoft Office Access 20
56、03是由微軟發(fā)布的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng)。它結(jié)合了Microsoft Jet Database Engine和圖形用戶界面兩項(xiàng)特點(diǎn),是Microsoft Office 2007的成員之一。</p><p> ACCESS 2003 具有強(qiáng)大的數(shù)據(jù)資源能力和強(qiáng)大的業(yè)務(wù)支持,通過表格鏈接,您可以在Access 2003窗體、報(bào)表和數(shù)據(jù)訪問頁面中同時(shí)訪問來自多個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)。它還能夠?qū)碜云渌鸐icrosoft Acc
57、ess數(shù)據(jù)庫(kù)、Microsoft Excel電子表格、ODBC數(shù)據(jù)源、Microsoft SQL Server數(shù)據(jù)庫(kù)以及其他的數(shù)據(jù)庫(kù)資源的表格進(jìn)行鏈接。</p><p> ACCESS 2003是一個(gè)功能強(qiáng)大的后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng),以其低費(fèi)用、可伸縮性、可靠性和易用性等諸多方面的優(yōu)勢(shì),被廣大人們所喜愛。</p><p> 無線傳感器網(wǎng)絡(luò)(上位機(jī))詳細(xì)設(shè)計(jì)</p><p
58、> 無線傳感器網(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)溫度等信息,上位機(jī)接收到數(shù)據(jù)后首先存入數(shù)據(jù)庫(kù),然后更新連接數(shù)據(jù)庫(kù),圖形化、圖表化顯示節(jié)點(diǎn)信息。主程序流程圖如圖3.1。</p><p> 圖3.1 主數(shù)據(jù)流圖</p><p> 無線傳感器網(wǎng)絡(luò)溫度
59、監(jiān)測(cè)系統(tǒng)(main.frm)</p><p> 功能描述:可視化的操作界面,主要由串行口設(shè)置模塊、數(shù)據(jù)庫(kù)連接模塊、圖形顯示模塊、報(bào)警模塊組成,管理員可以使用串行口設(shè)置模塊設(shè)置串行端口號(hào),串行端口傳輸速率,是否校驗(yàn),以及是否有停止位。在串行通信前這個(gè)模塊完成所有串行口初始化工作,管理員設(shè)置完串行口后,打開串行口即可實(shí)現(xiàn)串行通信。</p><p> 數(shù)據(jù)庫(kù)連接模塊完成與Access 200
60、3的數(shù)據(jù)庫(kù)的連接,連接完成后,顯示連接成功,連接成功后軟件自動(dòng)初始化,將數(shù)據(jù)庫(kù)中所有網(wǎng)絡(luò)節(jié)點(diǎn)信息用DataGrid顯示出來,管理員可以一目了然的看到所有網(wǎng)絡(luò)節(jié)點(diǎn)信息,并可以清楚知道是否有節(jié)點(diǎn)處于報(bào)警狀態(tài)。</p><p> 圖形顯示模塊的功能主要是實(shí)時(shí)顯示節(jié)點(diǎn)溫度,使用人性化、可視化的設(shè)計(jì),用簡(jiǎn)單的條形圖就可以監(jiān)測(cè)所有節(jié)點(diǎn),避免龐大的數(shù)據(jù)表查看,讓監(jiān)控過程更為輕松。</p><p>
61、報(bào)警模塊采用聲光報(bào)警,當(dāng)有節(jié)點(diǎn)溫度操作設(shè)置的報(bào)警值時(shí),報(bào)警指示燈不斷閃爍,并發(fā)出報(bào)警聲音,不斷告知有節(jié)點(diǎn)溫度超標(biāo)。無線傳感器網(wǎng)絡(luò)界面如圖3.2所示。</p><p> 圖3.2 無線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)中心</p><p> 無線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)中心是整個(gè)軟件的主界面,它承載著數(shù)據(jù)庫(kù)連接,記錄集建立,串口初始化,以及圖形控件的初始化等,軟件流程圖見附錄圖3.8,運(yùn)行軟件后,系統(tǒng)首先初始
62、化串行口,然后等待用戶建網(wǎng),當(dāng)建網(wǎng)成功后,數(shù)據(jù)庫(kù)會(huì)連接成功,Datagrid與記錄集連接,并顯示記錄集所有信息。實(shí)現(xiàn)初始化的關(guān)鍵代碼如下:</p><p> Public Sub k_int()</p><p> '--------------數(shù)據(jù)庫(kù)記錄集連接----------------------------'</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 '設(shè)置通信端口號(hào)為COM1</p><p>
65、MSCON.Settings = "38400,n,8,1" '設(shè)置串口參數(shù),波特率9600</p><p> MSCON.InputMode = 0 '接收文本型數(shù)據(jù)</p><p> MSCON.RThreshold = 1 '接收到一個(gè)字符就產(chǎn)生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 = "序號(hào)"</p><p> DataGrid1.Columns(1).Caption = "節(jié)點(diǎn)ID"</p><p> DataGrid1.Columns(2).Caption = "節(jié)點(diǎn)
68、狀態(tài)"</p><p> DataGrid1.Columns(3).Caption = "節(jié)點(diǎn)名稱"</p><p> DataGrid1.Columns(4).Caption = "節(jié)點(diǎn)地址"</p><p> DataGrid1.Columns(5).Caption = "節(jié)點(diǎn)溫度"&l
69、t;/p><p> DataGrid1.Columns(6).Caption = "一級(jí)報(bào)警值"</p><p> DataGrid1.Columns(7).Caption = "二級(jí)報(bào)警值"</p><p> DataGrid1.Columns(8).Caption = "單位"</p>
70、<p> DataGrid1.Columns(9).Caption = "更新時(shí)間"</p><p> DataGrid1.Columns(10).Caption = "節(jié)點(diǎn)類型"</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 '設(shè)置不能選中整個(gè)系列</p><p> MSChart1.RowCount = 15
76、 '設(shè)置行共15行</p><p> MSChart1.ColumnCount = 1 '設(shè)置列1列</p><p> TT.Interval = rs.Fields("updatetime")</p><p><b> End Sub</b>
77、;</p><p> 節(jié)點(diǎn)管理(net_creat.frm)</p><p> 功能描述:可視化界面,用戶可以管理節(jié)點(diǎn)基本信息,包括節(jié)點(diǎn)ID,節(jié)點(diǎn)名稱,節(jié)點(diǎn)狀態(tài),節(jié)點(diǎn)地址,節(jié)點(diǎn)溫度,節(jié)點(diǎn)報(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)管理界面如圖3.3所示。</p><p>
78、<b> 圖3.3 節(jié)點(diǎn)管理</b></p><p> 節(jié)點(diǎn)管理的核心功能是實(shí)現(xiàn)數(shù)據(jù)庫(kù)記錄集內(nèi)數(shù)據(jù)的新建和刪除,并及時(shí)更新數(shù)據(jù)庫(kù),在主界面顯示出來,軟件流程圖見附錄圖3.9。新建記錄集的時(shí)候系統(tǒng)首先自動(dòng)由出廠設(shè)置預(yù)設(shè)網(wǎng)絡(luò)節(jié)點(diǎn)初始信息,用戶也可以根據(jù)自己的需求更改。核心代碼實(shí)現(xiàn)見下:</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é)點(diǎn)信息設(shè)置(
81、net_setup.frm)</p><p> 功能描述:可視化界面,包括一級(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è)置界面如圖3.4所示。</p><p> 圖3.4 節(jié)點(diǎn)信息設(shè)置</p><p>
82、; 節(jié)點(diǎn)信息設(shè)置主要實(shí)現(xiàn)數(shù)據(jù)庫(kù)更新數(shù)據(jù)功能,包括更新一級(jí)報(bào)警值,二級(jí)報(bào)警值和更新時(shí)間。軟件流程圖見附錄圖3.10。實(shí)現(xiàn)核心代碼見下:</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> 報(bào)警管理(alarm.frm)</p><p> 功能描述:可視化界面,管理員可以查看所有溫度超標(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)
85、警節(jié)點(diǎn)統(tǒng)一管理,同時(shí)管理員可以對(duì)報(bào)警節(jié)點(diǎn)報(bào)警屏蔽,報(bào)警值重新設(shè)置等操作。報(bào)警管理界面如圖3.5所示。</p><p><b> 圖3.5 報(bào)警管理</b></p><p> 報(bào)警管理窗體能搜索所有報(bào)警中的字段并列表顯示出來,實(shí)現(xiàn)核心是搜索功能,軟件流程圖見附錄圖3.11。核心代碼如下:</p><p> sql = "selec
86、t * from basic where nstate like '%報(bào)警%'"</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> 可視化界面,管理員可以在沒有下位機(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è)置界面如圖3.6所示。</p><p><b>
90、; 圖3.6 軟件模擬</b></p><p> 軟件模擬的實(shí)現(xiàn)主要是定時(shí)向串行口發(fā)送數(shù)據(jù)幀格式的數(shù)據(jù),以觸發(fā)主界面的數(shù)據(jù)接收事件,即使更新數(shù)據(jù)信息。定時(shí)功能用定時(shí)器完成。軟件流程圖見附錄圖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> 出廠設(shè)置(default_setup)</p><p> 可視化界面,管理員可以設(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)警值
96、、二級(jí)報(bào)警值和節(jié)點(diǎn)類型都和出廠設(shè)置的信息相同,這樣非常方便的對(duì)新網(wǎng)絡(luò)節(jié)點(diǎn)的統(tǒng)一管理,功能更為完善和強(qiáng)大。出廠設(shè)置界面如圖3.7所示。</p><p><b> 圖3.7 出廠設(shè)置</b></p><p> 出廠設(shè)置的核心處理是更改數(shù)據(jù)庫(kù)字段內(nèi)容,操作比較簡(jiǎn)單:</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> 軟件測(cè)試<
98、/b></p><p> 本設(shè)計(jì)是基于CC2430無線傳感器網(wǎng)絡(luò)(上位機(jī))設(shè)計(jì),配合下位機(jī)將各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)溫度顯示出來,并有報(bào)警功能。為提高程序開發(fā)效率以及能方便的調(diào)試,軟件還具有模擬功能,在沒有下位機(jī)的情況下,只需要將串行通信口的發(fā)送、接收引腳短接,即可實(shí)現(xiàn)軟件仿真功能。軟件仿真窗體將定時(shí)從串行口的2引腳(數(shù)據(jù)發(fā)送引腳TXD)發(fā)送數(shù)據(jù)幀,因?yàn)?、3引腳短接,數(shù)據(jù)直接發(fā)送到3(數(shù)據(jù)接收引腳RXD)引腳,并傳
99、回電腦端,這時(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),停止模擬后,該字樣消失。</p><p><b> 測(cè)試內(nèi)容</b></p><p> 軟件是否初始化正常,數(shù)據(jù)庫(kù)連接是否成功,退出及關(guān)閉時(shí)是否無任何錯(cuò)
100、誤。</p><p> 主界面良好,是否能成功建網(wǎng)并提示,圖形顯示是否正常并能定時(shí)更新,管理員是否根據(jù)自己需求改變串行端口號(hào)、傳輸速率和是否校驗(yàn)等。</p><p> 數(shù)據(jù)庫(kù)可維護(hù)性好,數(shù)據(jù)的錄入、刪除及更改是否能順利完成,并能實(shí)現(xiàn)動(dòng)態(tài)更新。</p><p> 串行口數(shù)據(jù)接收是否正常,能正常、準(zhǔn)確分析接收的數(shù)據(jù),并且數(shù)據(jù)庫(kù)字段是否能搜索實(shí)時(shí)更新。</p&
101、gt;<p> 軟件模擬功能是否正常實(shí)現(xiàn),演示功能是否強(qiáng)大。</p><p> 與下位機(jī)連接是否成功,并能成功傳輸更新數(shù)據(jù)。</p><p><b> 測(cè)試步驟</b></p><p><b> 軟件模擬測(cè)試</b></p><p> 首先進(jìn)入主界面(圖4.1),這時(shí),窗體界
102、面基本初始化已經(jīng)完成,但并沒有完成網(wǎng)絡(luò)節(jié)點(diǎn)注冊(cè),選擇菜單軟件模擬 ,進(jìn)入軟件模擬窗體(圖4.2)。</p><p> 點(diǎn)擊開始模擬和開始建網(wǎng),建網(wǎng)成功后,圖形化顯示初始化并連接數(shù)據(jù)庫(kù),開定時(shí)更新數(shù)據(jù),通過模擬軟件窗體改變節(jié)點(diǎn)溫度,網(wǎng)路節(jié)點(diǎn)列表和條形圖實(shí)時(shí)顯示溫度信息(圖4.3)。管理員可以點(diǎn)擊鼠標(biāo)右鍵,打開彈出菜單,選擇要進(jìn)行的操作,可以重新設(shè)置節(jié)點(diǎn)報(bào)警值或進(jìn)入報(bào)警處理窗體(圖4.4),進(jìn)行報(bào)警屏蔽等操作。&l
103、t;/p><p> 進(jìn)入節(jié)點(diǎn)管理窗體(圖4.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ù)(圖4.6),并開始實(shí)時(shí)顯示。</p><p> 無線傳感器網(wǎng)絡(luò)上、下位機(jī)實(shí)現(xiàn)測(cè)試</p><p> 與下位機(jī)連接后進(jìn)入上位機(jī)下位機(jī)連接
104、測(cè)試,因?yàn)橄挛粰C(jī)僅有一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),所以軟件只監(jiān)測(cè)一個(gè)節(jié)點(diǎn)溫度,測(cè)試步驟如下</p><p> 進(jìn)入主界面(如圖4.1)后點(diǎn)擊開始建網(wǎng),建網(wǎng)成功后(如圖4.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ù),提取ne
105、t_tem后,通過msgbox告訴我是否溫度檢測(cè)成功,數(shù)據(jù)是否成功收到,如果消息盒子的報(bào)告是空的,則表示數(shù)據(jù)接收失敗或者沒受到數(shù)據(jù),如果消息盒子報(bào)告彈出溫度正常,則表示成功接收并更新了數(shù)據(jù)庫(kù)。具體代碼如下</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> 測(cè)試結(jié)果</b></p><p> 在軟件的不斷啟動(dòng)關(guān)閉過程中沒有出現(xiàn)死機(jī)、程序執(zhí)行效率降低等各種不良現(xiàn)象,功能的實(shí)現(xiàn)較為完善。</p><p> 數(shù)據(jù)庫(kù)的可維護(hù)性良好
107、,數(shù)據(jù)的錄入能順利完成,并能實(shí)現(xiàn)動(dòng)態(tài)更新,刪除和修改也能順利完成。</p><p> 串行數(shù)據(jù)接收只能識(shí)別一種數(shù)據(jù)幀格式,對(duì)其他數(shù)據(jù)格式不具有兼容性,但數(shù)據(jù)幀分析處理功能正常,數(shù)據(jù)幀中提取節(jié)點(diǎn)ID,節(jié)點(diǎn)溫度字段非常準(zhǔn)確,能很好的完成數(shù)據(jù)更新。</p><p> 數(shù)據(jù)溢出、越界基本未能進(jìn)行非法提示,以警告用戶的錯(cuò)誤使用。但能對(duì)用戶的非正常操作方式能提出警告。</p><
108、;p> 軟件對(duì)操作系統(tǒng)的兼容性良好,但未打包程序不能在未安裝VB的機(jī)器上使用,主要是因?yàn)橄到y(tǒng)中用到了ADO控件和MSchart控件。</p><p> 軟件窗體在運(yùn)行過程中主窗體不能最大化,但可以拖動(dòng)窗體縮放,根據(jù)使用者習(xí)慣調(diào)整窗體大小。</p><p> 原本Access 2003 數(shù)據(jù)庫(kù)網(wǎng)絡(luò)節(jié)點(diǎn)信息表信息如圖4.7,一共有5條記錄,每條記錄有完整的參數(shù),包括節(jié)點(diǎn)ID、節(jié)點(diǎn)狀
109、態(tài)、節(jié)點(diǎn)名稱、節(jié)點(diǎn)地址、節(jié)點(diǎn)溫度、節(jié)點(diǎn)報(bào)警值等。</p><p> 圖4.7 數(shù)據(jù)庫(kù)網(wǎng)路節(jié)點(diǎn)信息表1</p><p> 新建網(wǎng)絡(luò)節(jié)點(diǎn)后,記錄集一共增加為6條(圖4.8),新網(wǎng)絡(luò)節(jié)點(diǎn)的所有相關(guān)參數(shù)也準(zhǔn)確的設(shè)定了初始值,數(shù)據(jù)庫(kù)記錄添加無誤。</p><p> 圖4.8 數(shù)據(jù)庫(kù)網(wǎng)路節(jié)點(diǎn)信息表2</p><p><b> 結(jié) 論
110、</b></p><p> 無線傳感器網(wǎng)絡(luò)的應(yīng)用越來越廣泛,基于CC2430的無線傳感器網(wǎng)絡(luò)研究非常有意義,我經(jīng)過3個(gè)月的不懈努力,完成了無線傳感器網(wǎng)絡(luò)上位機(jī)的設(shè)計(jì)。</p><p> 設(shè)計(jì)采用Visual Basic 6.0軟件開發(fā)環(huán)境開發(fā)前臺(tái)人機(jī)界面程序,采用Access 2003數(shù)據(jù)庫(kù)完成數(shù)據(jù)存儲(chǔ),整個(gè)軟件分為8個(gè)窗體,每個(gè)窗體完成特定功能,經(jīng)過反復(fù)測(cè)試,系統(tǒng)完成后運(yùn)
111、行添加、修改、查詢、等功能均正常,并能完成數(shù)據(jù)幀接收,分析處理數(shù)據(jù)幀。采用定時(shí)器定時(shí)讀取數(shù)據(jù)庫(kù),完成節(jié)點(diǎn)信息的實(shí)時(shí)更新。通過串行口與下位機(jī)連接,接收適配器發(fā)送過來的字符數(shù)據(jù),成功實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)溫度監(jiān)測(cè)。</p><p> 此系統(tǒng)仍存在許多缺陷,但是通過該系統(tǒng)設(shè)計(jì)達(dá)到了系統(tǒng)設(shè)計(jì)目的意義,基本掌握了無線傳感器網(wǎng)絡(luò)的基本原理,了解了軟件開發(fā)時(shí)必須注意的問題,另外,在設(shè)計(jì)過程中也逐漸提高了軟件開發(fā)技能和編程技能。因
112、此本設(shè)計(jì)雖然較粗糙,但是從學(xué)習(xí)的角度上看,非常有意義。</p><p><b> 謝 辭</b></p><p> 本次畢業(yè)設(shè)計(jì)是在指導(dǎo)老師xx的悉心指導(dǎo)下,我才能順利地完成了這次畢業(yè)設(shè)計(jì)的工作任務(wù)。在畢業(yè)設(shè)計(jì)期間,導(dǎo)師李老師給予了很大的幫助和關(guān)心,xx老師他對(duì)整個(gè)畢業(yè)設(shè)計(jì)要求很嚴(yán)格,但正是這種嚴(yán)格,讓我學(xué)到了曾經(jīng)遺漏和忽略的知識(shí)。xx老師在電子制作和軟件程序設(shè)計(jì)
113、方面也有面深刻的造詣,給與了我許多指導(dǎo),值得我尊敬,在此謹(jǐn)向他表示最誠(chéng)摯的感謝。</p><p> 在本設(shè)計(jì)的研究過程中,參考了許多專家學(xué)者的重要著作和文獻(xiàn)資料,同時(shí)借鑒了VB程序員們成功的編程經(jīng)驗(yàn),他們的研究成果以及成熟的VB程序程序設(shè)計(jì)理念給了我極大的啟發(fā)和幫助,在此向他們表示最衷心的感謝。</p><p> 最后衷心地感謝電子信息工程學(xué)院與通信工程教研室的老師們以及輔導(dǎo)員老師,感
114、謝你們這四年來對(duì)我的諄諄教導(dǎo)和殷切關(guān)懷,你們的教育和關(guān)心,使得我在大學(xué)四年里不僅學(xué)到了扎實(shí)的專業(yè)知識(shí),而且學(xué)到了很多做人道理,我定會(huì)以更加飽滿的激情和昂揚(yáng)的斗志投身到新的學(xué)習(xí)工作當(dāng)中,以更加優(yōu)異的成績(jī)回報(bào)老師,回報(bào)母校!</p><p> 由于知識(shí)水平有限,在設(shè)計(jì)過程中難免有所差錯(cuò)和不足,所以,希望各位老師、同學(xué)能對(duì)我的設(shè)計(jì)論文中的缺陷和不足予以指正,本人在此表示衷心感謝!</p><p&g
115、t;<b> 參考文獻(xiàn)</b></p><p> [1]李玉東等編著. Visual Basic 6.0/.NET控件大全. 北京:電子工業(yè)出版社,2002</p><p> [2]陳學(xué)東,常丹等編著. Visual Basic 6.0程序設(shè)計(jì)教程. 北京:清華大學(xué)出版社,2005</p><p> [3]李文仲, 段朝玉等編著. Zi
116、gBee無線網(wǎng)絡(luò)技術(shù)入門與實(shí)戰(zhàn). 北京:北京航空航天大學(xué)出版社,2007</p><p> [4]瞿雷, 劉盛德, 胡咸斌編著. ZigBee技術(shù)及應(yīng)用. 北京:北京航空航天大學(xué)出版社,2007.9</p><p> [5]謝炎樺編著.Visual Basic & Access數(shù)據(jù)庫(kù)管理系統(tǒng)構(gòu)建實(shí)例. 北京:清華大學(xué)出版社,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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于CC2430的無線傳感器網(wǎng)絡(luò)通信研究.pdf
- 基于CC2430的無線傳感器網(wǎng)絡(luò)傳輸系統(tǒng)設(shè)計(jì).pdf
- 基于CC2430無線多參數(shù)傳感器檢測(cè)網(wǎng)絡(luò)的設(shè)計(jì).pdf
- 基于cc2430的三種無線傳感器網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)
- 基于無線傳感網(wǎng)絡(luò)路由優(yōu)化在CC2430上的實(shí)現(xiàn)研究.pdf
- 基于cc2430的無線家居系統(tǒng)設(shè)計(jì)
- cc2430簡(jiǎn)介
- 基于timac的cc2530無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)【畢業(yè)論文】
- 基于remoti的cc2530無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)【畢業(yè)論文】
- 無線傳感器網(wǎng)絡(luò)畢業(yè)論文
- 基于CC2430的無線智能家居系統(tǒng)的設(shè)計(jì).pdf
- cc2430 外圍引腳電路
- cc2430串口小結(jié)
- cc2430 外圍引腳電路69634
- 基于arm的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)畢業(yè)論文
- 基于ZigBee的CC2430無線自動(dòng)抄表系統(tǒng)的研究與設(shè)計(jì).pdf
- 無線傳感器網(wǎng)絡(luò)能量路由研究畢業(yè)論文
- 無線傳感器網(wǎng)絡(luò)路由協(xié)議研究【畢業(yè)論文】
- 基于CC2430的肢體行為再現(xiàn)技術(shù)的.pdf
- 基于CC2430遠(yuǎn)程醫(yī)療監(jiān)護(hù)系統(tǒng)的設(shè)計(jì)研究.pdf
評(píng)論
0/150
提交評(píng)論