




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計說明書設(shè)計題目: 基于物聯(lián)網(wǎng)的燈光控制系統(tǒng) 上位機系統(tǒng)設(shè)計 專 業(yè): 物聯(lián)網(wǎng)應(yīng)用技術(shù) 班 級: 物聯(lián)網(wǎng)XX 學(xué) 號: 姓 名: 指導(dǎo)教師: 二O一五年十一月二十日設(shè)計內(nèi)容:課題簡介:以道惟爾公司CC2430無線傳感器節(jié)點和光照傳感器模塊為載體, VS2010開發(fā)環(huán)境,設(shè)計一個燈光控制系統(tǒng),實現(xiàn)對道路燈光亮滅進行控制,并實時顯示狀態(tài)在上位機監(jiān)控軟件上。并下發(fā)燈光控制指令。主要任務(wù):(1)應(yīng)用層展示軟件開發(fā);(2)撰寫設(shè)計報告。主要技術(shù)要求如下:(1)采用模塊化設(shè)計思想規(guī)劃各子程序功能; (3)CC2430協(xié)調(diào)器與PC串口通訊的基本數(shù)據(jù)幀格式為:幀頭、功能碼、數(shù)據(jù)長度、數(shù)據(jù)、幀尾;(4)傳
2、輸層應(yīng)實現(xiàn)透明傳輸。進度安排:1.任務(wù)分解,收集有關(guān)資料并消化吸收-2周;2.制定設(shè)計方案-1周;3.軟件設(shè)計-6周;4.撰寫設(shè)計報告-2周;5.準(zhǔn)備畢業(yè)答辯。主要參考文獻、資料(寫清楚參考文獻名稱、作者、出版單位):1黃嘉輝.C#.NET網(wǎng)絡(luò)程序設(shè)計.科學(xué)出版社,20042陳林是.無線傳感器網(wǎng)絡(luò)技術(shù)與應(yīng)用.電子工業(yè)出版社,20093高守瑋.吳燦陽.ZigBee技術(shù)實踐教程.北京航空航天大學(xué)出版社,20094程遠東.曾寶國.電子產(chǎn)品設(shè)計與制造技術(shù).科學(xué)出版設(shè),20115戴佳.戴衛(wèi).51單片機C語言應(yīng)用程序設(shè)計實例精講.電子工業(yè)出版社,2006審批意見教研室負責(zé)人:年月日目錄摘要1概述2第章總體
3、設(shè)計31.1設(shè)計目標(biāo)31.2設(shè)計原則31.3技術(shù)架構(gòu)3第2章系統(tǒng)組成與工作過程42.1系統(tǒng)組成42.2本系統(tǒng)涉及的主要功能52.2.1功能描述52.3系統(tǒng)的運行過程62.3.1注冊網(wǎng)絡(luò)62.3.2下行鏈路(由PC到終端):62.3.3控制臺請求啟動/停止6第3章系統(tǒng)通訊協(xié)議規(guī)劃83.1系統(tǒng)運行流程83.1.1注冊網(wǎng)絡(luò)83.1.2獲取網(wǎng)絡(luò)參數(shù)93.1.3下發(fā)控制指令93.2通信協(xié)議規(guī)劃103.2.1規(guī)劃原則103.2.2WSN網(wǎng)絡(luò)結(jié)構(gòu)103.2.3通信協(xié)議11第4章PC控制軟件開發(fā)與測試164.1三層架構(gòu)程序設(shè)計簡介164.2CC2430終端節(jié)點對燈組的控制I/O口的分配關(guān)系174.3數(shù)據(jù)訪問層
4、設(shè)計174.3.1數(shù)據(jù)訪問層CommonDB類的設(shè)計174.3.2數(shù)據(jù)訪問層使用的函數(shù)功能174.3.3CommonDB 類的整體結(jié)構(gòu)184.3.4CommonDB 類中方法的功能描述及代碼實現(xiàn)194.4業(yè)務(wù)邏輯層設(shè)計214.4.1WSN協(xié)調(diào)器連接214.4.2觸發(fā)串口事件處理的主要代碼如下234.5窗體表示層設(shè)計244.5.1窗體文件的添加244.5.2窗體層的展示25第5章 系統(tǒng)設(shè)置265.1啟動調(diào)試265.2功能測試26總結(jié)28致謝29參考文獻30II摘要目前現(xiàn)有的城市路燈控制系統(tǒng)大多采用有線連接的方式,系統(tǒng)成本高、功耗大、施工復(fù)雜,而且存在能源浪費、后期維護困難等問題。針對以上缺點以道
5、惟爾公司CC2430無線傳感器節(jié)點和光照傳感器模塊為載體,基于IAR和VS2010開發(fā)環(huán)境,設(shè)計一個模擬道路燈光控制系統(tǒng),實現(xiàn)對道路燈光亮滅進行控制,并接受上位機監(jiān)控命令。該系統(tǒng)采用了無線傳感器網(wǎng)絡(luò)和ZigBee技術(shù),無線傳感器網(wǎng)絡(luò)是一種集無線通信、數(shù)據(jù)采集和信息處理功能于一體的新興網(wǎng)絡(luò)。ZigBee技術(shù)是無線傳感器網(wǎng)絡(luò)中最具代表性的一種新興技術(shù),具有低成本、低功耗等特點。將ZigBee技術(shù)應(yīng)用于城市路燈控制系統(tǒng),將有利于實現(xiàn)路燈控制系統(tǒng)的智能化和節(jié)能化。關(guān)鍵詞CC2430;無線傳感器網(wǎng)絡(luò);燈光控制;ZigBee概述在道路燈光控制中,為了實時地控制不同道路燈光的亮滅,需要一個分布式多點道路燈光
6、控制系統(tǒng)。傳統(tǒng)的多點分布式道路燈光控制系統(tǒng)多采用有線傳輸方式,然而隨著分布式節(jié)點的不斷增加,系統(tǒng)的布線復(fù)雜度和成本也就極具增加,這給系統(tǒng)的設(shè)計、維護和升級帶了許多不便。如何解決有線網(wǎng)絡(luò)帶來的諸多不便已成為當(dāng)下研究的熱點。無線傳感器網(wǎng)絡(luò)(WSN)具有自組織、可快速部署、屏蔽性強、無人值守等優(yōu)點。隨著射頻技術(shù)、集成電路技術(shù)的發(fā)展,無線通信功能的實現(xiàn)越來越容易,數(shù)據(jù)傳輸速率也越來越快,并且逐漸達到可以與有線網(wǎng)絡(luò)相媲美的水平。本設(shè)計旨在設(shè)計一種基于物聯(lián)網(wǎng)的模擬道路燈光控制系統(tǒng),用以實現(xiàn)對多個分散節(jié)點的燈光亮滅控制。采用模塊化設(shè)計,無論是硬件還是軟件,各個分層間結(jié)構(gòu)清楚。在技術(shù)架構(gòu)上,將感知、傳輸、應(yīng)用
7、分離,采用感知控制層、傳輸通信層、應(yīng)用服務(wù)層三層架構(gòu)設(shè)計。第2頁第章總體設(shè)計1.1設(shè)計目標(biāo)1經(jīng)調(diào)研分析,制定系統(tǒng)總體邏輯架構(gòu)和技術(shù)架構(gòu)。2合理選擇交通燈組,并開發(fā)基于CC2430平臺的驅(qū)動程序。3基于CC2430和TI Z-STACK協(xié)議棧,開發(fā)WSN應(yīng)用程序,組建具有分布式自組網(wǎng)能力的WSN燈光控制無線傳感器網(wǎng)絡(luò)。4完成PC展示層應(yīng)用軟件開發(fā)。5最終搭建一套具有較好實時性的燈光控制系統(tǒng)。1.2設(shè)計原則本系統(tǒng)在設(shè)計過程中綜合考慮了以下基本原則:1在達到預(yù)期功能的基礎(chǔ)上,確保系統(tǒng)的性能指標(biāo),如燈光控制實時性指標(biāo)、網(wǎng)絡(luò)自愈性指標(biāo)等。2模塊化設(shè)計,無論是硬件還是軟件,各個分層間結(jié)構(gòu)清楚,采用規(guī)范的通
8、訊協(xié)議,便于系統(tǒng)升級和網(wǎng)絡(luò)擴容。1.3技術(shù)架構(gòu)在技術(shù)架構(gòu)上,將感知、傳輸、應(yīng)用分離,采用感知控制層、傳輸通信層、應(yīng)用服務(wù)層三層架構(gòu)設(shè)計。PC展示層應(yīng)用軟件基.Net Framework框架,在VS2010平臺實現(xiàn)。第30頁第2章系統(tǒng)組成與工作過程2.1系統(tǒng)組成本系統(tǒng)以模擬智能交通為載體,它由感知層子系統(tǒng)、傳輸層子系統(tǒng)、應(yīng)用層子系統(tǒng)三個部分組成,如圖2-1所示。圖2-1燈光控制系統(tǒng)組成圖1-1中,感知層子系統(tǒng)由開關(guān)量控制節(jié)點和模擬量控制節(jié)點等兩類節(jié)點組成。其中,燈光控制節(jié)點、電源控制節(jié)點三類是開關(guān)量控制節(jié)點。傳輸層子系統(tǒng)是基于 CC2430 的 ZigBee 無線傳輸網(wǎng)。所有感知層節(jié)點的控制指令
9、均由應(yīng)用層子系統(tǒng)通過通過串口下發(fā)給 CC2430 協(xié)調(diào)器,再由后者通過 ZigBee 無線網(wǎng)絡(luò)下發(fā)給CC2430 終端節(jié)點。2.2本系統(tǒng)涉及的主要功能(1) 遠程星光大道燈光控制功能(2) 遠程太陽路燈光控遠制功能(3) 遠程濱河路燈光控制功能(4) 遠程月亮路燈光控制功能(5) 遠程水星路燈光控制功能本系統(tǒng)(基于物聯(lián)網(wǎng)的燈光控制系統(tǒng))是一個模擬城市道路燈光控制的系統(tǒng),模擬該系統(tǒng)的沙盤有6條道路,如圖2-2所示,每條道路上的路燈由若干組燈組組成,每組燈組通過控制單元與CC2430節(jié)點板相應(yīng)端口連接。以此類推,通過端口分配來實現(xiàn)對整條道路或者道路某一部分燈組的控制。圖2-2道路分布圖2.2.1功
10、能描述智能燈光控制:用戶可以根據(jù)需要控制沙盤里的任意燈光。WSN軟件開發(fā)智能燈光控制系統(tǒng):系統(tǒng)能根據(jù)用戶需要控制實時傳回數(shù)據(jù)信息。 1)軟啟功能:燈光的漸亮漸暗功能,能讓眼睛免受燈光驟亮驟暗的刺激,同時還可以延長燈具的使用壽命。 2)按各路段控制燈光:控制某一路段上燈光的亮滅狀態(tài),達到節(jié)能和便于管理的功效,使燈光更富人情味、成本低且便于管理。3)開關(guān)聯(lián)合:輕松實現(xiàn)某節(jié)點或某區(qū)域所有燈光的一鍵的全關(guān)和全閉功能,觸摸集中控制,使用更加方便。2.3系統(tǒng)的運行過程2.3.1注冊網(wǎng)絡(luò)系統(tǒng)啟動后,CC2430協(xié)調(diào)器首先建立無線網(wǎng)絡(luò),路由器和終端節(jié)點在發(fā)現(xiàn)網(wǎng)絡(luò)后,會主動加入網(wǎng)絡(luò),并上傳網(wǎng)絡(luò)參數(shù)(物理地址、網(wǎng)
11、絡(luò)地址、節(jié)點類型等)。注冊網(wǎng)絡(luò)的流程如圖2-3所示。圖2-3燈光控制電路的工作流程2.3.2下行鏈路(由PC到終端):在PC機上通過上位機向串口發(fā)送數(shù)據(jù),協(xié)調(diào)器收到串口數(shù)據(jù),再通過串口協(xié)議解析數(shù)據(jù),然后通過定制的無線協(xié)議將解析到的數(shù)據(jù)進行再次封裝,發(fā)送給終端節(jié)點;終端節(jié)點接收到數(shù)據(jù)之后,經(jīng)解析控制IO口的電平高低輸出;底層控制電路接收到高低電平,執(zhí)行對應(yīng)操作。2.3.3控制臺請求啟動/停止當(dāng)整個系統(tǒng)需要啟動時,WindowsCE控制臺上傳啟動信息,PC下發(fā)啟動系統(tǒng)指令。啟動系統(tǒng)的流程如圖2-4所示。 圖2-4啟動系統(tǒng)流程第3章系統(tǒng)通訊協(xié)議規(guī)劃3.1系統(tǒng)運行流程道路燈光控制系統(tǒng)的運行主要包括注冊
12、網(wǎng)絡(luò)、獲取網(wǎng)絡(luò)參數(shù)、下發(fā)控制指令等三方面的操作。在道路燈光控制系統(tǒng)中服務(wù)器與CC2430協(xié)調(diào)器之間是通過串口進行通信,兩者之間是需要使用統(tǒng)一的波特率、并按指定幀格式收發(fā)數(shù)據(jù)。CC2430協(xié)調(diào)器與CC2430終端節(jié)點之間是通過ZigBee無線網(wǎng)絡(luò)通信的,需要物理地址和網(wǎng)絡(luò)地址。CC2430終端節(jié)點是通過普通I/O口將控制命令轉(zhuǎn)化為控制模塊(執(zhí)行機構(gòu))的驅(qū)動信號的。3.1.1注冊網(wǎng)絡(luò)系統(tǒng)啟動后,CC2430協(xié)調(diào)器首先建立無線網(wǎng)絡(luò),路由器和終端節(jié)點在發(fā)現(xiàn)網(wǎng)絡(luò)后,會主動加入網(wǎng)絡(luò),并上傳網(wǎng)絡(luò)參數(shù)(物理地址、網(wǎng)絡(luò)地址、節(jié)點類型等)。注冊網(wǎng)絡(luò)的流程如圖3-1所示。圖3-1注冊網(wǎng)絡(luò)運行流程3.1.2獲取網(wǎng)絡(luò)參
13、數(shù)系統(tǒng)運行中,為及時發(fā)現(xiàn)掉線節(jié)點,系統(tǒng)會周期性去詢問節(jié)點,要求返回網(wǎng)絡(luò)參數(shù)。獲取網(wǎng)絡(luò)參數(shù)的流程如圖3-2所示。圖3-2獲取網(wǎng)絡(luò)參數(shù)運行流程3.1.3下發(fā)控制指令當(dāng)需要改變各被控對象的運行狀態(tài)時,系統(tǒng)就需要下發(fā)各類控制指令,其流程如圖3-3所示。圖3-3下發(fā)控制指令運行流程3.2通信協(xié)議規(guī)劃3.2.1規(guī)劃原則1)透明傳輸,將控制與傳輸分離。2)ZigBee無線網(wǎng)支持廣播、點對點通信。3.2.2WSN網(wǎng)絡(luò)結(jié)構(gòu)1.WSN類型節(jié)點1)協(xié)調(diào)器(Coordinator)在無線傳感網(wǎng)絡(luò)中,有且只有一個協(xié)調(diào)器節(jié)點,它負責(zé)選擇網(wǎng)絡(luò)所使用的頻率通道、建立網(wǎng)絡(luò)并將其他節(jié)點加入網(wǎng)絡(luò)、提供信息路由、安全管理和其他服務(wù)。
14、2)路由器(Router)路由器節(jié)點是網(wǎng)絡(luò)遠距離延伸的必要部件。它負責(zé)發(fā)送和接受節(jié)點自身信息;節(jié)點之間轉(zhuǎn)發(fā)信息;允許子節(jié)點通過它加入網(wǎng)絡(luò)。3)傳感器節(jié)點(Sensor)傳感器節(jié)點的主要任務(wù)就是發(fā)送和接收信息,通常一個終端節(jié)點處在數(shù)據(jù)收發(fā)狀態(tài)時可進入休眠狀態(tài)以降低能耗。2. 網(wǎng)絡(luò)拓撲選擇本系統(tǒng)的無線網(wǎng)絡(luò)基于Z-Stack協(xié)議棧完成,由于控制點不多、分布范圍較窄,故采用星形網(wǎng)絡(luò)拓撲結(jié)構(gòu),如圖3-4所示。圖3-4星形網(wǎng)絡(luò)拓撲3.2.3通信協(xié)議協(xié)議的規(guī)劃應(yīng)采用分層方式實施,以便明確邊界。對于本系統(tǒng)而言,整個協(xié)議從下自上為分三層,如圖3-5所示。圖3-5自定義協(xié)議的層次結(jié)構(gòu)1)網(wǎng)絡(luò)間傳輸數(shù)據(jù)流的特點。表
15、3-1數(shù)據(jù)流特點序號鏈路方向數(shù)據(jù)流功能數(shù)據(jù)流大小數(shù)據(jù)流內(nèi)容1上行注冊網(wǎng)絡(luò)(1-1)>=24B源節(jié)點物理地址(8B)源節(jié)點網(wǎng)絡(luò)地址(2B)源節(jié)點的節(jié)點類型(3B)父節(jié)點物理地址(8B)父節(jié)點網(wǎng)絡(luò)地址(2B)目標(biāo)節(jié)點提取的鏈路質(zhì)量(1B)上傳網(wǎng)絡(luò)參數(shù)(2-4)>=24B源節(jié)點物理地址(8B)源節(jié)點網(wǎng)絡(luò)地址(2B)源節(jié)點的節(jié)點類型(3B)父節(jié)點物理地址(8B)父節(jié)點網(wǎng)絡(luò)地址(2B)目標(biāo)節(jié)點提取的鏈路質(zhì)量(1B)上傳執(zhí)行結(jié)果(3-5)>=11B源節(jié)點物理地址(8B)源節(jié)點網(wǎng)絡(luò)地址(2B)執(zhí)行結(jié)果(1B)2下行下發(fā)獲取網(wǎng)絡(luò)參數(shù)指令(2-3)>=13B目標(biāo)節(jié)點物理地址(8B)目標(biāo)節(jié)
16、點網(wǎng)絡(luò)地址(2B)幀功能標(biāo)識(3B)下發(fā)控制指令(3-3)>=14B目標(biāo)節(jié)點物理地址(8B)目標(biāo)節(jié)點網(wǎng)絡(luò)地址(2B)幀功能標(biāo)識(3B)控制參數(shù)(1B)2)協(xié)議幀格式。表3-2無線網(wǎng)通信協(xié)議基本幀格式內(nèi)容字節(jié)數(shù)備注幀頭&WSN4幀類型3幀長度241物理地址8功能復(fù)用:(1)注冊網(wǎng)絡(luò)和獲取網(wǎng)絡(luò)參數(shù)時:承載源節(jié)點物理地址(8B)、網(wǎng)絡(luò)地址(2B);(2)下發(fā)控制指令時:承載目標(biāo)節(jié)點物理地址(8B)、網(wǎng)絡(luò)地址(2B);(3)上傳執(zhí)行結(jié)果時:承載源節(jié)點物理地址(8B)、網(wǎng)絡(luò)地址(2B)。網(wǎng)絡(luò)地址2數(shù)據(jù)包5功能復(fù)用:(1)注冊網(wǎng)絡(luò)和獲取網(wǎng)絡(luò)參數(shù)時:18-19字節(jié)承載父節(jié)點網(wǎng)絡(luò)地址(2B),2
17、0-22承載節(jié)點類型(3B);(2)下發(fā)控制指令時:承載控制參數(shù)(1B),沒有用完的字節(jié)填充0;(3)上傳執(zhí)行結(jié)果時:承載執(zhí)行結(jié)果(1B),沒有用完的字節(jié)填充0。連接質(zhì)量1幀尾END33)表1-3,各字段含義。表3-3各字段含義幀頭用于表明一幀數(shù)據(jù)的開始。幀類型用于指明傳輸?shù)倪@一幀的數(shù)據(jù)的用途。幀長度用于指明接下來要傳輸?shù)奈锢淼刂贰⒕W(wǎng)絡(luò)地址、數(shù)據(jù)包等三字段的長度。物理地址功能復(fù)用。網(wǎng)絡(luò)地址功能復(fù)用。數(shù)據(jù)包用于指明通信中具有實質(zhì)意義的數(shù)據(jù)。連接質(zhì)量用于指明 WSN 中節(jié)點與節(jié)點通信的鏈路的通信質(zhì)量。幀尾用于表明一幀數(shù)據(jù)的結(jié)束。4)幀類型簡表。表3-4幀類型簡表幀類型功能命令備注下行鏈路下發(fā)獲取網(wǎng)
18、絡(luò)參數(shù)指令(2-3)RNPRead Node Network Parameters讀取節(jié)點網(wǎng)絡(luò)參數(shù)下發(fā)控制指令(3-3)CPAControl by Physical Address 根據(jù)物理地址下發(fā)控制指令CNAControl by Network Address 根據(jù)網(wǎng)絡(luò)地址下發(fā)控制指令上行鏈路注冊網(wǎng)絡(luò)(1-1)JNSJoin in Network When Started 新節(jié)點加入網(wǎng)絡(luò)上傳網(wǎng)絡(luò)參數(shù)(2-4)SPSSend Parameters to Server 上傳網(wǎng)絡(luò)參數(shù)到服務(wù)器上傳執(zhí)行結(jié)果(3-5)SRSSend Result to Server 上傳網(wǎng)絡(luò)參數(shù)到服務(wù)器5)幀類型詳表
19、。表3-5JNS幀類型詳表功能類型詳細解釋JNS注冊網(wǎng)絡(luò)(1)用途:終端節(jié)點新加入網(wǎng)絡(luò)后,向協(xié)調(diào)器發(fā)送節(jié)點入網(wǎng)信息。(2)終端節(jié)點或路由器上傳到協(xié)調(diào)器的數(shù)據(jù)項目字節(jié)數(shù)內(nèi)容幀頭4B&WSN幀類型3BJNS幀長度1B0x18物理地址8B源節(jié)點物理地址網(wǎng)絡(luò)地址2B源節(jié)點網(wǎng)絡(luò)地址數(shù)據(jù)包7B0-1字節(jié)父節(jié)點網(wǎng)絡(luò)地址2-4字節(jié)節(jié)點類型(終端節(jié)點:RFD)連接質(zhì)量1B協(xié)調(diào)器收到節(jié)點數(shù)據(jù)后的連接質(zhì)量數(shù)據(jù)幀尾3BEND(3)使用步驟1)協(xié)調(diào)器建立網(wǎng)絡(luò)2)啟動路由器或終端節(jié)點3)終端節(jié)點主動上傳入網(wǎng)信息。字符串示例:&WSNJNS123456780100RFD5END表3-6CPA幀類型詳表功能類
20、型詳細解釋CPA下發(fā)控制指令(1)用途:根據(jù)網(wǎng)絡(luò)地址下發(fā)控制指令。(2)協(xié)調(diào)器下發(fā)到終端的數(shù)據(jù)項目字節(jié)數(shù)內(nèi)容幀頭4B&WSN幀類型3BCPA幀長度1B0x12物理地址8B目標(biāo)節(jié)點物理地址網(wǎng)絡(luò)地址2B目標(biāo)節(jié)點網(wǎng)絡(luò)地址數(shù)據(jù)包7B1字節(jié)燈組號2-3字節(jié)控制狀態(tài)4-7字節(jié)0000連接質(zhì)量1B協(xié)調(diào)器收到節(jié)點數(shù)據(jù)后的連接質(zhì)量數(shù)據(jù)幀尾3BEND(3)使用步驟及示例1)啟動協(xié)調(diào)器和終端節(jié)點2)向終端下發(fā)控制指令3)終端節(jié)點接收下發(fā)的指令字符串示例:&WSNCPA123456780100RFD5END表3-7RNP幀類型詳表功能類型詳細解釋RNP下發(fā)獲取網(wǎng)絡(luò)參數(shù)指令(1)用途:協(xié)調(diào)器向終端下發(fā)獲
21、取網(wǎng)絡(luò)(2)由協(xié)調(diào)器下發(fā)到路由器或終端的數(shù)據(jù)項目字節(jié)數(shù)內(nèi)容幀頭4B&WSN幀類型3BRNP幀長度1B0x12物理地址8B源節(jié)點物理地址網(wǎng)絡(luò)地址2B源節(jié)點網(wǎng)絡(luò)地址數(shù)據(jù)包7B00000000連接質(zhì)量1B協(xié)調(diào)器收到節(jié)點數(shù)據(jù)后的連接質(zhì)量數(shù)據(jù)幀尾3BEND(3)使用步驟及示例1)下發(fā)獲取網(wǎng)絡(luò)參數(shù)指令2)啟動協(xié)調(diào)器3)協(xié)調(diào)器下發(fā)信息給終端,并判斷是否接收?字符串示例:&WSNRNP123456780100RFD5END第4章PC控制軟件開發(fā)與測試PC展示層軟件用于實時接收ZigBee無限傳感器網(wǎng)絡(luò)上報的各交通路燈的亮滅狀態(tài),在本展示層軟件中,主要分為窗體表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。4.
22、1三層架構(gòu)程序設(shè)計簡介1.數(shù)據(jù)訪問層在三層架構(gòu)設(shè)計中,數(shù)據(jù)訪問層一般用于對數(shù)據(jù)庫進行各項操作,即實現(xiàn)對數(shù)據(jù)表的Select、Insert、Update、Delete操作。本項目不涉及數(shù)據(jù)庫的操作,因此數(shù)據(jù)訪問層的功能主要是完成串口的操作,包括獲取可用串口、打開串口、關(guān)閉串口、通過串口收發(fā)數(shù)據(jù)等。2. 業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層是三層架構(gòu)設(shè)計中體現(xiàn)核心價值的部分,主要負責(zé)業(yè)務(wù)規(guī)劃的制定、業(yè)務(wù)流程的實現(xiàn)。3.窗體表示層 表示層位于最外層(最上層)離用戶最近,用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。三層架構(gòu)設(shè)計方框圖如圖4-1所示:圖4-1三層架構(gòu)設(shè)計方框圖4.2CC2430終端
23、節(jié)點對燈組的控制I/O口的分配關(guān)系各節(jié)點燈光控制分配端口如表4-1所示:表4-1各路段分配 星光大道0803P1.5星光大道南側(cè)奇數(shù)燈0xFB0804P1.0星光大道北側(cè)偶數(shù)燈0x6DP1.3星光大道北側(cè)奇數(shù)燈P1.6星光大道南側(cè)奇數(shù)燈太陽路0803P1.3太陽路偶數(shù)燈0xEDP1.6太陽路奇數(shù)燈濱河路0803P1.4濱河路奇數(shù)燈0xF70804P1.2濱河路偶數(shù)燈0xDF月亮路0804P1.5月亮路0xFB水星路0803P1.1水星路奇數(shù)燈0xBEP1.7水星路偶數(shù)燈銀河大道0803P1.0銀河大道南側(cè)偶數(shù)燈0x5FP1.2銀河大道北側(cè)偶數(shù)燈0804P1.1銀河大道南側(cè)奇數(shù)燈0xB7P1.4
24、銀河大道北側(cè)奇數(shù)燈4.3數(shù)據(jù)訪問層設(shè)計4.3.1數(shù)據(jù)訪問層CommonDB類的設(shè)計 在項目解決方案資源管理器中右擊 SmartHomeServer項目,選擇“添加新建文件夾” , 文件夾命名為 Class, 然后在 Class下新建 DataAcess文件夾, 然后右擊 DataAcess, 選擇 “添 加新建項” ,選擇“類”模板,類的文件名為 CommonDB.cs,這樣用于數(shù)據(jù)訪問層的類添加 進 DataAcess文件夾中。 數(shù)據(jù)訪問層的 CommonDB類主要封裝對 SQL Server Mobile 數(shù)據(jù)庫的訪問,根據(jù)連接數(shù)據(jù) 庫的字符串獲得連接對象、執(zhí)行 Select 語句獲得數(shù)據(jù)
25、集 DataSet 以及執(zhí)行除 Select語句之外的其他操作。4.3.2數(shù)據(jù)訪問層使用的函數(shù)功能數(shù)據(jù)訪問層的主要功能是串口操作,包括打開串口,關(guān)閉串口,接收串口數(shù)據(jù)等。其中用到的函數(shù)及功能如圖4-2所示:表4-2函數(shù)功能 函數(shù)名詳細功能SerialPort.GetPortNames()檢測當(dāng)前PC中是否有可用串口serialPort1.IsOpen()檢測串口是否打開serialPort1.Open()打開串口serialPort1.Close()關(guān)閉串口serialPort1.Read()獲取串口數(shù)據(jù)與數(shù)據(jù)長度4.3.3CommonDB 類的整體結(jié)構(gòu)數(shù)據(jù)訪問層的主要功能是串口操作,包括串口
26、打開、關(guān)閉、數(shù)據(jù)觸發(fā)等。基于來實現(xiàn)的Microsoft Visual Studio 2010來實現(xiàn),.NET Framework是支持生成和運行下一代應(yīng)用程序和 XML Web services 的內(nèi)部 Windows 組件,在本程序中主要通過軟件中的控件來實現(xiàn)對各路段的控制。圖4-2數(shù)據(jù)庫整體結(jié)構(gòu)4.3.4CommonDB 類中方法的功能描述及代碼實現(xiàn)using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System
27、.Windows.Forms;using System.Configuration;namespace StudentInfo.DataAccess class CommonDB /獲取連接對象 public SqlConnection GetConnection() string constr = "Data Source=.;Initial Catalog=StudentManagement;Integrated Security=True" SqlConnection Con = new SqlConnection(constr); return Con; /獲取Re
28、ader對象 public bool GetDataReader(string Sql) SqlConnection Con = this.GetConnection(); SqlCommand Cmd = new SqlCommand(Sql, Con); Con.Open(); SqlDataReader reader = Cmd.ExecuteReader(); if (reader.Read() reader.Close(); Con.Close(); return true; else reader.Close(); Con.Close(); return false; /獲取數(shù)據(jù)集
29、 public DataSet GetDataSet(string Sql, string tablename) SqlConnection Con = this.GetConnection(); SqlCommand Cmd = new SqlCommand(Sql, Con); SqlDataAdapter Sda = new SqlDataAdapter(Cmd); DataSet Ds = new DataSet(); try Sda.Fill(Ds, tablename); return Ds; catch (SqlException ex) if (Con.State != Con
30、nectionState.Closed) Con.Close(); MessageBox.Show(ex.Message); return null; /執(zhí)行除Select語句之外的其他數(shù)據(jù)操作(Insert、Update、Delete) public int ExcuteSql(string Sql) int flag = 0; SqlConnection Con = this.GetConnection(); SqlCommand Cmd = new SqlCommand(Sql, Con); try Con.Open(); flag = Cmd.ExecuteNonQuery(); ca
31、tch (SqlException ex) MessageBox.Show(ex.Message); finally Con.Close(); return flag; 4.4業(yè)務(wù)邏輯層設(shè)計邏輯控制層主要是接受來自窗體表示層用戶的操作請求,處理數(shù)據(jù)的上報,并回傳數(shù)據(jù)在窗體表示層顯示。4.4.1WSN協(xié)調(diào)器連接1.程序的工作流程是首先彈出Form1.cs窗體,在WSN協(xié)調(diào)器連接中的串口操作。圖4-3打開串口的流程圖2波特率和串口的獲取 string portname = this.cbBWSNPortName.Text;int baudrate = int.Parse(this.cbBWSNPo
32、rtBaudRate.Text); 3.連接協(xié)調(diào)器 1)獲取串口號及波特率 2)實例化串口操作類的對象 3)處理執(zhí)行結(jié)果 4)為WSN協(xié)調(diào)器串口添加串口接收數(shù)據(jù)事件的處理方法4.4.2觸發(fā)串口事件處理的主要代碼如下 Private void RFIDPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) /(1)休眠250ms Thread.Sleep(250); /(2)從串口中獲取數(shù)據(jù) int len = RFIDPort.BytesToRead; byte rfiddata = new
33、 bytelen; RFIDPort.Read(rfiddata, 0, len); /(3)將所獲取的數(shù)據(jù)展示在窗體中 Form1.CheckForIllegalCrossThreadCalls = false; this.tBPortData.Text += (" RFID讀卡信息:"); foreach (byte ch in rfiddata) this.tBPortData.Text += ch.ToString("X2") + " " this.tBPortData.Text += ("rn"); th
34、is.tBPortData.SelectionStart = this.tBPortData.TextLength; this.tBPortData.ScrollToCaret(); /(5)判斷是否為“功能演示”狀態(tài) if (this.tabControl1.SelectedIndex = 1) /提取卡號 for (int i = 3; i < 7; i+) cardsn += rfiddatai.ToString("X2"); 4.5窗體表示層設(shè)計4.5.1窗體文件的添加1.首先創(chuàng)建一個Windows窗體應(yīng)用程序WsnRfidLamo,該項目所包括的文件如下圖所
35、示,包含F(xiàn)orm1.cs窗體。程序運行時,首先顯示Form1.cs窗體,窗體下有系統(tǒng)測試和功能測試兩大部分。圖4-4項目文件2.在Form1.cs窗體下添加相應(yīng)控件,控件的名稱及屬性如表所示。表4-3Form1.cs窗體所屬控件名稱及屬性控件類型屬性屬性值控件類型屬性屬性值ButtonNamebtnOpenWSNPortLabelNamelabel1Text連接協(xié)調(diào)器Text波 特 率ButtonNamebtnCloseWSNPortLabelNamelabel2Text關(guān)閉協(xié)調(diào)器Text串口名稱ButtonNamebtnOpenXgddTextBoxNametBPortDataText星光大
36、道開燈TextButtonNamebtnCloseXgddGroupBoxNamegBPortDataText星光大道關(guān)燈TextWSN串口數(shù)據(jù)4.5.2窗體層的展示圖4-5PC服務(wù)端系統(tǒng)設(shè)置界面圖圖4-6PC服務(wù)端功能演示界面圖第5章 系統(tǒng)設(shè)置5.1啟動調(diào)試在主窗體基于物聯(lián)網(wǎng)的燈光控制系統(tǒng)下有有兩大界面分別是系統(tǒng)設(shè)置和功能演示,啟動調(diào)試首先要進入系統(tǒng)設(shè)置界面下的WSN協(xié)調(diào)器連接,連接串口COM1和將波特率設(shè)置為9600并在控件btnOpenWSNPort下連接協(xié)調(diào)器,然后進入功能演示界面點擊btnOpenXgdd按鍵執(zhí)行星光大道開燈的命令,點擊btnCloseXgdd按鍵執(zhí)行星光大道關(guān)燈的命令,依次執(zhí)行各路段燈光控制的命令。5.2功能測試在道路燈光控制中,為了實時地控制不同道路燈光的亮滅,用以實現(xiàn)對多個分散節(jié)點的燈光亮滅控制
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石油加工催化劑項目合作計劃書
- 第1單元第2課《數(shù)據(jù)分析》教學(xué)設(shè)計 2023-2024學(xué)年青島版(2010)初中信息技術(shù)七年級下冊
- 2023-2024學(xué)年部編版九年級歷史上冊 第16課 早期殖民擴張 教學(xué)設(shè)計
- 第六單元名著導(dǎo)讀《水滸傳》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文九年級上冊
- 2025年臥式螺旋離心脫水機項目發(fā)展計劃
- 2024年12月莆田仙游縣人武部1名辦公室文員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 第17課 外交事業(yè)的發(fā)展 教學(xué)設(shè)計-2023-2024學(xué)年八年級歷史下冊同步教學(xué)設(shè)計
- 第19課《懷疑與學(xué)問》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文九年級上冊
- 2025年??诮?jīng)濟學(xué)院單招職業(yè)傾向性測試題庫完美版
- 第1課 鴉片戰(zhàn)爭 教學(xué)設(shè)計 -2024-2025學(xué)年統(tǒng)編版八年級歷史上冊
- 《婚戀觀教育》課件
- 醫(yī)療器械質(zhì)量負責(zé)人崗位職責(zé)
- 中醫(yī)小兒常見皮膚病
- 第十七屆山東省職業(yè)院校技能大賽機器人系統(tǒng)集成應(yīng)用技術(shù)樣題1學(xué)生賽
- 血管通路的介入治療
- 臨床三基考試題庫(附答案)
- 2024年浙江省杭州市拱墅區(qū)中考語文一模試卷
- 無人售貨機的食品安全管理制度
- 校園直飲水機供貨安裝及售后服務(wù)方案
- 個人保證無糾紛承諾保證書
- DB51T10009-2024DB50T10009-2024康養(yǎng)度假氣候類型劃分
評論
0/150
提交評論