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