亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于物聯(lián)網(wǎng)的照明控制系統(tǒng)—ARM客戶端軟件設(shè)計

        2015-01-17 05:47:08曾妍
        電子設(shè)計工程 2015年2期
        關(guān)鍵詞:指令

        曾妍

        (四川信息職業(yè)技術(shù)學(xué)院 四川 廣元 628040)

        基于物聯(lián)網(wǎng)的照明控制系統(tǒng)以ZigBee、單片機、傳感器、C#和PHP程序設(shè)計為主要技術(shù)手段,包括照明控制單元、ZigBee無線傳輸層(含網(wǎng)關(guān))、PC展示及控制層3個層次的現(xiàn)場控制單元、CC2430無線傳輸網(wǎng)絡(luò)、ARM網(wǎng)關(guān)硬件單元、ARM網(wǎng)關(guān)客戶端軟件、基于C#的服務(wù)端軟件、基于PHP的展示軟件等6個子系統(tǒng),用于實現(xiàn)一套模擬城市照明控制系統(tǒng)。

        本課題首先規(guī)劃了WSN協(xié)調(diào)器與ARM網(wǎng)關(guān)的串口通訊協(xié)議及ARM客戶端與PC服務(wù)端的TCP/IP通訊協(xié)議,然后基于Windows CE 6.0操作系統(tǒng),運用C#編程語言開發(fā)了ARM的客戶端軟件。經(jīng)測試,客戶端軟件實現(xiàn)了按規(guī)劃的協(xié)議將協(xié)調(diào)器上傳數(shù)據(jù)發(fā)往服務(wù)端和將服務(wù)端下發(fā)數(shù)據(jù)發(fā)往協(xié)調(diào)器的功能,性能穩(wěn)定,具有一定的實用價值。

        1 需求分析

        1.1 物聯(lián)網(wǎng)照明控制系統(tǒng)的組成及工作過程

        1.1.1 系統(tǒng)組成

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

        圖1 物聯(lián)網(wǎng)照明控制系統(tǒng)的組成Fig.1 The composition of the network lighting control system

        1.1.2 系統(tǒng)運行過程

        在物聯(lián)網(wǎng)照明控制系統(tǒng)中,所有感知層節(jié)點的控制指令均由應(yīng)用層子系統(tǒng)通過服務(wù)端下發(fā)給傳輸層ARM網(wǎng)關(guān)客戶端,然后由ARM處理器通過串口下發(fā)給CC2430協(xié)調(diào)器,再由后者通過ZigBee無線網(wǎng)絡(luò)下發(fā)給CC2430終端節(jié)點。執(zhí)行的操作指令主要包括注冊網(wǎng)絡(luò)、獲取網(wǎng)絡(luò)參數(shù)、下發(fā)控制指令等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)絡(luò)地址、節(jié)點類型等)。

        2)獲取網(wǎng)絡(luò)參數(shù)

        系統(tǒng)運行中,為及時發(fā)現(xiàn)掉線節(jié)點,系統(tǒng)會周期性去詢問節(jié)點,要求返回網(wǎng)絡(luò)參數(shù)。獲取網(wǎng)絡(luò)參數(shù)的流程。

        3)下發(fā)控制指令

        當(dāng)需要改變各被控對象的運行狀態(tài)時,系統(tǒng)就需要下發(fā)各類控制指令。

        1.2 ARM客戶端軟件的功能需求分析

        ARM網(wǎng)關(guān)[1]是傳輸層子系統(tǒng)的核心設(shè)備,主要完成數(shù)據(jù)轉(zhuǎn)發(fā)、協(xié)議轉(zhuǎn)換、命令代理和映射、本地存儲等功能,支持無線傳感器網(wǎng)絡(luò)內(nèi)部數(shù)據(jù)協(xié)同和匯聚,支持ZigBee接入、TCP/IP網(wǎng)絡(luò)接入,從而橋接無線傳感器網(wǎng)絡(luò)與互聯(lián)網(wǎng)。

        ARM客戶端軟件[2]主要用于實現(xiàn)接收ZigBee無線傳感網(wǎng)絡(luò)協(xié)調(diào)器上傳的數(shù)據(jù),然后發(fā)送到服務(wù)器。同時,對于服務(wù)器下發(fā)的一些控制命令進(jìn)行解析,并通過串口傳輸?shù)綗o線網(wǎng)絡(luò)的協(xié)調(diào)器。

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

        圖2 ARM網(wǎng)關(guān)的體系結(jié)構(gòu)Fig.2 The system structure of ARM gateway

        本課題所需開發(fā)的是軟件部分的應(yīng)用層軟件,涉及協(xié)議轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)發(fā)、人機交互等功能,宜采用軟件設(shè)計中的三層架構(gòu)進(jìn)行軟件開發(fā)。所謂三層架構(gòu),是指數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層以及窗體表示層。本課題主要涉及業(yè)務(wù)邏輯層和窗體表示層的設(shè)計與功能實現(xiàn)。

        2 通信協(xié)議規(guī)劃

        2.1 通信協(xié)議規(guī)劃原則

        1)透明傳輸,將控制與傳輸分離。協(xié)議的規(guī)劃不宜采用按功能方式規(guī)劃,而應(yīng)采用分層方式實施,以便明確邊界。對于本系統(tǒng)而言,整個協(xié)議從下自上為分三層,如圖3所示。

        圖3 自定義協(xié)議的層次結(jié)構(gòu)Fig.3 The hierarchical structure of custom protocol

        2)本系統(tǒng)WSN類型節(jié)點由協(xié)調(diào)器、路由器、傳感器節(jié)點三種組成,拓?fù)浣Y(jié)構(gòu)有樹狀形、星形網(wǎng)絡(luò)等。由于本系統(tǒng)控制點不多、分布范圍較窄,故采用星形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。支持ZigBee無線網(wǎng)廣播、點對點通信。

        2.2 ARM網(wǎng)關(guān)通訊協(xié)議詳細(xì)幀格式規(guī)劃

        ARM網(wǎng)關(guān)通訊協(xié)議[3]詳細(xì)幀格式規(guī)劃包括注冊網(wǎng)絡(luò)、獲取網(wǎng)絡(luò)參數(shù)、返回網(wǎng)絡(luò)參數(shù)、下發(fā)操作指令、上傳操作結(jié)果等協(xié)議的規(guī)劃。

        1)注冊網(wǎng)絡(luò)通訊協(xié)議

        注冊網(wǎng)絡(luò)[4]是指當(dāng)終端節(jié)點或路由器新加入網(wǎng)絡(luò)后,主動向上級節(jié)點發(fā)送源節(jié)點網(wǎng)絡(luò)參數(shù)的過程。從信息流向來看,注冊網(wǎng)絡(luò)的信息是由CC2430終端節(jié)點出發(fā),經(jīng)協(xié)調(diào)器轉(zhuǎn)發(fā)至PC。

        2)獲取網(wǎng)絡(luò)參數(shù)通訊協(xié)議

        獲取網(wǎng)絡(luò)參數(shù)是PC根據(jù)人機交互需要,通過WSN協(xié)調(diào)器下發(fā)獲取網(wǎng)絡(luò)參數(shù)指令,終端節(jié)點或路由器收到指令后,向上級節(jié)點返回源節(jié)點的網(wǎng)絡(luò)參數(shù)。本系統(tǒng)中只有當(dāng)節(jié)點自動注冊網(wǎng)絡(luò)失敗時,才從服務(wù)器手動發(fā)送指令獲取節(jié)點網(wǎng)絡(luò)參數(shù)。從信息流向來看獲取網(wǎng)絡(luò)參數(shù)包括從PC到客戶端,再由客戶端發(fā)往協(xié)調(diào)器,最終到路由器和終端節(jié)點的下行發(fā)送指令,以及上行返回網(wǎng)絡(luò)參數(shù)兩個方面。

        3)返回網(wǎng)絡(luò)參數(shù)通訊協(xié)議

        當(dāng)節(jié)點收到由客戶端轉(zhuǎn)發(fā)來自服務(wù)端的獲取網(wǎng)絡(luò)指令后,自動向客戶端返回節(jié)點的網(wǎng)絡(luò)參數(shù),再由客戶端向服務(wù)端返回數(shù)據(jù)。

        4)下發(fā)操作指令通訊協(xié)議

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

        5)上傳操作結(jié)果通訊協(xié)議

        本系統(tǒng)中控制上傳控制指令,是通過WSN協(xié)調(diào)器上傳到PC下發(fā)選擇開燈或關(guān)燈指令,終端節(jié)點或路由器收到指令后,向上級節(jié)點返回源節(jié)點的執(zhí)行結(jié)果(包括提取到的溫度、濕度以及燈光亮度參數(shù))。從信號流向來看,指令是由PC發(fā)出,經(jīng)串口送入WSN協(xié)調(diào)器,然后下發(fā)到終端節(jié)點,再經(jīng)串口傳輸?shù)絾纹瑱C。

        3 ARM客戶端軟件設(shè)計

        3.1 業(yè)務(wù)邏輯層的設(shè)計

        業(yè)務(wù)邏輯層[5]涉及數(shù)據(jù)處理SerialPortClass.cs,包括搜尋設(shè)備可用的串口、打開串口、關(guān)閉串口、下發(fā)指令并接收數(shù)據(jù)4種方法。對應(yīng)方法如表1所示。

        表1 SerialPortClass類的方法描述Tab.1 The methods of the SerialPortClass class description

        3.2 業(yè)務(wù)邏輯層的功能實現(xiàn)

        1)SearchSerialPorts方法該方法主要用于搜尋設(shè)備可用串口,其詳細(xì)代碼如下:public bool SearchSerialPorts(out string[]ports, out string retstr)

        {

        ports=SerialPort.GetPortNames (); //搜尋可用串口

        if(ports!=null)

        {

        retstr="搜尋到可用串口";

        return true;

        }

        else

        {

        retstr="無可用串口";

        return false;

        }

        }

        2)OpenSerialPort方法

        該方法主要用于打開串口,該方法先判斷串口是否已經(jīng)打開(0--打開串口成功;1--串口被占用;2--打開串口異常;3--打開串口失?。唬?,然后在串口未被占用的情況下,打開串口。

        3)CloseSerialPort方法

        該方法主要用于關(guān)閉串口,該方法先判斷串口是否已經(jīng)打開(串口未打開,無需關(guān)閉),然后在串口已打開情況下,關(guān)閉串口 (0--關(guān)閉串口成功;1--串口未打開;2--關(guān)閉串口失??;3--關(guān)閉串口異常。

        4)SendDataToPort方法

        該方法主要用于下發(fā)指令并接收數(shù)據(jù),定義一個byte[]類型封裝變量cmd,首先判斷串口是否打開。若打開,則通過第一個默認(rèn)通道發(fā)送cmd,并返回true,若未打開,直接返回false。

        3.3 窗體表示層的設(shè)計

        1)添加窗體文件并設(shè)計窗體

        窗體表示層[6]的設(shè)計,在設(shè)計器中選擇 “項目→添加Windons窗體”,打開“添加新項”對話框。 選擇“Windons”模板,添加frmClient.cs窗體,根據(jù)需求設(shè)計frmClient.cs窗體,如圖4所示。

        圖4 創(chuàng)建frmClient.cs窗體界面Fig.4 Create a frmClient.cs form interface

        2)frmClient窗體代碼文件(frmClient.cs)的結(jié)構(gòu)

        在frmClient.cs中,首先需要定義一些全局變量,實例化有關(guān)公共對象,然后編寫諸如連接設(shè)備(串口)、斷開設(shè)備(串口)、接收數(shù)據(jù)、轉(zhuǎn)發(fā)數(shù)據(jù)等事件的處理方法。

        3.4 窗體表示層的功能實現(xiàn)

        1)frmClient_Load事件處理方法

        在frmClient窗體加載事件處理過程中,需搜尋并獲取當(dāng)前可用串口號寫入ComboBox控件cbbSerialPort的Items中并顯示,并設(shè)置默認(rèn)的波特率。其中,通過調(diào)用業(yè)務(wù)邏輯層的Get_Ports方法獲取可用串口。

        2)btnConnectCoor_Click事件處理方法

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

        3)btnClosePort_Click事件處理方法

        該方法用于斷開協(xié)調(diào)器,首先實例化一個串口操作類對象,然后調(diào)用業(yè)務(wù)邏輯層CloseSerialPort方法關(guān)閉串口,如果關(guān)閉串口成功,則設(shè)置串口連接。如果關(guān)閉串口不成功,則進(jìn)行錯誤提示。

        4)btnStartListen_Click事件處理方法

        該事件執(zhí)行啟動上傳功能,要實現(xiàn)該操作需先實例化客戶端和網(wǎng)絡(luò)數(shù)據(jù)流,再連接服務(wù)端,通過調(diào)用SendMessage方法將網(wǎng)關(guān)接入到服務(wù)器,并通過串口上傳數(shù)據(jù)到服務(wù)器,同時調(diào)用ReceiveMessage方法接收來自服務(wù)器發(fā)向協(xié)調(diào)器的指令。

        5)btnStopListen_Click事件處理方法

        該事件執(zhí)行停止上傳功能,關(guān)閉客戶端與服務(wù)器之間的傳輸,并斷開網(wǎng)關(guān)接與服務(wù)器。

        6)btnSendToServer_Click事件處理方法

        該事件執(zhí)行手動上傳功能,通過調(diào)用SendMessage方法手動向服務(wù)端上傳網(wǎng)關(guān)配置。

        7)btnCleaeWSN_Click事件處理方法

        該事件執(zhí)行清空WSN無線網(wǎng)絡(luò)消息的功能。

        8)btnClearTcpIP_Click事件處理方法

        該事件執(zhí)行清空TCP/IP局域網(wǎng)消息功能。

        4 系統(tǒng)測試

        4.1 ARM網(wǎng)關(guān)客服端軟件功能測試

        利用VS20005軟件生成SmartHomeClient.exe應(yīng)用文件,然后連接WinCE 6.0,利用同步軟件將SmartHomeClient.exe應(yīng)用文件復(fù)制到WinCE 6.0操作平臺,然后打開在WinCE 6.0操作平臺中打開SmartHomeClient.exe應(yīng)用文件。如圖5所示。然后連接協(xié)調(diào)器和服務(wù)端,開啟“啟動上傳”按鈕,協(xié)調(diào)器向服務(wù)端上傳節(jié)點數(shù)據(jù),服務(wù)端下發(fā)操作指令,觀察網(wǎng)關(guān)是否有數(shù)據(jù)傳輸。

        圖5 ARM網(wǎng)關(guān)客戶端軟件界面Fig.5 The ARM gateway client software interface

        4.2 系統(tǒng)調(diào)試

        1)連接服務(wù)器

        在服務(wù)端打開的情況下,開啟“啟動上傳”,連接服務(wù)器成功則提示“接入服務(wù)器”,并在lbServerMsg中顯示來自服務(wù)器的信息。

        2)組網(wǎng)

        在已連接協(xié)調(diào)器和服務(wù)器的情況下,復(fù)位節(jié)點,通過協(xié)調(diào)器向網(wǎng)關(guān)發(fā)送節(jié)點信息,再由網(wǎng)關(guān)將節(jié)點信息轉(zhuǎn)發(fā)至服務(wù)器,進(jìn)行組網(wǎng)。

        3)服務(wù)器下發(fā)操作指令

        服務(wù)器通過網(wǎng)關(guān)向協(xié)調(diào)器發(fā)送開燈指令,在已經(jīng)開燈的情況下,服務(wù)器通過網(wǎng)關(guān)向協(xié)調(diào)器發(fā)送光照、濕度、溫度采集指令。

        經(jīng)測試本系統(tǒng)網(wǎng)關(guān)客戶端軟件,實現(xiàn)了數(shù)據(jù)的上傳和下發(fā)功能,達(dá)到了設(shè)計目的。

        5 結(jié)束語

        本文研究利用ZigBee無線通信技術(shù)組建無線網(wǎng)絡(luò),并將其使用于教室、走廊、街道的智能照明控制系統(tǒng)中。無線智能照明系統(tǒng)的設(shè)計是為了對建筑的照明設(shè)備實現(xiàn)集中統(tǒng)一的管理,將建筑的照明設(shè)備按場景分類進(jìn)行控制,并根據(jù)室外光照調(diào)節(jié)照明設(shè)備的照度,從而,使建筑以及室內(nèi)室外都有一個良好的光環(huán)境,并能夠盡可能的節(jié)約能源。在智能照明控制系統(tǒng)中,使用無線通信的方式,可以避免有線電纜的鋪設(shè),降低了系統(tǒng)的安裝成本與安裝難度,同時也便于系統(tǒng)的移動,即可以整體的搬遷至另外的環(huán)境中進(jìn)行使用,這樣又在另一層面降低了系統(tǒng)的成本,以及縮短了系統(tǒng)回收利潤的時間。為了達(dá)到系統(tǒng)所需要的功能與要求,在本設(shè)計中利用了成都無線龍公司的無線單片機系統(tǒng)作為系統(tǒng)的硬件開發(fā)平臺,對系統(tǒng)中的節(jié)點設(shè)備進(jìn)行了設(shè)計,完成了網(wǎng)絡(luò)協(xié)調(diào)器、路由器控制終端設(shè)備以及其他網(wǎng)絡(luò)節(jié)點的原理圖設(shè)計。同時利用軟件開發(fā)平臺IAR環(huán)境,進(jìn)行了系統(tǒng)的主程序設(shè)計,以及主程序流程圖的繪制。利用Microsoft Visual Studio 2005開發(fā)環(huán)境對控制系統(tǒng)的設(shè)計制作,實現(xiàn)了真正的智能化。

        [1]劉孟強,夏晶晶,劉俊輝.C#程序設(shè)計案例教程[M].北京:清華大學(xué)出版社,2011.

        [2]王浩.Windows CE(C#)嵌入式應(yīng)用開發(fā)[M].北京:中國水利水電出版社,2010.

        [3]黃嘉輝.C#.NET網(wǎng)絡(luò)程序設(shè)計[M].科學(xué)出版社,2004.

        [4]宋先斌.C#應(yīng)用開發(fā)[M].北京:清華大學(xué)出版社,2010.

        [5]鄭耀東.C#從入門到實踐[M].北京:清華大學(xué)出版社,2009.

        [6]Scott Meyers.Effective C++[M].北京:電子工業(yè)出版社,2006.

        猜你喜歡
        指令
        聽我指令:大催眠術(shù)
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        殺毒軟件中指令虛擬機的脆弱性分析
        巧用G10指令實現(xiàn)橢圓輪廓零件倒圓角
        中斷與跳轉(zhuǎn)操作對指令串的影響
        科技傳播(2015年20期)2015-03-25 08:20:30
        基于匯編指令分布的惡意代碼檢測算法研究
        一種基于滑窗的余度指令判別算法
        歐盟修訂電氣及電子設(shè)備等產(chǎn)品安全規(guī)定
        家電科技(2014年5期)2014-04-16 03:11:28
        MAC指令推動制冷劑行業(yè)發(fā)展
        汽車零部件(2014年2期)2014-03-11 17:46:27
        少妇人妻中文久久综合| 国产精品白浆视频免费观看| 久久精品国产亚洲av热明星| 国产91会所女技师在线观看 | 亚洲av日韩综合一区久热| 国产精品免费大片| 波多野结衣一区二区三区视频| 国产性感主播一区二区| 午夜秒播久久精品麻豆| 成人免费看片又大又黄| 亚洲AV激情一区二区二三区| 免费av在线视频播放| 免费在线观看视频播放| 一个人看的视频www免费| 国产女高清在线看免费观看| 亚洲综合色视频在线免费观看| 伊人久久这里只有精品| 中文字幕在线亚洲日韩6页| 在线a亚洲视频播放在线观看| 一区二区黄色素人黄色| 亚洲gay片在线gv网站| 一二三四在线视频观看社区| 国产视频网站一区二区三区| 中文字幕一区二区三区| 日日摸天天碰中文字幕你懂的| 亚洲精品久久久久久| 亚洲欧美v国产蜜芽tv| 国产一区二区三区啊啊| 天堂新版在线资源| 四虎精品影视| 日韩字幕无线乱码免费| 国产日产精品_国产精品毛片| 爱情岛论坛亚洲品质自拍hd| 亚洲欧美日本人成在线观看| 国产一区二区三区在线男友| 日本乱偷人妻中文字幕| 久久噜噜噜| 日韩精品人妻一区二区三区蜜桃臀| 亚洲日韩精品a∨片无码加勒比| 久久人妻少妇嫩草av蜜桃| 日本精品久久久久中文字幕1|