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