freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于linux系統(tǒng)的智能家居遠(yuǎn)程控制系統(tǒng)設(shè)計(編輯修改稿)

2025-02-08 12:10 本頁面
 

【文章內(nèi)容簡介】 將此傳給網(wǎng)頁,也可以通過網(wǎng)頁給溫濕度傳感器設(shè)定范圍值,當(dāng)濕度或溫度超過范圍就會給客戶發(fā)警告信息。 硬件模塊設(shè)計 本節(jié)主要介紹項目中的硬件選擇。硬件是智能家居系統(tǒng)實現(xiàn)的基礎(chǔ),通過硬件測試 來確定本項目中的方案是否可行。本節(jié)通過子模塊為列自來說明整體硬件的設(shè)計。由于該開發(fā)板資源豐富,內(nèi)容復(fù)雜,只對實驗中用到的 S3 C2440 的寄存器進(jìn)行闡述,如 GPIO 口的寄存器 GPnDAT, GPnCON, GPnUP 和 DART 口的寄存器 ULCONn, UCONn, UFCONn。然后闡述了系統(tǒng)硬件連接及測試的整個過程, 9 由最基本的開發(fā)板連接、溫濕度傳感器、 GPRS 模組,直至將幾個功能模塊集合到一起,進(jìn)行測試。 硬件選型 硬件選型是是整個項目實行的基礎(chǔ)。目前項目中,智能家居解決方案有以下三種選擇 :(1)用一個開發(fā)板做家庭網(wǎng)關(guān) 。(2)弄一個單片機,自己手動連接電路,自己去開發(fā)一個家庭網(wǎng)關(guān) 。(3)用一臺普通的計算機來做家庭網(wǎng)關(guān)。用單片機做家庭網(wǎng)關(guān)的話,雖然成本低,但是效益不怎么高,對于用戶來說有點麻煩。而嵌入式設(shè)備成本不高,執(zhí)行效益比較高,而且體積小,方便用戶使用。所以本次項目選擇使用開發(fā)板作為這次項目控制中區(qū)。 ( 1) GPRS 模組 GPRS 模組采用 STM300 通訊芯片 ,利用無線移動網(wǎng)絡(luò)來實現(xiàn)點對點間的全雙工通訊。同時,模組支持 tcp/ip 協(xié)議棧,因此可以利用它進(jìn)行無線上網(wǎng)。 模組通過是 UART 串行 接口與主芯片來通信,可以與任何 UART 串行通信接口的設(shè)備進(jìn)行連接 .。 該模組具有以下優(yōu)點: EGSM900m, PCS1900M, DCS1800M 多種頻段,兼容 GSM phase 2/2+ tcp/ip 協(xié)議,能夠無線上網(wǎng)。 ( PBCCH)。 ( ussb)。 GPRS 模組與主控制器通訊是通過標(biāo)準(zhǔn)的串口。該模組的接口是 10 針的,能夠與 MCU 相連。改 GPRS 模組也可以通過 RS232 接口與 pc 機相連。 其模組如下圖 33: 圖 33 10 ( 2)溫濕度傳感 器 本項中使用的是 AM2311濕敏電容數(shù)字模塊 ,他是一款含有含有校準(zhǔn)數(shù)字信號的輸出的溫濕度傳感器。,他使用的是溫濕度傳感技術(shù)與數(shù)字采集技術(shù)可靠性強,并且穩(wěn)定性好,適合長期使用。傳感器內(nèi)部有一個高性能的單片機,并且與單片機相連的有兩個高精度元件,一個測溫元件盒一個測溫元件。每個傳感器 傳感器都是在精確的溫濕度教驗實中進(jìn)行檢驗校準(zhǔn)的,且校準(zhǔn)的系數(shù)以程序的方式存儲在單片機中。傳感器內(nèi)部處理數(shù)據(jù)的時候要調(diào)用這些系數(shù)。用戶可以直接掛在模組的 i2c 通信接口上,使用簡單。本產(chǎn)品具有超快響應(yīng)、抗干擾能力強、品質(zhì)卓越性價比極 高等優(yōu)點。該產(chǎn)品為 4 引線,通信接口連接方便。特殊封裝形式可根據(jù)用戶需求而提供。 以圖 34 下是模組基本模型: 圖 34 硬件連接及測試 先將 ARM8 的開發(fā)板與 PC 機連接及測試 首先按照 2440 資料進(jìn)行硬件連接。 (1)先將 5V 的電源與開發(fā)板相連接。 (2)將開發(fā)板的串口與電腦相連。 (3)給開發(fā)板和電腦分別接上網(wǎng)線。 在 PC 機上建立超級終端來對開發(fā)板進(jìn)行操作 : (1)運行 windows xp 下的開始一程序一附件一通訊 *超級終端; (2)第一 次建立超級終端是會詢問是否將“ HyperTerminal”選擇為默認(rèn)程序,選擇“否”就可以了 。 (3)然后會要求輸入?yún)^(qū)號、電話號碼等信息,可以隨便輸入一些數(shù)字,不會有什么影響 。 11 (4)為了容易區(qū)分其他的超級終端,建議將新建立的連接命名為 ARM,如圖35。 (5)再按確定之后,會出現(xiàn)一個端口屬性設(shè)置的對話框,將端口的波特率設(shè)為每 秒 115200,數(shù)據(jù)位為 0,奇偶校驗為無,停止位 1,數(shù)據(jù)流控制位無然后點擊確認(rèn)即可。為了方便以后使用然后將新建立的超級終端放在桌面上,如果連接好后,啟動開 發(fā)板,能看到 一些信息,說明連接成功, 圖 35 設(shè)置正確,如圖 36。 圖 36 12 開機時,超級終端信息如下圖 37 所示: 圖 37 平臺搭建 內(nèi)核移植 開發(fā)板加電之后,會運行一段代碼,引導(dǎo)加載程序 bootloader,完成初始化硬件設(shè)備,映射好內(nèi)存,將 系統(tǒng)的軟硬件環(huán)境配置好,為最終的啟動操作系統(tǒng)作好準(zhǔn)備。在嵌入式系統(tǒng)中 Bootloader 對硬件要求比較嚴(yán)格,不同的版本系統(tǒng)要求有不同的 bootloader,現(xiàn)在常用的 bootloader 主要有 ARMboot, REDboot, uboot,blod 等等。本次項目選用的是 uboot。 Uboot 在目前功能比較全,靈活性比較高,并且開發(fā)的 bootloader 是開源的,它支持處理器種類比較多,比如 ARM, x86, MIPS 等,能夠支持很多種嵌入式系統(tǒng)的內(nèi)核,由著名的 Wolfgang denk 軟件工程師和 denx 軟 件工程師來維護(hù)。移植 uboot,主要是看硬件配置中的處理器是否相同,體系結(jié)構(gòu)是否一樣,然后是外圍接口是佛相符合。如果差不多就可以移植 uboot 內(nèi)核,否則不能移植。 本項目使用的是 s5pv210 的開發(fā)板,內(nèi)核使用的是桂林電大愛普已經(jīng)編譯并配置好的內(nèi)核,只移植即可,本項目中主要是通過雙絞線來燒入內(nèi)核的,其主要步驟如下: ( 1) 先將開發(fā)板與 pc 機的網(wǎng)線相連。 ( 2)打開 這個程序,設(shè)置好內(nèi)核地址。 能夠通過雙 13 絞線給開發(fā)板傳送數(shù)據(jù)的。 ( 3)打開超級終端,然后接通開發(fā)板的電源。在 超級終端出現(xiàn)倒數(shù) 3, 2, 1的時候鍵盤點擊任意按鍵即可。然后在超級終端敲入 update image 命定,等待內(nèi)核燒入完畢。 boa 服務(wù)器的移植 ( 1)編譯 boa 程序 上下載 文件 $ tar zxvf $ Cd ./src $ ./configure ( 2) boa 服務(wù)器的移植 在運行 ./configure 后按下面步驟修改 Makefile 文 件: 將: CC = gcc Cpp =gcc E 改為: CC = armlinuxgcc CPP = armlinuxgcc E 修改完之后再開發(fā)板完之后建立相關(guān)文件及目錄 $ cp 目錄下 在 ,即可運行服務(wù)器 系統(tǒng)程序設(shè)計 web 與 CGI 的編寫 Web 服務(wù)器運行于開發(fā)板中,用戶可以通過互聯(lián)網(wǎng) 訪問開發(fā)板 文件夾中的 html 文件,以網(wǎng)頁形式打開, html 能夠與 web 服務(wù)器通訊,當(dāng)用戶對網(wǎng)頁進(jìn)行操作時,就會觸發(fā) web 服務(wù)器中相應(yīng)的 cgi 程序。所以對 html 文件的編寫很重要。其中編寫主要流程如圖 38: 14 圖 38 ( 1) 登陸 web 瀏覽器的設(shè)計 登陸界面的設(shè)計是為了不讓隨便一個人能夠登陸自己家里的 web 服務(wù)器,對家里的設(shè)備進(jìn)行操作,這樣做也是為了安全性的提高。本次項目中是在局域網(wǎng)內(nèi)操作的,目前開發(fā)板使用的是靜態(tài) ip 為 ,所以用戶可以在 web 瀏覽器中通過格式 ip+端口 +目標(biāo) html 文件,即可對家庭登陸網(wǎng)頁的訪問。下圖 39是登陸網(wǎng)頁的界面: 圖 39 假設(shè)網(wǎng)頁登陸密碼與賬戶是 admin 和 123。輸入密碼和賬號 點擊登陸,就會通過 javascript 腳本與 web 服務(wù)器中的 cgi 進(jìn)行通訊,核對賬戶與密碼是否正確。其中主要代碼如下: Html 調(diào)用 javascript 里的函數(shù): /head 15 //這樣就可以調(diào)用 里面的函數(shù)了。 table trtdpfont size=5 face=verdana賬戶 amp。nbsp input type=39。text39。 id=login_usr/font/p/td/tr //輸入賬號的文本框 trtdpfont size=5 face=verdana密碼 amp。nbsp input type=39。text39。 id=login_psw/font/p/td/tr //輸入密碼的文本框 trtd align=centreamp。nbspamp。nbspamp。nbspamp。nbspamp。nbsp input type=39。button39。id=login_button value=登陸 onClick=check_user()/td/tr //點擊登陸后就會訪問 文件中的 check_user 函數(shù) /table /head Javascript 與 cgi 的通訊部分: Functiong check_user(usrname,pwd,urll_data,type) { Var xml_object = createXHR()。 Var URL =g_url。 If (0 == type) URL+=“/CGIbin/?”+”usrname=”+usrname”amp。usrname+”amp。pwd=”pwd。 //組合準(zhǔn)備發(fā)送的命定, Ellse if(1==type) URL +=”/cgibin/?”+url_data。 Var xml_status。 If(xml_object) { (“CGI”,URL,false)。 (“IfModifiedsince”,”0”)。 ()。 16 Xml_status = 。 If(200 == xml_status) { Return 。 } Xml_object = null。 } Else { Alert(“please check the Bowser!”)。 } } 其中字符串變量 URL 是來與 cgi 通訊用的。 URL +=“/cgibin/?”+”usrname=”+”amp。pwd”=ppwd 是用來拼接字符串的,將想要的字符組合在一起,并與 web 服務(wù)器中 cgibin 文件夾下 進(jìn)行通訊。 發(fā)送消息的函數(shù)。 Return 將結(jié)果返回給網(wǎng)頁, Alert( ?please check the Bowser!?) 如果輸入錯誤將會出現(xiàn)一個對話框提示錯誤。 CGI 程序: data = getenv(QUERY_STRING)。//獲取 javascript 發(fā)送過來的字符。 sscanf(data, %d, amp。status)。//解包,獲取想要的字符。 Printf(“%d”,Strcmp(status,”admin1234”))。//strcmp 函數(shù)式用來匹 配賬戶密碼是否與 admin1234 是否相同,相同則返回 0,否則是非 0 的,然 后將值通過輸出函數(shù)返回給 javascript。 登陸成功的界面會進(jìn)入控制臺界面,然后就可以對家庭一些設(shè)備進(jìn)行選擇性的控制。 其中界面如圖 310: 17 圖 310 點擊 LED 燈,發(fā)消息,溫濕度的監(jiān)控會顯示不同的網(wǎng)頁。 其中跳轉(zhuǎn)代碼如下: = g_url+/。//跳轉(zhuǎn)到燈的控制網(wǎng)頁 = g_url+/。//跳轉(zhuǎn)到發(fā)送短信網(wǎng)頁 = g_url+/。//跳轉(zhuǎn)到獲取溫濕度網(wǎng)頁 ( 2) LED 燈的控制界面與 CGI 的編寫 項目中 LED 燈的控制是智能家居 中一個重要的組成部分,為了能讓項目具有穩(wěn)定可靠性, LED 燈的狀態(tài)必須能夠與時時與網(wǎng)頁同步。 在 LED 燈的控制界面中,用戶可以點擊界面的 LED 燈控制按鈕,對開發(fā)板相對應(yīng)的燈進(jìn)行操作。當(dāng)燈熄滅時,點擊則會打開 LED 燈,當(dāng)燈打開時,點擊則會開啟。這樣用戶可以在遠(yuǎn)地辦公,也能及時關(guān)閉家中未關(guān)閉的燈光,也可以提前回家的時候開啟家里的燈火。并能提倡節(jié)約用電,綠色環(huán)保生活。圖 311 是 LED燈的控制界面 18 圖 311 其中 CGI 主要處理代碼如下: (1)獲取狀態(tài)信息: Int data。 Read(led,amp。data,sizeof(data))。 If(data amp。 0x02) /先判斷第一個燈的信息 Led1 = ?1?。 Else Led1 = ?0?。 If(daa amp。 0x04) //第二個燈的信息 Led2 = ?1?。 Else Led2 = ?0?。 If(data amp。 0x08) //第三個燈的信息 Led3 = ?1?。 Else Les3 = ?0?。 Printf(“%c,%c,%c”,led1,led2,led3)。 //把燈的信息發(fā)給頁面 Close(led)。 CGI 先是獲取當(dāng)前 LED 燈的狀態(tài)信息。 19 Printf( “%c, %c,%c”,led1,led2,led3) 。通過 printf 輸出,將信息發(fā)給網(wǎng)頁,網(wǎng)頁
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1