《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的智能家居WebServer開發(fā)及應(yīng)用
基于單片機(jī)的智能家居WebServer開發(fā)及應(yīng)用
李國(guó)峰,王 云
摘要: 提出了采用成本較低的傳統(tǒng)51單片機(jī)實(shí)現(xiàn)WebServer功能的方案,并將此設(shè)計(jì)應(yīng)用于智能家居系統(tǒng)中。系統(tǒng)具有靈活方便、成本低等優(yōu)點(diǎn),其軟件的設(shè)計(jì)方案和設(shè)計(jì)思想可以普及和推廣,對(duì)未來的智能家居系統(tǒng)有很實(shí)用的參考價(jià)值。
Abstract:
Key words :

  摘 要: 提出了采用成本較低的傳統(tǒng)51單片機(jī)實(shí)現(xiàn)WebServer功能的方案,并將此設(shè)計(jì)應(yīng)用于智能家居系統(tǒng)中。系統(tǒng)具有靈活方便、成本低等優(yōu)點(diǎn),其軟件的設(shè)計(jì)方案和設(shè)計(jì)思想可以普及和推廣,對(duì)未來的智能家居系統(tǒng)有很實(shí)用的參考價(jià)值。
    關(guān)鍵詞: 智能家居;WebServer;TCP/IP

 

   隨著生活水平的提高,人們對(duì)生活質(zhì)量的要求也在逐步提高,越來越多的人希望能夠生活在一個(gè)安全、舒適、節(jié)能、方便、高效的綠色環(huán)境中。隨著傳統(tǒng)家電產(chǎn)品與計(jì)算機(jī)、通信技術(shù)的結(jié)合,家用電器產(chǎn)品朝著智能家居的方向發(fā)展,使人們的愿望得以實(shí)現(xiàn)。而家用電器接入Internet網(wǎng),使家庭與外部保持信息交流暢通,實(shí)現(xiàn)遠(yuǎn)程控制,也越來越多地被人們所關(guān)注。
    雖然智能化家居能夠?yàn)槿藗兊纳顜砗艽蟮谋憷?,但由于它的造價(jià)昂貴,并不適合普通的百姓階層,且很多功能也是華而不實(shí)的,并沒有得到住戶的認(rèn)可,用戶對(duì)于一些功能甚至很少使用,這也造成了資源的浪費(fèi)。
    本文所設(shè)計(jì)的智能家居系統(tǒng),從實(shí)用的角度出發(fā),同時(shí)考慮到成本和日后的維護(hù)問題,充分利用現(xiàn)有的智能家居技術(shù)和資源為用戶構(gòu)建高性價(jià)比的智能家居系統(tǒng),實(shí)現(xiàn)了以最少成本完成最實(shí)用功能的目的,使智能家居走進(jìn)百姓的生活,讓人們能夠更好地享受現(xiàn)代高科技為人們帶來的方便。
1 設(shè)計(jì)思路
    本設(shè)計(jì)的總體思路方框圖如圖1所示。

 


    在硬件方案設(shè)計(jì)上,包含主控制器和分控制器兩部分。主控器中除了51內(nèi)核單片機(jī)[1],還包含了一個(gè)片外存儲(chǔ)器、無線收發(fā)模塊、溫度、濕度檢測(cè)模塊、電話撥號(hào)模塊、聲音報(bào)警模塊[2]。分控制器負(fù)責(zé)用電設(shè)備管理。
    系統(tǒng)以主控制器為核心,通過與分控制器無線通信[3],實(shí)現(xiàn)對(duì)用電設(shè)備的控制和監(jiān)測(cè)的功能。同時(shí),主控制器還負(fù)責(zé)TCP/IP協(xié)議棧的處理和解析,提供Internet網(wǎng)頁訪問功能。
  在軟件方案設(shè)計(jì)上,實(shí)現(xiàn)WebServer的功能,需要TCP/IP協(xié)議的支持。由于W77E58芯片是基于8位的微處理器,現(xiàn)在可獲得的TCP/IP源代碼一般并不為51 單片機(jī)設(shè)計(jì),由于系統(tǒng)資源受限,通過有針對(duì)性的模塊化裁剪,在單片機(jī)上嵌入精簡(jiǎn)的TCP/IP協(xié)議棧[4],實(shí)現(xiàn)嵌入式Internet接入。
2 網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)
    精簡(jiǎn)后的協(xié)議主要包括TCP/IP協(xié)議組中的四個(gè)基本協(xié)議:ARP協(xié)議、IP協(xié)議、ICMP協(xié)議、TCP協(xié)議[5]。鏈路層協(xié)議,作為設(shè)備驅(qū)動(dòng)在鏈路層實(shí)現(xiàn),由單片機(jī)來驅(qū)動(dòng)以太網(wǎng)卡RTL8019AS。應(yīng)用層協(xié)議,實(shí)現(xiàn)了HTTP協(xié)議。RTL8019AS的驅(qū)動(dòng)程序主要包括4個(gè)部分: RTL8019AS芯片的復(fù)位、網(wǎng)卡的初始化、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)。
    地址解析協(xié)議(ARP)實(shí)現(xiàn)的功能是:當(dāng)有一個(gè)IP數(shù)據(jù)包要發(fā)送到以太網(wǎng)上時(shí),從ARP表中查詢相應(yīng)的MAC地址。在本設(shè)計(jì)的精簡(jiǎn)的TCP/IP協(xié)議棧中,ARP的執(zhí)行依靠維持一張映射表來完成IP地址和MAC地址的映射。
    整個(gè)IP協(xié)議可由IP數(shù)據(jù)報(bào)的接收、發(fā)送、IP數(shù)據(jù)差錯(cuò)校驗(yàn)控制三個(gè)子程序構(gòu)成。
  網(wǎng)間報(bào)文控制協(xié)議(ICMP)實(shí)現(xiàn)了一種類型的ICMP信息:ICMP回響信息。ICMP回響信息常常用于ping程序里的檢查主機(jī)是否在線。
  傳輸控制協(xié)議(TCP),TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸時(shí)可分為建立連接、傳輸數(shù)據(jù)和關(guān)閉連接三個(gè)階段。
  在本設(shè)計(jì)中,智能家居控制器實(shí)現(xiàn)提供Web網(wǎng)頁瀏覽的功能,只需要使用HTTP協(xié)議即可。瀏覽器通過該協(xié)議與Web服務(wù)器交換數(shù)據(jù)。
3  WebServer的實(shí)現(xiàn)
    WebServer的工作原理,就是在單片機(jī)內(nèi)部存放指定的網(wǎng)頁數(shù)據(jù),當(dāng)客戶通過瀏覽器訪問指定地址時(shí),服務(wù)器分析請(qǐng)求信息,并相應(yīng)地向?yàn)g覽器中返回指定網(wǎng)頁的HTML代碼。
    此系統(tǒng)主要包含2個(gè)頁面:登錄頁面和控制頁面。為了便于存儲(chǔ)和訪問,需要把這2個(gè)HTML文件轉(zhuǎn)換為C語言的數(shù)組,存放于C文件中。
    登錄頁面是當(dāng)用戶訪問智能家居Web服務(wù)器時(shí),出于安全性的考慮,需要進(jìn)行身份驗(yàn)證,只有合法的用戶才可以進(jìn)入到控制頁面??刂祈撁媸峭ㄟ^本頁面對(duì)家用電器實(shí)現(xiàn)遠(yuǎn)程控制。控制頁面如圖2所示。

 


    在此頁面中,溫度和濕度的值在代碼中以特殊字符替代。當(dāng)Web控制器發(fā)送網(wǎng)頁給客戶端時(shí),就用控制器將采集的值替換HTML文檔中相對(duì)應(yīng)的特殊字符,實(shí)現(xiàn)了溫度和濕度的實(shí)時(shí)檢測(cè)。
    WebServer的實(shí)現(xiàn)就是HTTP通信的過程。其中包括服務(wù)器和瀏覽器的以下幾個(gè)步驟。
    (1)建立TCP連接。建立一個(gè)TCP連接,對(duì)80端口(WebServer默認(rèn)端口)進(jìn)行監(jiān)聽,接收到TCP包后即進(jìn)入TCP回調(diào)函數(shù)。
    (2)Web瀏覽器向Web服務(wù)器發(fā)送請(qǐng)求命令。一旦建立了連接,瀏覽器即向服務(wù)器發(fā)送請(qǐng)求命令。請(qǐng)求消息包括請(qǐng)求行,首部,之后瀏覽器發(fā)送了一空白行來通知服務(wù)器,它已經(jīng)結(jié)束了該頭信息的發(fā)送。例如:
    GET/index.html HTTP/1.1
    (3)Web服務(wù)器響應(yīng)??蛻魴C(jī)向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器會(huì)客戶機(jī)回送響應(yīng)。響應(yīng)消息包括狀態(tài)行、響應(yīng)頭、空行及實(shí)體內(nèi)容。在響應(yīng)報(bào)文中,包括協(xié)議版本號(hào)和應(yīng)答狀態(tài)碼,關(guān)于它自己的數(shù)據(jù)及被請(qǐng)求的文檔信息。例如:
    HTTP/1.1 200 OK 
  Content-type:text/html
    (4)關(guān)閉連接。數(shù)據(jù)傳送完畢,雙方通過4次握手,結(jié)束TCP/IP連接。
    該智能家居控制系統(tǒng),可以讓智能家居的主人在任意位置,利用通用計(jì)算機(jī)的IE瀏覽器,上網(wǎng)瀏覽到家居中所有用電設(shè)備的工作狀態(tài)和家居的安防信息。如果主控制器所管理的某個(gè)用電設(shè)備,出現(xiàn)了不太緊急的故障時(shí),可以只給主人一次簡(jiǎn)單的提示,而發(fā)生緊急情況之后主控制器一直循環(huán)呼叫主人,直到主人應(yīng)答為止。這樣使得該系統(tǒng)在以太網(wǎng)出現(xiàn)故障之后,或者某些緊急情況出現(xiàn)時(shí),因主人當(dāng)時(shí)沒有正在瀏覽網(wǎng)頁,這時(shí)就可以利用電話線撥號(hào)及時(shí)快速地通知主人,從而使系統(tǒng)非常具有實(shí)際的應(yīng)用價(jià)值。同時(shí)也是這個(gè)系統(tǒng)區(qū)別其他現(xiàn)有系統(tǒng)更具人性化、智能化的創(chuàng)新點(diǎn)所在。


參考文獻(xiàn)
[1] 肖紅兵,李國(guó)峰.80C51嵌入式系統(tǒng)教程[M].北京:北京航空航天大學(xué)出社,2007.
[2] 嚴(yán)天峰.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與仿真調(diào)試[M].北京:北京航空航天大學(xué)出版社,2005.
[3] 林勇,李因東,嚴(yán)彬彬.基于LPC2214的家庭智能終端的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2006.3
[4] 許華杰,明健.基于SX單片機(jī)實(shí)現(xiàn)WebServer和網(wǎng)絡(luò)協(xié)議棧.單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007.
[5] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第2版)[M].北京:電子工業(yè)出版社,2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。