基于物聯(lián)網(wǎng)的照明控制系統(tǒng)—arm客戶端軟件設計_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于物聯(lián)網(wǎng)的照明控制系統(tǒng)—ARM客戶端軟件設計</p><p>  [導讀] 基于物聯(lián)網(wǎng)的照明控制系統(tǒng)以ZigBee、單片機、傳感器、C#和PHP程序設計為主要技術手段,包括照明控制單元、ZigBee無線傳輸層(含網(wǎng)關)、PC展示及控制層3個層次的現(xiàn)場控制單元、CC2430無線傳輸網(wǎng)絡、ARM網(wǎng)關硬件單元、</p><p>  基于物聯(lián)網(wǎng)的照明控制系統(tǒng)以Zi

2、gBee、單片機、傳感器、C#和PHP程序設計為主要技術手段,包括照明控制單元、ZigBee無線傳輸層(含網(wǎng)關)、PC展示及控制層3個層次的現(xiàn)場控制單元、CC2430無線傳輸網(wǎng)絡、ARM網(wǎng)關硬件單元、ARM網(wǎng)關客戶端軟件、基于C#的服務端軟件、基于PHP的展示軟件等6個子系統(tǒng),用于實現(xiàn)一套模擬城市照明控制系統(tǒng)。</p><p>  本課題首先規(guī)劃了WSN協(xié)調器與ARM網(wǎng)關的串口通訊協(xié)議及ARM客戶端與PC服務端的

3、TCP/IP通訊協(xié)議.然后基于Windows CE 6.0操作系統(tǒng),運用C#編程語言開發(fā)了ARM的客戶端軟件。經(jīng)測試,客戶端軟件實現(xiàn)了按規(guī)劃的協(xié)議將協(xié)調器上傳數(shù)據(jù)發(fā)往服務端和將服務端下發(fā)數(shù)據(jù)發(fā)往協(xié)調器的功能,性能穩(wěn)定,具有一定的實用價值。</p><p><b>  1 需求分析</b></p><p>  1.1 物聯(lián)網(wǎng)照明控制系統(tǒng)的組成及工作過程</p>

4、;<p>  1.1.1 系統(tǒng)組成</p><p>  物聯(lián)網(wǎng)照明控制系統(tǒng)由感知層子系統(tǒng)、傳輸層子系統(tǒng)、應用層子系統(tǒng)三個部分組成,如圖1所示。其中,感知層子系統(tǒng)由開關量照明控制節(jié)點組成。傳輸層子系統(tǒng)包括基于CC2430的ZigBee無線傳輸網(wǎng)和基于TCP/IP的局域網(wǎng)傳輸網(wǎng)。應用層子程序系統(tǒng)由運行于服務器上的服務端軟件及其它展示軟件組成,本系統(tǒng)包括Web展示軟件和服務器Server軟件。如圖1所示。

5、</p><p>  1.1.2 系統(tǒng)運行過程</p><p>  在物聯(lián)網(wǎng)照明控制系統(tǒng)中,所有感知層節(jié)點的控制指令均由應用層子系統(tǒng)通過服務端下發(fā)給傳輸層ARM網(wǎng)關客戶端,然后由ARM處理器通過串口下發(fā)給CC2430協(xié)調器,再由后者通過ZigBee無線網(wǎng)絡下發(fā)給CC2430終端節(jié)點。執(zhí)行的操作指令主要包括注冊網(wǎng)絡、獲取網(wǎng)絡參數(shù)、下發(fā)控制指令等3個方面。</p><p&g

6、t;<b>  1)注冊網(wǎng)絡</b></p><p>  系統(tǒng)啟動后,CC2430協(xié)調器首先建立無線網(wǎng)絡,路由器和終端節(jié)點在發(fā)現(xiàn)網(wǎng)絡后,會主動加入網(wǎng)絡,并上傳網(wǎng)絡參數(shù)(物理地址、網(wǎng)絡地址、節(jié)點類型等)。</p><p><b>  2)獲取網(wǎng)絡參數(shù)</b></p><p>  系統(tǒng)運行中,為及時發(fā)現(xiàn)掉線節(jié)點,系統(tǒng)會周期性去

7、詢問節(jié)點,要求返回網(wǎng)絡參數(shù)。獲取網(wǎng)絡參數(shù)的流程。</p><p><b>  3)下發(fā)控制指令</b></p><p>  當需要改變各被控對象的運行狀態(tài)時,系統(tǒng)就需要下發(fā)各類控制指令。</p><p>  1.2 ARM客戶端軟件的功能需求分析</p><p>  ARM網(wǎng)關是傳輸層子系統(tǒng)的核心設備,主要完成數(shù)據(jù)轉發(fā)、

8、協(xié)議轉換、命令代理和映射、本地存儲等功能,支持無線傳感器網(wǎng)絡內部數(shù)據(jù)協(xié)同和匯聚,支持ZigBee接入、TCP /IP網(wǎng)絡接入,從而橋接無線傳感器網(wǎng)絡與互聯(lián)網(wǎng)。</p><p>  ARM客戶端軟件主要用于實現(xiàn)接收ZigBee無線傳感網(wǎng)絡協(xié)調器上傳的數(shù)據(jù),然后發(fā)送到服務器。同時,對于服務器下發(fā)的一些控制命令進行解析,并通過串口傳輸?shù)綗o線網(wǎng)絡的協(xié)調器。</p><p>  ARM網(wǎng)關整體上采用

9、分層設計方案,體系結構如圖1所示。硬件部分主要包括ZigBee通信節(jié)點、S3C2440 ARM主控模塊、USB及網(wǎng)絡等外設模塊。軟件部分包括軟件支持層、應用層。圖2中,軟件支持層由硬件驅動、Windows CE操作系統(tǒng)以及支持Z—Stack的協(xié)議棧等構成。應用層由地址適配層、應用協(xié)議層、業(yè)務邏輯應用程序三部分構成,地址適配層用于Zigbee地址和以太網(wǎng)IP地址與應用層地址的映射,應用協(xié)議層是用于規(guī)范節(jié)點通信的數(shù)據(jù)幀格式,二者相互配合可實

10、現(xiàn)節(jié)點間數(shù)據(jù)的透明傳輸。</p><p>  本課題所需開發(fā)的是軟件部分的應用層軟件,涉及協(xié)議轉換、數(shù)據(jù)轉發(fā)、人機交互等功能,宜采用軟件設計中的三層架構進行軟件開發(fā)。所謂三層架構,是指數(shù)據(jù)訪問層、業(yè)務邏輯層以及窗體表示層。本課題主要涉及業(yè)務邏輯層和窗體表示層的設計與功能實現(xiàn)。</p><p><b>  2 通信協(xié)議規(guī)劃</b></p><p>

11、;  2.1 通信協(xié)議規(guī)劃原則</p><p>  1)透明傳輸,將控制與傳輸分離。協(xié)議的規(guī)劃不宜采用按功能方式規(guī)劃,而應采用分層方式實施,以便明確邊界。對于本系統(tǒng)而言,整個協(xié)議從下自上為分三層,如圖3所示。</p><p>  2)本系統(tǒng)WSN類型節(jié)點由協(xié)調器、路由器、傳感器節(jié)點三種組成,拓撲結構有樹狀形、星形網(wǎng)絡等。由于本系統(tǒng)控制點不多、分布范圍較窄,故采用星形網(wǎng)絡拓撲結構。支持<

12、;/p><p>  ZigBee無線網(wǎng)廣播、點對點通信。</p><p>  2.2 ARM網(wǎng)關通訊協(xié)議詳細幀格式規(guī)劃</p><p>  ARM網(wǎng)關通訊協(xié)議詳細幀格式規(guī)劃包括注冊網(wǎng)絡、獲取網(wǎng)絡參數(shù)、返回網(wǎng)絡參數(shù)、下發(fā)操作指令、上傳操作結果等協(xié)議的規(guī)劃。</p><p>  1)注冊網(wǎng)絡通訊協(xié)議</p><p>  注冊網(wǎng)

13、絡是指當終端節(jié)點或路由器新加入網(wǎng)絡后,主動向上級節(jié)點發(fā)送源節(jié)點網(wǎng)絡參數(shù)的過程。從信息流向來看,注冊網(wǎng)絡的信息是由CC2430終端節(jié)點出發(fā),經(jīng)協(xié)調器轉發(fā)至PC。</p><p>  2)獲取網(wǎng)絡參數(shù)通訊協(xié)議</p><p>  獲取網(wǎng)絡參數(shù)是PC根據(jù)人機交互需要,通過WSN協(xié)調器下發(fā)獲取網(wǎng)絡參數(shù)指令,終端節(jié)點或路由器收到指令后,向上級節(jié)點返回源節(jié)點的網(wǎng)絡參數(shù)。本系統(tǒng)中只有當節(jié)點自動注冊網(wǎng)絡失

14、敗時,才從服務器手動發(fā)送指令獲取節(jié)點網(wǎng)絡參數(shù)。從信息流向來看獲取網(wǎng)絡參數(shù)包括從PC到客戶端,再由客戶端發(fā)往協(xié)調器,最終到路由器和終端節(jié)點的下行發(fā)送指令,以及上行返回網(wǎng)絡參數(shù)兩個方面。</p><p>  3)返回網(wǎng)絡參數(shù)通訊協(xié)議</p><p>  當節(jié)點收到由客戶端轉發(fā)來自服務端的獲取網(wǎng)絡指令后,自動向客戶端返回節(jié)點的網(wǎng)絡參數(shù),再由客戶端向服務端返回數(shù)據(jù)。</p><

15、p>  4)下發(fā)操作指令通訊協(xié)議</p><p>  本系統(tǒng)中PC下發(fā)控制指令,是通過WSN協(xié)調器下發(fā)開燈或關燈指令,終端節(jié)點或路由器收到指令后,向上級節(jié)點返回源節(jié)點的執(zhí)行結果。從信號流向來看,指令是由PC發(fā)出,經(jīng)串口發(fā)送到客戶端,再由客戶端經(jīng)串口將指令送入WSN協(xié)調器,然后下發(fā)到終端節(jié)點。</p><p>  5)上傳操作結果通訊協(xié)議</p><p>  本

16、系統(tǒng)中控制上傳控制指令,是通過WSN協(xié)調器上傳到PC下發(fā)選擇開燈或關燈指令,終端節(jié)點或路由器收到指令后,向上級節(jié)點返回源節(jié)點的執(zhí)行結果(包括提取到的溫度、濕度以及燈光亮度參數(shù))。從信號流向來看,指令是由PC發(fā)出,經(jīng)串口送入WSN協(xié)調器,然后下發(fā)到終端節(jié)點,再經(jīng)串口傳輸?shù)絾纹瑱C。</p><p>  3 ARM客戶端軟件設計</p><p>  3.1 業(yè)務邏輯層的設計</p>

17、<p>  業(yè)務邏輯層涉及數(shù)據(jù)處理SerialPortClass.cs,包括搜尋設備可用的串口、打開串口、關閉串口、下發(fā)指令并接收數(shù)據(jù)4種方法。對應方法如表1所示。</p><p>  3.2 業(yè)務邏輯層的功能實現(xiàn)</p><p>  1)SearchSerialPorts方法</p><p>  該方法主要用于搜尋設備可用串口,其詳細代碼如下:<

18、/p><p>  2)OpenSerialPort方法</p><p>  該方法主要用于打開串口,該方法先判斷串口是否已經(jīng)打開(0-打開串口成功;1-串口被占用;2-打開串口異常;3-打開串口失敗;),然后在串口未被占用的情況下,打開串口。</p><p>  3)CloseSeriaIPort方法</p><p>  該方法主要用于關閉串口,

19、該方法先判斷串口是否已經(jīng)打開(串口未打開,無需關閉),然后在串口已打開情況下,關閉串口(0-關閉串口成功;1-串口未打開;2-關閉串口失敗;3-關閉串口異常。</p><p>  4)SendDataToPort方法</p><p>  該方法主要用于下發(fā)指令并接收數(shù)據(jù),定義一個byte[]類型封裝變量cmd,首先判斷串口是否打開。若打開,則通過第一個默認通道發(fā)送cmd,并返回true,若

20、未打開,直接返回false。</p><p>  3.3 窗體表示層的設計</p><p>  1)添加窗體文件并設計窗體</p><p>  窗體表示層的設計,在設計器中選擇“項目→添加Windons窗體”,打開“添加新項”對話框。選擇“Windons”模板,添加frmClient.cs窗體,根據(jù)需求設計frmClient.cs窗體,如圖4所示。</p>

21、;<p>  2)frmClient窗體代碼文件(frmClient.cs)的結構</p><p>  在frmClient.cs中,首先需要定義一些全局變量,實例化有關公共對象,然后編寫諸如連接設備(串口)、斷開設備(串口)、接收數(shù)據(jù)、轉發(fā)數(shù)據(jù)等事件的處理方法。</p><p>  3.4 窗體表示層的功能實現(xiàn)</p><p>  1)frmClie

22、nt_Load事件處理方法</p><p>  在frmClient窗體加載事件處理過程中,需搜尋并獲取當前可用串口號寫入ComboBox控件cbbSerialPort的Items中并顯示,并設置默認的波特率。其中,通過調用業(yè)務邏輯層的Get_Ports方法獲取可用串口。</p><p>  2)btnConnectCoor_Click事件處理方法</p><p>

23、  該方法用于連接協(xié)調器,首先提取串口名稱、波特率,然后實例化一個串口操作對象并調用業(yè)務邏輯層OpenSerialPort方法打開串口,如果打開串口成功,則為已經(jīng)打開的串口添加DataReceived事件并設置串口連接。如果打開串口不成功,則進行錯誤提示。</p><p>  3)btnClosePort_Click事件處理方法</p><p>  該方法用于斷開協(xié)調器,首先實例化一個串口

24、操作類對象,然后調用業(yè)務邏輯層CloseSerialPort方法關閉串口,如果關閉串口成功,則設置串口連接。如果關閉串口不成功,則進行錯誤提示。</p><p>  4)btnStartListen_Click事件處理方法</p><p>  該事件執(zhí)行啟動上傳功能,要實現(xiàn)該操作需先實例化客戶端和網(wǎng)絡數(shù)據(jù)流,再連接服務端,通過調用SendMessage方法將網(wǎng)關接入到服務器,并通過串口上傳

25、數(shù)據(jù)到服務器,同時調用ReceiveMessage方法接收來自服務器發(fā)向協(xié)調器的指令。</p><p>  5)btnStopListen_Click事件處理方法</p><p>  該事件執(zhí)行停止上傳功能,關閉客戶端與服務器之間的傳輸,并斷開網(wǎng)關接與服務器。</p><p>  6)btnSendToServer_Click事件處理方法</p>&l

26、t;p>  該事件執(zhí)行手動上傳功能,通過調用SendMessage方法手動向服務端上傳網(wǎng)關配置。</p><p>  7)btnCleaeWSN_Click事件處理方法該事件執(zhí)行清空WSN無線網(wǎng)絡消息的功能。</p><p>  8)btnClearTcpIP_Click事件處理方法該事件執(zhí)行清空TCP/IP局域網(wǎng)消息功能。</p><p><b>

27、  4 系統(tǒng)測試</b></p><p>  4.1 ARM網(wǎng)關客服端軟件功能測試</p><p>  利用VS20005軟件生成SmartHomeClient.exe應用文件,然后連接WinCE6.0,利用同步軟件將SmartHomeClient.exe應用文件復制到WinCE 6.0操作平臺,然后打開在Win CE6.0操作平臺中打開SmartHomeClient.exe應

28、用文件。如圖5所示。然后連接協(xié)調器和服務端,開啟“啟動上傳”按鈕,協(xié)調器向服務端上傳節(jié)點數(shù)據(jù),服務端下發(fā)操作指令,觀察網(wǎng)關是否有數(shù)據(jù)傳輸。</p><p><b>  4.2 系統(tǒng)調試</b></p><p><b>  1)連接服務器</b></p><p>  在服務端打開的情況下,開啟“啟動上傳”,連接服務器成功則提

29、示“接入服務器”,并在lbServerMsg中顯示來自服務器的信息。</p><p><b>  2)組網(wǎng)</b></p><p>  在已連接協(xié)調器和服務器的情況下,復位節(jié)點,通過協(xié)調器向網(wǎng)關發(fā)送節(jié)點信息,再由網(wǎng)關將節(jié)點信息轉發(fā)至服務器,進行組網(wǎng)。</p><p>  3)服務器下發(fā)操作指令</p><p>  服務器

30、通過網(wǎng)關向協(xié)調器發(fā)送開燈指令,在已經(jīng)開燈的情況下,服務器通過網(wǎng)關向協(xié)調器發(fā)送光照、濕度、溫度采集指令。</p><p>  經(jīng)測試本系統(tǒng)網(wǎng)關客戶端軟件,實現(xiàn)了數(shù)據(jù)的上傳和下發(fā)功能,達到了設計目的。</p><p><b>  5 結束語</b></p><p>  本文研究利用ZigBee無線通信技術組建無線網(wǎng)絡,并將其使用于教室、走廊、街道的

31、智能照明控制系統(tǒng)中。無線智能照明系統(tǒng)的設計是為了對建筑的照明設備實現(xiàn)集中統(tǒng)一的管理,將建筑的照明設備按場景分類進行控制,并根據(jù)室外光照調節(jié)照明設備的照度,從而,使建筑以及室內室外都有一個良好的光環(huán)境,并能夠盡可能的節(jié)約能源。在智能照明控制系統(tǒng)中,使用無線通信的方式,可以避免有線電纜的鋪設,降低了系統(tǒng)的安裝成本與安裝難度,同時也便于系統(tǒng)的移動,即可以整體的搬遷至另外的環(huán)境中進行使用,這樣又在另一層面降低了系統(tǒng)的成本,以及縮短了系統(tǒng)回收利潤

溫馨提示

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

評論

0/150

提交評論