基于WEB的遠(yuǎn)程控制_第1頁
基于WEB的遠(yuǎn)程控制_第2頁
基于WEB的遠(yuǎn)程控制_第3頁
基于WEB的遠(yuǎn)程控制_第4頁
基于WEB的遠(yuǎn)程控制_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 嵌入式系統(tǒng)設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)報(bào)告 題目 基于web的遠(yuǎn)程控制設(shè)計(jì) 系 別 年 級(jí) 專 業(yè) 班 級(jí) 學(xué) 號(hào) 學(xué)生姓名 指導(dǎo)教師 實(shí)驗(yàn)時(shí)間 目 錄前 言2引 言2課題要求31、課題目的:32、運(yùn)行環(huán)境:3正 文3一、課題分析:3二、實(shí)驗(yàn)原理:3三、系統(tǒng)設(shè)計(jì):31、配置BOA 服務(wù)器:42、CGI原理及程序設(shè)計(jì)與編寫53、網(wǎng)頁文件index.html設(shè)計(jì)64、LED燈的驅(qū)動(dòng)6四、實(shí)驗(yàn)現(xiàn)象6五、實(shí)驗(yàn)注意點(diǎn)及問題61、實(shí)驗(yàn)注意點(diǎn):62、問題:6總結(jié)體會(huì)7附件1:CGI程序8附件2:網(wǎng)頁(html文件)程序10設(shè)計(jì)性實(shí)驗(yàn)報(bào)告成績(jī): 指導(dǎo)教師簽名:11前 言隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)通信技術(shù)的飛速發(fā)展,人們?nèi)粘I?/p>

2、和工業(yè)生產(chǎn)等方面對(duì)基于以太網(wǎng)進(jìn)行遠(yuǎn)程通信和控制的要求日益強(qiáng)烈?,F(xiàn)代實(shí)驗(yàn)設(shè)備由于其高度的精密和復(fù)雜性以及大量的信息獲取和處理要求, 基本上涵蓋網(wǎng)絡(luò)化生產(chǎn)與商業(yè)的技術(shù)問題, 使得它成為一個(gè)非常好的前期模型?;赪eb的遠(yuǎn)程控制對(duì)遠(yuǎn)程終端要求低,再加上互聯(lián)網(wǎng)技術(shù)的普及,基于Web的遠(yuǎn)程控制這種方式將會(huì)廣泛應(yīng)用到工業(yè)設(shè)備遠(yuǎn)程監(jiān)控,自動(dòng)化農(nóng)業(yè),網(wǎng)絡(luò)化信息家電,智能樓宇,遠(yuǎn)程安防監(jiān)控系統(tǒng)等。目前市場(chǎng)上雖已有成熟的Web服務(wù)器可供遠(yuǎn)程控制系統(tǒng)選擇,但多是基于通用計(jì)算機(jī)或?qū)S梅?wù)器,體積及成本不適合小型控制系統(tǒng),尤其是在一些環(huán)境惡劣,不易值守或無法安裝計(jì)算機(jī)控制系統(tǒng)的場(chǎng)所。如今嵌入式技術(shù)發(fā)展迅速,嵌入式處理器

3、的性能不斷提高,基于嵌入式的控制系統(tǒng)得到廣泛應(yīng)用。這個(gè)實(shí)驗(yàn)研究了基于Web 的遠(yuǎn)程控制實(shí)驗(yàn)系統(tǒng)的硬件和軟件設(shè)計(jì)方法, 重點(diǎn)討論了遠(yuǎn)程數(shù)據(jù)通信實(shí)現(xiàn)等關(guān)鍵技術(shù), 并用計(jì)算機(jī)網(wǎng)絡(luò)對(duì)Led燈的控制。引 言近年來,隨著互聯(lián)網(wǎng)在全球的飛速發(fā)展,網(wǎng)絡(luò)技術(shù)廣泛應(yīng)用于各種企業(yè)和工業(yè)系統(tǒng),越來越多的信息化產(chǎn)品需要能夠接入互聯(lián)網(wǎng)通過Web頁面進(jìn)行遠(yuǎn)程訪問和控制。這種程序結(jié)構(gòu)也就是大家非常熟悉的B/S結(jié)構(gòu),即在 嵌入式設(shè)備上運(yùn)行一個(gè)支持腳本或CGI功能的Web服務(wù)器,能夠生成動(dòng)態(tài)頁面,在用戶端只需要通過Web瀏覽器就可以對(duì)嵌入式設(shè)備進(jìn)行管理和監(jiān)控,非常方便實(shí)用?;赪eb的遠(yuǎn)程控制設(shè)計(jì),我們首先需要在嵌入式設(shè)備上成功

4、移植支持腳本或CGI功能的Web服務(wù)器,然后才能進(jìn)行應(yīng)用程序的開發(fā)。嵌入式Web服務(wù)器移植,我們常用的是Boa服務(wù)器的移植。課題要求1、 課題目的:在2440開發(fā)板上移植一個(gè)boa程序,使開發(fā)板可以作為一個(gè)WEB服務(wù)器使用。在PC計(jì)算機(jī)上使用瀏覽器測(cè)試嵌入式WEB服務(wù)器的功能。建立嵌入式系統(tǒng)的WEB服務(wù)功能(Boa服務(wù)器的建立參考實(shí)驗(yàn)“嵌入式WEB服務(wù)器實(shí)驗(yàn)”說明),利用WEB頁遠(yuǎn)程控制嵌入式系統(tǒng)中的硬件狀態(tài),如控制Led等的點(diǎn)亮、熄滅等動(dòng)作。2、 運(yùn)行環(huán)境: 硬件:up-Star 認(rèn)證考試實(shí)踐板、PC 機(jī)Pentium 500 以上, 硬盤10G 以上。軟件:PC 機(jī)操作系統(tǒng)REDHAT L

5、INUX 9.0MINICOMARM-LINUX 開發(fā)環(huán)境正 文一、 課題分析:這個(gè)實(shí)驗(yàn)基于Web的遠(yuǎn)程控制系統(tǒng)是以嵌入式Web服務(wù)器為中心,通過Internet網(wǎng)遠(yuǎn)程訪問嵌入式Web服務(wù)器,嵌入式Web服務(wù)器通過現(xiàn)場(chǎng)總線控制各個(gè)LED燈,以達(dá)到遠(yuǎn)程監(jiān)控的目的,實(shí)現(xiàn)PC機(jī)的瀏覽器可通過Internet網(wǎng)訪問嵌入式Web服務(wù)器。通過對(duì)嵌入式系統(tǒng)的結(jié)構(gòu)形式主要有通用平臺(tái)、系統(tǒng)架構(gòu)、硬件架構(gòu)、軟件架構(gòu)以及硬件、軟件的設(shè)計(jì)方案介紹,系統(tǒng)的將現(xiàn)場(chǎng)數(shù)據(jù)采集設(shè)備、本地Web服務(wù)器和遠(yuǎn)端監(jiān)控主機(jī)三部分構(gòu)成的基于Web的遠(yuǎn)程控制系統(tǒng)做了較為全面的介紹和設(shè)計(jì)。二、 實(shí)驗(yàn)原理: 基于web 的遠(yuǎn)程控制系統(tǒng)開發(fā)步驟如

6、下:1、建立可用的軟件開發(fā)環(huán)境;2、移植Boa 服務(wù)器;3、開發(fā)所需的驅(qū)動(dòng)程序;4、編寫html 頁面;5、編寫CGI 程序,實(shí)現(xiàn)遠(yuǎn)程控制;6、登陸服務(wù)器,測(cè)試系統(tǒng)功能。三、 系統(tǒng)設(shè)計(jì):1、配置BOA 服務(wù)器:(1) 依照實(shí)驗(yàn)要求編譯BOA 服務(wù)器,并生成可執(zhí)行文件BOA,并且在開發(fā)板的/var的文件下建立實(shí)驗(yàn)所需的文件夾及文件??截怋oa源碼目錄下已有的一個(gè)示例boa.conf,并在其基礎(chǔ)上進(jìn)行修改:Port 80#Listen User rootGroup 0#ServerAdmin rootlocalhostErrorLog /var/web_boa/log/erro

7、r_logAccessLog /var/web_boa/log/access_log#UseLocaltime#VerboseCGILogsServerName .here#VirtualHost DocumentRoot /var/web_boa/wwwUserDir public_htmlDirectoryIndex index.htmlDirectoryMaker /usr/lib/boa/boa_indexer# DirectoryCache /var/spool/boa/dircacheKeepAliveMax 1000KeepAliveTimeout 10M

8、imeTypes /var/web_boa/mime.typesDefaultType text/plainCGIPath /bin:/usr/bin:/usr/local/binAlias /doc /usr/docScriptAlias /cgi-bin/ /var/web_boa/www/cgi-bin/(2)利用掛載功能將BOA 執(zhí)行文件復(fù)制到開發(fā)板/var的文件夾下;(3)利用掛載功能將boa.conf文件復(fù)制到開發(fā)板/var的文件夾下。在/var下建立web_boa目錄等,根據(jù)boa.conf文件中的內(nèi)容相應(yīng)創(chuàng)建需要的目錄。另外,在虛擬機(jī)的/etc目錄下拷貝mime.types文件

9、到開發(fā)板。將生成的執(zhí)行文件boa、pass.cgi及index.html文件傳到開發(fā)板指定目錄(boa.conf文件中指定)。(4)運(yùn)行boa文件up-tech: #cd /varup-tech:/var#./boa打開瀏覽器輸入開發(fā)板的IP地址運(yùn)行程序2、CGI原理及程序設(shè)計(jì)與編寫(1)CGI程序編寫(詳細(xì)程序見附件1)for ( i = 0; i (int)strlen(input); i+ ) if ( inputi = V ) j=inputi+1; if (j=1) ioctl(fd, 1, 0); ioctl(fd, 0, 1); ioctl(fd, 0, 2); if(j=2)

10、ioctl(fd, 0, 0); ioctl(fd, 1, 1); ioctl(fd, 0, 2); if(j=3) ioctl(fd, 0, 0); ioctl(fd, 0, 1); ioctl(fd, 1, 2); close(fd); printf(Your POST Message is %s n, input); return 0;(2)CGI文件的生成在虛擬機(jī)的終端環(huán)境中打開文件所在的文件夾輸入arm-linux-gcc -o pass.cgi pass.c3、網(wǎng)頁文件index.html設(shè)計(jì)(1)網(wǎng)頁(html文件)設(shè)計(jì)(見附件2)(2)利用掛載功能將文件復(fù)制到開發(fā)板的/var/

11、web_boa/www的文件夾下(3)運(yùn)行結(jié)果4、LED燈的驅(qū)動(dòng)驅(qū)動(dòng)的編譯:make modules;將驅(qū)動(dòng)程序下載到開發(fā)板上;加載驅(qū)動(dòng)程序命令: insmod 驅(qū)動(dòng)名;手動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn):mknod /dev/led c 231 0。四、 實(shí)驗(yàn)現(xiàn)象 連好實(shí)驗(yàn)設(shè)備后,執(zhí)行boa,在遠(yuǎn)程聯(lián)網(wǎng)計(jì)算機(jī)上通過瀏覽器輸入開發(fā)板IP,就可以遠(yuǎn)程控制實(shí)驗(yàn)板上led燈的亮滅。按0即第一個(gè)燈亮,按1即第二個(gè)燈亮,按2即第三個(gè)燈亮。五、 實(shí)驗(yàn)注意點(diǎn)及問題1、實(shí)驗(yàn)注意點(diǎn):(1)容量較大的文件上傳到開發(fā)板要用ftp。如果需要用掛載則要將nolock改為nolock rsize=1024,wsize=1024這樣才能順利

12、的上傳。(2)生成文件夾mkdir *,生成文件touch *。(3)文件的移動(dòng):mv 文件的復(fù)制:cp(4) CGI文件的生成:arm-linux-gcc -o pazss.cgi pass.c2、問題:(1)掛載掛不上:可能是沒連接開發(fā)板,也可能是本地網(wǎng)絡(luò)連接禁用錯(cuò)誤的原因。(2)壓縮包的解壓縮:解壓縮時(shí)我們不能像平常一樣直接右擊解壓縮到當(dāng)前文件,而是應(yīng)該將壓縮包拷到自己文件下,用rootlocalhost webserver#tar zxvf boa-0.94.13.tar.gz 。(3)Boa執(zhí)行后打不開網(wǎng)頁或者打開網(wǎng)頁錯(cuò)誤:可能是網(wǎng)頁出現(xiàn)了錯(cuò)誤,也許是cgi自身出了問題,或是配置文件

13、的路徑發(fā)生了錯(cuò)誤,這些問題可以通過檢查路徑和文件解決。(4)無法控制Led燈:最可能的原因是未添加Led燈的驅(qū)動(dòng),異是Led燈的驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤。(5)開發(fā)板ping出錯(cuò):1.自動(dòng)橋接 2.換個(gè)IP地址再激活。(6)源文件的拷貝:實(shí)驗(yàn)過程中,一些源文件在虛擬機(jī)上修改以后,應(yīng)該重新將其加載到開發(fā)板上,并將原來的文件覆蓋掉??偨Y(jié)體會(huì)此次實(shí)驗(yàn)課題是基于web的遠(yuǎn)程控制設(shè)計(jì)。通過本次實(shí)驗(yàn),我熟悉了基于Web下遠(yuǎn)程控制Led的方法,對(duì)CGI原理有了進(jìn)一步了解,掌握了BOA的移植方法。這次實(shí)驗(yàn)是嵌入式實(shí)驗(yàn)的最后一個(gè)綜合性設(shè)計(jì)實(shí)驗(yàn),前前后后經(jīng)歷了兩周時(shí)間。第一周我只是大概了解了一下整個(gè)過程,完成了網(wǎng)頁的設(shè)計(jì)

14、,和boa的移植。因?yàn)檎n前預(yù)習(xí)了實(shí)驗(yàn)講義,所以過程還是順利的。第二周根據(jù)我們課前編好的CGI代碼,進(jìn)行實(shí)驗(yàn)的整體操作。在這個(gè)過程中問題還是蠻多的。然而我通過詢問老師還有同學(xué)以及自己的查資料,更多地了解嵌入式的一些基本術(shù)語還有這些術(shù)語的作用,以及在什么時(shí)候使用它改如何使用它。還有就是當(dāng)我遇到問題或麻煩的時(shí)候我該怎樣去解決問題,我該怎么運(yùn)用我所學(xué)的知識(shí)走出這個(gè)謎團(tuán),以及以最好的方式解決當(dāng)前的問題。通過這次實(shí)驗(yàn)我總結(jié)了要如何學(xué)習(xí)嵌入式。首先要保持良好的心態(tài),不能急于求成,要一步一個(gè)腳印的堅(jiān)持;然后要有清晰的學(xué)習(xí)規(guī)劃,明確學(xué)習(xí)步驟,明確先學(xué)什么,再學(xué)什么,比如C語言是學(xué)習(xí)嵌入式的基礎(chǔ),所以在學(xué)習(xí)時(shí)必須

15、要踏踏實(shí)實(shí),把地基給打好;最后要有良好的學(xué)習(xí)氛圍。嵌入式學(xué)習(xí)的難度和高度決定了嵌入式的學(xué)習(xí)要有個(gè)良好的學(xué)習(xí)討論氛圍,不能一味自己悶頭學(xué),要多去討論和探討或是想老師尋求答案但自己一定要明白其中的道理,汲取大家的智慧才能更好的提高。在整個(gè)學(xué)期中,雖然嵌入式很難學(xué)習(xí),很難掌握,但我還是挺喜歡嵌入式的,因?yàn)樗梢詭Ыo我許多接觸不到的事物,也漸漸習(xí)慣了看滿屏代碼的感覺。希望如果有機(jī)會(huì)還能對(duì)嵌入式有所學(xué)習(xí)。附件1:CGI程序 #include #include #include char* getcgidata(FILE* fp, char* requestmethod);int main() char

16、*input; char *req_method; / char led1064; char led264; char a; int i = 0; int j = 0; int fd; printf(Content-type: text/plain; charset=iso-8859-1nn); printf(Content-type: text/htmlnn); printf(The following is query reuslt:); fd = open(/dev/led, 0); if (fd 0) perror(open device /dev/led); exit(1); ioc

17、tl(fd, 1, 0); req_method = getenv(REQUEST_METHOD); input = getcgidata(stdin, req_method); /根據(jù)input中的字符串信息確定led燈的點(diǎn)亮關(guān)閉 /以下補(bǔ)充完善代碼 for ( i = 0; i (int)strlen(input); i+ ) if ( inputi = V ) j=inputi+1; if (j=1) ioctl(fd, 1, 0); ioctl(fd, 0, 1); ioctl(fd, 0, 2); if(j=2) ioctl(fd, 0, 0); ioctl(fd, 1, 1); i

18、octl(fd, 0, 2); if(j=3) ioctl(fd, 0, 0); ioctl(fd, 0, 1); ioctl(fd, 1, 2); close(fd); printf(Your POST Message is %s n, input); return 0;char* getcgidata(FILE* fp, char* requestmethod) char* input; int len; int size = 1024; int i = 0; if (!strcmp(requestmethod, GET) input = getenv(QUERY_STRING); return input; else if (!strcmp(requestmethod, POST) len = atoi(getenv(CONTENT_LENGTH); input = (char*)malloc(sizeof(char)*(size

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論