Web動態(tài)服務及控制在物聯(lián)網(wǎng)中的應用設計

本文分析了當前嵌入式系統(tǒng)實現(xiàn)Web動態(tài)服務的幾種思路,以采集環(huán)境溫度、控制LED燈的亮/滅為例,給出一種在嵌入式設備中實現(xiàn)Web動態(tài)服務與Web 控制的實現(xiàn)思路,并在給出實現(xiàn)結果的基礎上驗證了該設計思路的可行性。這為嵌入式設備,特別是低端嵌入式設備中順利實現(xiàn)Web動態(tài)服務及Web控制,進而實現(xiàn)物聯(lián)網(wǎng)技術打下了堅實的基礎。
引言

隨著網(wǎng)絡技術的不斷發(fā)展,嵌入式系統(tǒng)將不斷地和網(wǎng)絡相結合。嵌入式Web技術是計算機領域研究的熱點,其優(yōu)點是開發(fā)成本低、通用性強,能運行在8位或16 位MCU環(huán)境中,其豐富的Web用戶圖形界面使得嵌入式設備具有極好的交互性。因此,一旦在嵌入式設備中集成了Web服務,就能實現(xiàn)用戶與嵌入式設備低成本、高通用性的信息交流,即客戶端利用HTTP瀏覽器(如IE),在任何時間、任何地點都能實現(xiàn)與嵌入式設備的信息交互??梢哉f,嵌入式Web的應用必將極大地促進嵌入式設備,特別是低端控制設備、儀器、儀表的信息化,最終將促進物聯(lián)網(wǎng)的各種應用。

在MCU上開發(fā)Web服務器的難點在于其資源有限。相比臺式機PC(幾個GB的雙核CPU,幾個GB的內(nèi)存和幾百個GB的硬盤)來說,嵌入式系統(tǒng)的各種硬軟件資源少得可憐。在嵌入式系統(tǒng)中實現(xiàn)復雜的Web動態(tài)服務及Web控制,既沒有必要也不現(xiàn)實。因此,如何緊緊圍繞嵌入式系統(tǒng)的具體應用要求,恰當?shù)貙崿F(xiàn) Web動態(tài)服務及Web控制,進而實現(xiàn)物聯(lián)網(wǎng)應用是一個需要解決的技術難題。

1 嵌入式Web服務的一般實現(xiàn)方法

目前,嵌入式設備中通常使用的Web服務器有Apache、httpd、Boa、Thttpd和mini-httpd等。常用的實現(xiàn)動態(tài)Web頁面的技術主要有CGI、ASP、PHP、JSP、Java、ISPI等。其中,Boa是一個運行在類Unix系統(tǒng)中的小型Web Server,雖然功能比較齊全,但很多功能(如virtual hos-t,內(nèi)存使用量較大)對嵌入式應用而言是冗余的;Apache功能較強大,但占用空間太多(需要幾MB空間,其他Web服務器只需要幾百 KB);PHP 可擴展性較差,安全性不高;標準的CGI需要用到文件、進程等操作。

為節(jié)省資源、提高效率,嵌入式環(huán)境下現(xiàn)應用較多的是嵌入式動態(tài)Web實現(xiàn)方法,一般采用“Apache+PHP”或者是“Boa+CGI”技術。然而,在低端的嵌入式設備中,特別是8位MCU的儀器、儀表中,因為受資源尤其是存儲資源的限制,要用上述思路來實現(xiàn)嵌入式Web服務不太現(xiàn)實,畢竟對于低端的嵌入式設備而言,移植操作系統(tǒng)是一件奢侈的事情。

2 嵌入式Web動態(tài)服務的改進思路及實現(xiàn)

考慮到嵌入式Web服務器的應用領域多數(shù)是專門的控制設備儀表,絕大多數(shù)控制設備儀表的工作流程都是基本固定的,所以可以考慮采用某種固定的交互模式來控制這些儀表。能否用這種思路進行設計的關鍵是要弄清下面兩個問題:第一,嵌入式Web服務器的功能有哪些?第二,這些功能是否固定,是否需要擴展?如果這種功能既不是很復雜,又相對固定,那么就可以按照這種思路進行設計,而完全沒有必要用CGI、ASP等Web動態(tài)服務技術來實現(xiàn)Web動態(tài)服務。遵照這一思路,本文實現(xiàn)如下:

①將顯示界面不變的部分作為一個靜態(tài)頁面,以HTML格式存儲在ROM中,以方便MCU直接操作。這樣設計后,需要注意的問題是,MCU的ROM空間是否能同時存儲程序代碼和網(wǎng)頁HTML代碼。筆者所設計的嵌入式Web服務器的程序代碼量有28 KB,而HTML代碼量有2~3 KB,采用的MCU(即W78E58B)有32 KB ROM空間,因此采用這種設計思路完全可行。

②利用替換法提供Web動態(tài)服務。對需要動態(tài)改變的內(nèi)容部分作特殊標記,例如,環(huán)境溫度值為“TAG:Temperature”,網(wǎng)頁長度為 “TAG:PageLen”。程序運行時,先將靜態(tài)頁面由ROM讀入內(nèi)存,然后將環(huán)境溫度值和網(wǎng)頁長度值傳送到服務器節(jié)點,服務器讀取實際值并存入內(nèi)存,再用實際值代替標記,生成一個新的頁面并將其送給瀏覽器,這樣用戶看到的就是一個動態(tài)的頁面。

③經(jīng)過上述設計后,網(wǎng)頁文件的值是動態(tài)的,但不是實時的??梢圆捎萌缦滤悸穼崿F(xiàn)實時動態(tài)服務:利用HTML語言的來實現(xiàn)網(wǎng)頁內(nèi)容的自動更新,其刷新時間由文件開頭語句中的 content的內(nèi)容決定。該值可根據(jù)具體應用需求進行設置,例如筆者設計的刷新時間為2 s。

按照這種設計實現(xiàn)后,網(wǎng)頁文件就能在2 s范圍內(nèi)實時顯示系統(tǒng)通過溫度傳感器采集來的環(huán)境溫度。

3 嵌入式Web控制的實現(xiàn)

按照上述思路可實現(xiàn)服務器對客戶端的Web動態(tài)服務。然而在實際的嵌入式應用中,僅僅一個Web動態(tài)服務是不夠的,它還應支持客戶端數(shù)據(jù)上傳到服務器,以達到通過客戶端來控制服務器的目的。

那么,如何實現(xiàn)客戶端對服務器端的控制呢?遵照上述設計思路,并結合HTTP請求中的POST命令來實現(xiàn)簡單的Web控制。實現(xiàn)過程如下:
①在網(wǎng)頁文件中實現(xiàn)如下表單: 

②在嵌入式Web服務器的HTTP接收模塊中分析HTTP請求的POST數(shù)據(jù),當LEDCtr1=0時,發(fā)送指令點亮LED燈,否則熄滅LED燈。

4 功能測試

測試時可將嵌入式Web服務器與客戶端主機直接相連,并利用PC機的IE瀏覽器實時讀取服務器測量的環(huán)境溫度,結果如圖1所示。左圖是測量的當前環(huán)境溫度顯示的結果,右圖是當采用物理手段(如利用打火機燒烤傳感器)以提高環(huán)境溫度后顯示的結果。由圖可知,嵌入式Web服務器能完成正常的Web動態(tài)服務。經(jīng)實踐驗證,服務器系統(tǒng)LED燈的亮/滅完全可由圖1所示的亮/滅控件來控制,也就是說已成功實現(xiàn)了Web控制。                                                                    

5 結論

筆者分析了當前嵌入式系統(tǒng)實現(xiàn)Web動態(tài)服務的幾種思路,以采集環(huán)境溫度、控制LED燈的亮/滅為例,給出一種在嵌入式設備中實現(xiàn)Web動態(tài)服務與Web 控制的實現(xiàn)思路,并在給出實現(xiàn)結果的基礎上驗證了該設計思路的可行性。這為嵌入式設備,特別是低端嵌入式設備中順利實現(xiàn)Web動態(tài)服務及Web控制,進而實現(xiàn)物聯(lián)網(wǎng)技術打下了堅實的基礎。

 

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。

2012-02-27
Web動態(tài)服務及控制在物聯(lián)網(wǎng)中的應用設計
本文分析了當前嵌入式系統(tǒng)實現(xiàn)Web動態(tài)服務的幾種思路,以采集環(huán)境溫度、控制LED燈的亮/滅為例,給出一種在嵌入式設備中實現(xiàn)Web動態(tài)服務與W

長按掃碼 閱讀全文