【摘要】 提出一種利用B/S架構設計的智能家居遠程控制系統的設計。將智能家居系統控制主機接入互聯網,在控制主機上架設網站,用戶可以利用網站對連接到主機的USB設備進行操作,從而通過USB設備控制家庭內的智能家居。該系統利用了B/S架構的優點,用戶能夠很方便地對家庭智能家居系統進行遠程控制。
【關鍵詞】 B/S架構 智能家居 遠程控制 USB
隨著科技的發展,物聯網技術愈加成熟,智能家居已經越來越深入到人們的生活當中[1]。智能家居的出現令生活更加方便,主人可以通過特定的網絡連接到家庭里的控制中心設備,對家里的情況進行監控與操控。典型的智能家居系統采用家庭內部自組織小型局域網,通過控制中心連接到外部,進行遠程控制[2]。這些系統在進行遠程控制時,大都采用了C/S模式,這樣就必須在用戶的移動終端上安裝特定的軟件才能進行遠程控制[3]。因此采用B/S架構來實現遠程控制方式,只要用戶能夠使用上網設備連接到互聯網,比如使用筆記本或手機通過有線網絡、wifi或3G連接到互聯網,就能夠讓很方便地打開一個網頁,對家里的情況進行監控或控制。
本文提出了一種基于B/S架構的智能家居遠程控制系統,該控制系統的硬件主要有一個USB設備,該USB設備連接到控制中心主機上。主機架設相應的網站,并聯接至互聯網上。當用戶需要監控或控制時,只需要在電腦或手機上網打開該網頁,就可以對USB設備進行操作,該USB設備再通過ZigBee對家居進行狀態查詢或控制。
一、相關技術
B/S(瀏覽器/服務器)架構即瀏覽器(Browser)/服務器(Server)架構,用戶的操作界面就是瀏覽器,使用瀏覽器來訪問服務器提供的服務。相較于傳統的C/S架構模式來說,B/S架構讓用戶對服務器的訪問更加快捷方便。本系統采用B/S架構在控制主機上搭建網站,利用網站來控制USB設備運作。網站的開發使用ASP.NET技術,采用Microsoft Visual studio 2008工具進行開發。ASP.NET作為微軟Microsoft.NET框架的一部分,由.NET框架提供的編程類庫組成,并為Web應用提供程序模型。使用ASP.NET開發頁面可有猶如開發軟件程序一般,使軟件程序員在開發網頁應用也變得非常簡單。在本文的設計當中,USB設備的驅動程序可以單獨開發成動態鏈接庫,然后使用ASP.NET調用動態鏈接庫里的程序來達到頁面對USB設備的直接控制。
USB總線技術在當前已經應用非常廣泛,技術也十分成熟,大部分的設備上現在都存在USB接口,是一種很通用的接口協議。本系統的設計當中控制主機與外設之間的通信接口也采用USB連接方式。接口芯片采用了Cypress公司開發的CY7C68013A,該芯片是一款內部集成了USB2.0收發器、SIE(串行接口引擎)、增強的8051微控制器、16KB的RAM、4KB的FIFO存儲器、I/O接口、數據總線、地址總線和通用可編程的外圍接口(GPIF)的強大功能的芯片[4]。該芯片負責主機與ZigBee模塊之間的通信連接。
二、系統設計
系統主要分為3個部分:智能家居通過ZigBee構成的本地網絡、USB設備與控制主機形成的本地控制中心和用戶的移動終端。如圖1所示。本文將重點描述USB設備的設計以及Web頁面通過USB設備對智能家居的控制程序設計。
本系統的USB設備采用56腳的CY68013A芯片作為接口芯片,該芯片集成了USB通信接口以及8051內核,可以很方便的進行USB通信的設計。該芯片有獨立的USB接口管腳“DPLUS”和“DMINUS”可與USB線纜直接連接,同時擁有三組通用I/O接口可連接ZigBee設備(如CC2430)與智能家居進行無線通信,如圖2所示。芯片的固件程序采用類似51單片機的編程以及CYPRESS公司為用戶提供的子函數,主要完成的功能是:向主機提交VID和PID;對Interface(接口)配置和Endpoint(端點)的配置;通過固件程序的調度,完成ZigBee設備與主機之間的數據通信。
為了讓用戶能夠利用Web頁面通過USB對智能家居進制控制,Web主機需要實現對USB設備進行控制與通信的人機交互界面程序,并將該程序在頁面上實現。該程序對USB設備的控制需要通過USB驅動程序,而驅動程序可以通過修改CYPRESS公司提供的EZ-USB通用驅動程序的INF文件獲得。在本系統的設計中,將這些驅動程序封裝成為動態鏈接庫dll文件,然后在ASP.NET頁面代碼中,調用動態鏈接庫里的函數來達到對USB設備的控制,流程如圖3所示。
本系統的網站設計采用的工具是Microsoft Visual studio 2008,可以通過在軟件中點擊[文件]—[新建]—[網站],并在新建網站選擇ASP.NET類型網站來創建一個新的網站,同時網站的編程語言采用了C#。為了能夠通過網站控制USB設備,需要完成以下步驟:
(1)首先將USB設備的驅動程序動態鏈接庫USBdev.dll存放在主機的系統文件夾System32中以保證網站程序能夠對動態鏈接庫函數的調用;
(2)然后在頁面代碼中添加將動態鏈接庫中的函數導入到網頁程序的語句,以便調用,如下面語句中的函數scan_device()和dev_open()。
完成以上步驟后,在頁面編程過程中,就可以直接調用已經導入的驅動程序函數來與USB設備進行通信。與USB設備的通信過程主要是為了向某個家居設備發送指令或讀取狀態,由于家居設備的類型有很多,需要的參數都不相同,因此控制主機與USB設備的通信過程需要制定指令格式對家居設備進行控制。指令包含的參數有:指令類型、操作對象ID、操作類型、操作參數等。指令格式可以根據實際應用進行相應調整,在這里就不進行詳細解釋。網站頁面的設計,可以根據用戶家庭內的智能家居種類和數量來進行設計,利用VS2008提供的各種頁面控件可以很容易實現一個簡潔的頁面。
三、結束語
本文設計了一種利用B/S架構搭建智能家居遠程控制系統,通過ASP.NET對USB設備進行控制來達到Web頁面與硬件設備的通信。該系統的設計方案技術成熟、性能穩定,且成本較低容易普及。系統的界面簡單,操作方便,用戶可以通過普通的上網瀏覽網頁方式,就可以對家里的智能家居進行控制。而且隨著網絡服務的進步,通過Web網站的控制方式可以進行豐富的擴張,例如流媒體、云技術等。當然,通過Web網站進行智能家居的控制方式還需要考慮的安全保密等問題,這也是將來需要研究的一個問題。
參 考 文 獻
[1] 婁亞楠. 中國智能家居應用前景與挑戰[J]. 中國公共安全,2013(Z1):80-83.
[2] 林旭東. 智能家居系統相關技術及發展趨勢[J]. 科技創新導報,2008(7):6.
[3] 任榮. 基于B/S結構的智能家居系統的研究和實現[J]. 廣東通信技術,2012(12):25-29.
[4] 錢峰. EZ-USB FX單片機原理編程及應用[M]. 北京:北京航空航天大學出版社,2006.3.