摘要:為了實現(xiàn)對電器的遠程控制,運用嵌入式Web技術,設計了一個可通過互聯(lián)網(wǎng)進行遠程訪問和控制的電源插座系統(tǒng)。該系統(tǒng)采用開源Boa作為嵌入式Web服務器,選用光電耦合器與可控硅設計控制模塊電路。用戶通過網(wǎng)頁瀏覽器訪問該系統(tǒng),可對各插座開關進行打開或關閉的操作,進而遠程控制與其相連接的電器。測試表明,該系統(tǒng)設計合理,功能實用,操作簡便,易于擴展,可廣泛用于對家用電器或工業(yè)電器的遠程控制。
關鍵詞:遠程控制;電源插座;嵌入式Web服務器;Boa;公共網(wǎng)關接口
互聯(lián)網(wǎng)的迅速發(fā)展,實現(xiàn)了信息的高速傳輸和資源共享,極大地方便了人們的生活。嵌入式系統(tǒng)廣泛應用于各種電器產(chǎn)品、智能儀表和控制設備中,它與互聯(lián)網(wǎng)的結合是一種必然的趨勢。
嵌入式系統(tǒng)和網(wǎng)絡技術的快速發(fā)展,為網(wǎng)絡遠程控制的發(fā)展和完善提供了技術基礎。
筆者綜合運用嵌入式系統(tǒng)和Web技術,設計了一種可通過互聯(lián)網(wǎng)進行遠程控制的電源插座系統(tǒng),實現(xiàn)對家用或工業(yè)電器的遠程實時控制。用戶通過網(wǎng)頁瀏覽器訪問該系統(tǒng),對各插座進行打開或關閉的操作,實現(xiàn)對與其相連接的電器的遠程控制。
1 嵌入式Web工作原理
嵌入式Web的體系結構如圖1所示??蛻舳撕颓度胧较到y(tǒng)中Web服務器之間的通信協(xié)議采用HTTP(超文本傳輸協(xié)議)。嵌入式操作系統(tǒng)提供TCP/IP協(xié)議支持。嵌入式Web服務器提供靜態(tài)網(wǎng)頁,也可以通過CGI(Common GatewayInterface,公共網(wǎng)關接口)與后臺程序或嵌入式數(shù)據(jù)庫交互,進行數(shù)據(jù)訪問或處理。
嵌入式Web的工作流程如圖2所示。嵌入式Web服務器的主要任務是接收客戶端請求、解析客戶端請求、響應客戶端請求、向客戶端回送請求的結果。客戶端與Web服務器交換數(shù)據(jù)之前,首先用TCP/IP建立連接,服務器端程序建立TCP類型的Socket套接字;服務器在接收到用戶端的請求后,解析客戶請求的HTTP協(xié)議頭,分析客戶的請求,根據(jù)客戶的請求做相應的處理并返回結果。
[!--empirenews.page--]
2 遠程可控電源插座設計
文中設計采用ARM-Linux架構。ARM處理器縣有小體積、低功耗、低成本、高性能等特點。嵌入式Linux操作系統(tǒng)內(nèi)核精悍,運行所需資源少,十分適合嵌入式系統(tǒng)應用。
2.1 系統(tǒng)硬件設計
遠程可控電源插座系統(tǒng)硬件結構如圖3所示。
嵌入式Web服務器實現(xiàn)對用戶的身份驗證、頁面解析與交互,根據(jù)用戶請求產(chǎn)生對電源插座的控制信號。存儲器存放系統(tǒng)的程序和頁面文件。
以太網(wǎng)接口模塊可選用RTL8019AS等以太網(wǎng)接口芯片,實現(xiàn)網(wǎng)絡通信。
控制模塊實現(xiàn)對連接在市電AC220 V的插座各開關的“打開、關閉”操作,進而控制相連接的電器的工作。由于嵌入式系統(tǒng)使用的DC3.3V電源,且電流較小,控制模塊須實現(xiàn)弱電對強電的控制。考慮到響應速度、電路功耗、使用壽命等因素,控制模塊設計選用光電耦合器和可控硅??刂颇K可控制電源插座的4路開關,其中一路的電路原理如圖4所示。
光電耦合器選用MOC3062,它集光電隔離、過零檢測和過零觸發(fā)為一體,可以自動檢測交流電壓的過零信息。可控硅選用Q4010NH5,是大功率開關型半導體器件,具有耐壓高、容量大、體積小、無噪音等優(yōu)點。
ARM處理器的GPIO端口輸出電平不足以使光耦元件U1(MOC3062)正常工作,需要信號放大。電阻R2和下拉電阻R3組成三極管保護電路。當GPIO端口輸出為高電平時,三極管T1(9013)導通,使電阻R1和光耦U1形成通路,U1正常工作,GPIO輸入信號得到放大,雙向可控硅K1(Q401O NH5)的G控制端得到高電壓,K1導通,插座220 V供電打開;當GPIO端口輸出為低電平時,三極管T1截止,使電阻R1和光耦U1形成斷路。此時U1不工作,K1斷路,插座供電被關閉。
2.2 控制模塊驅動設計
在嵌入式Linux操作系統(tǒng)下,設備驅動程序為應用程序屏蔽了硬件的細節(jié)。在應用程序看來,硬件設備只是一個設備文件,應用程序可以像操作普通文件一樣對硬件設備進行操作。
文中使用GPIO口作為控制端口,每一位信息控制一個電源插座開關。以連接1號插座開關的GP10為例,說明其驅動程序的編寫。
將GP10定義為輸出狀態(tài),并預設插座開關斷開時輸出0,此時GP10將輸出0,輸出低電平,并使圖4中的三極管T1截止,光耦U1不工作,K1不導通,220 V供電斷開;打開供電時,將GP10置1,即輸出高電平,T1導通,220 V供電打開。[!--empirenews.page--]
驅動程序中ioctl函數(shù)代碼如下:
2.3 嵌入式Web服務器設計
遠程可控電源插座系統(tǒng)采用B/S(Browser/Server)結構,系統(tǒng)內(nèi)嵌的嵌入式Web服務器可向合法用戶提供基于瀏覽器的操作界面,瀏覽器便成了與插座相連設備的遠端控制板。
由于嵌入式系統(tǒng)擁有的資源有限,構建嵌入式Web服務器須選擇一個合適的Web服務器,在不影響整體性能的前提下,既利用自身有限的資源,又必須滿足支持CGI的Web應用需求。
文中采用Boa Server作為嵌入式Web服務器。Boa是一個非常小巧的Web服務器,可執(zhí)行代碼只有約60 kB。它是一個單任務Web服務器,只能依次完成用戶的請求,而不會創(chuàng)建出新的進程來處理并發(fā)連接請求。但Boa支持CGI,能夠為CGI程序創(chuàng)建進程來執(zhí)行。
移植Boa的大致步驟如下:
1)從官方網(wǎng)站(http://www.boa.org)上下載Boa源代碼,解壓;
2)根據(jù)硬件對Boa進行相應的配置,并交叉編譯,編譯器選用arm-linux-gcc;
3)編譯生成可在ARM上運行的Boa程序,將其和內(nèi)核一起下載到ARM平臺上運行;
4)將系統(tǒng)所需靜態(tài)頁面文件和CGI程序拷貝至相應的路徑下。
當Web服務器程序收到用戶以HTTP協(xié)議的GET方式發(fā)來的遠程控制指令后,調(diào)用CGI程序,在CGI程序中用open(“/dev/rcpo”,O_RDWR)語句打開設備文件,若成功,則將控制參數(shù)傳遞給ioctl函數(shù)的cmd.控制對應的插座開關做相應動作。
[!--empirenews.page--]
3 系統(tǒng)測試
文中在嵌入式系統(tǒng)開發(fā)平臺上實現(xiàn),并制作了控制模塊硬件,對電源插座進行了內(nèi)部連線改裝,使之遠程可控。搭建測試環(huán)境,對一臺220 V供電工作的普通電扇進行遠程控制,如圖5所示。
用戶用瀏覽器軟件訪問本系統(tǒng),經(jīng)登錄認證后進入控制頁面,如圖6所示。點擊“開啟”按鈕后,電扇轉動;點擊“關閉”按鈕后,電扇關閉。系統(tǒng)運行正常,響應及時。測試表明,本文設計是可行的、有效的。
4 結論
文中設計了一種遠程可控電源插座,在ARM嵌入式系統(tǒng)上構建嵌入式Web服務器,用戶通過網(wǎng)絡訪問Web服務器,實現(xiàn)對電源插座的操作,進而遠程控制與其相連的電器。本文設計采用模塊化設計,功能實用,操作簡便,易于擴展,可廣泛應用于家用或工業(yè)電器的遠程控制。
隨著互聯(lián)網(wǎng)技術的發(fā)展以及與信息家電、工業(yè)控制技術的結合日益緊密,具備網(wǎng)絡功能的嵌入式系統(tǒng)應用正在成為未來電器的發(fā)展趨勢。