




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)I 摘 要本文以樹莓派為載體進(jìn)行智能家居控制器的設(shè)計。在對現(xiàn)在三種市面上的網(wǎng)絡(luò)電視的比較中引出畢設(shè)的主角樹莓派。首先是 LINUX 系統(tǒng)常識性的介紹;然后是在 ARM/LINUX 平臺上面開發(fā)應(yīng)用的兩種方法:調(diào)用系統(tǒng)已有資源、做程序(C 經(jīng)典法、PYTHON 快捷法) ;然后通過簡單的對于GPIO 口的使用(點亮 LED) ,建立家庭內(nèi)無線局域網(wǎng)和網(wǎng)絡(luò)電視的配置展示了本地應(yīng)用的種種可能;隨后簡略介紹了基本網(wǎng)絡(luò)協(xié)議(TCP/IP) ,并在此基礎(chǔ)上比較了五種不同服務(wù)器的優(yōu)缺點,并將我們的服務(wù)器暴露給外部網(wǎng)絡(luò),介紹了實現(xiàn)遠(yuǎn)程視頻監(jiān)控的兩種方法及其比較;最后是
2、軟件源的建立及其意義。在結(jié)論中詳細(xì)羅列了自己對于整個平臺的總體認(rèn)識。關(guān)鍵字關(guān)鍵字 :智能家居;樹莓派;Arm ;Linux 哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)IIAbstract The whole work of my graduation project is related to Raspberry Pi , an Arm & Linux development platform . As an introduction , the first two chapters show out some methods of smart home application dev
3、elopment on this platform and the capability of Raspberry Pi by ticking the GPIO ports and setting up a home-scale local wireless network. Then a briefly description of several primary internet protocol ,comparing 5 different ways of web-server building , putting forward web-server to the outside wo
4、rld .Finally , my judgment about the entire development platform .Keywords ::Smart Home;Raspberry Pi;Arm;Linux 哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)III目 錄摘 要 .IAbstract.II目 錄.III第 1 章 緒論.11.1 課題背景、目的和意義.11.1.1 課題背景.11.1.2 課題目的.21.1.3 課題意義.21.2 智能家居發(fā)展現(xiàn)狀.21.3 主要研究內(nèi)容及內(nèi)容安排.3第 2 章 控制器平臺介紹.42.1 設(shè)計平臺的軟硬件介紹.42.2 設(shè)計方法.82.3
5、設(shè)計功能.12第 3 章 本地應(yīng)用設(shè)計.133.1 GPIO 引腳控制 .133.2 無線路由器的實現(xiàn).143.3 網(wǎng)絡(luò)電視的配置.17第 4 章 網(wǎng)絡(luò)應(yīng)用設(shè)計.184.1 樹莓派網(wǎng)絡(luò)連接.184.2 服務(wù)器和 Pagekite.204.3 Webiopi 配置.214.4 Motion 的配置.22第 5 章 軟件源的制作.24結(jié) 論.26致 謝.28參考文獻(xiàn).29附 錄.30哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)1第 1 章 緒論1.1 課題背景、目的和意義1.1.1 課題背景首先從我的親身經(jīng)歷說起。今年 4 月,考研復(fù)試結(jié)束之后始耐心做畢業(yè)設(shè)計,某一天盧老師找我去給他家安裝無線路由器
6、。學(xué)校網(wǎng)絡(luò)比校外網(wǎng)絡(luò)收費高,許多用戶轉(zhuǎn)而使用學(xué)校外面的電信網(wǎng)絡(luò)。另外家庭內(nèi)網(wǎng)絡(luò)終端,如筆記本電腦、上網(wǎng)本、平板電腦、智能手機(jī),逐漸增多,如何能夠讓多個終端同時接入網(wǎng)絡(luò)是一個問題。校方或者說網(wǎng)絡(luò)中心,引進(jìn)了新的校園網(wǎng)客戶端,正是為了鼓勵大家建立家庭內(nèi)無線局域網(wǎng),解決多終端上網(wǎng)問題。那天在他家安裝 TP-LINK 無線路由器很簡單的建立起了家庭無線網(wǎng)。不足之處是:新的校園網(wǎng)客戶端要求必須有一個上網(wǎng)終端連接 TP-LINK 并始終運(yùn)行認(rèn)證程序,其他網(wǎng)絡(luò)終端才可以分享無線網(wǎng)。盧老師家的臺式電腦從此以后 365 天 24 小時開著,費電不說,像這種家庭用普通臺式機(jī)持續(xù)運(yùn)行幾個月恐怕就要癱瘓了。后來在樹莓
7、派官方論壇上看到了幾篇關(guān)于樹莓派連接無線網(wǎng)絡(luò)的帖子,給了我不少啟發(fā)。樹莓派完全可以將上述臺式機(jī)客戶端認(rèn)證和 TP-LINK 無線路由器的功能和二為一。后文有關(guān)于實現(xiàn)過程的詳細(xì)介紹,盡管沒有什么技術(shù)含量,的確顯示出樹莓派或者嵌入式系統(tǒng)在智能家居方面是可以有所作為的。另外一件事情是有關(guān)三網(wǎng)合一、網(wǎng)絡(luò)電視機(jī)頂盒。下面是三則廣告:小米高清互聯(lián)網(wǎng)電視盒 299 元(上海、杭州、長沙三地市銷售進(jìn)行中) ;PPTV5 月 18 日零點開放 800 臺工程版 PPBOX 的網(wǎng)絡(luò)預(yù)售,價格僅為 199元;樂視盒子 C1S 再次改變你的電視。自己曾經(jīng)試著在樹莓上面安裝XBMC 實現(xiàn)了網(wǎng)絡(luò)電視的功能,樹莓派又可以添
8、加一個功能。還有一件我曾經(jīng)有切身感受的事情,在我上初中三級的一個下午,奶奶在家突法心肌梗塞,當(dāng)時她的身邊只有剛上幼兒園的小弟,小弟驚慌失措,不知該如何是好。等到其他家庭成員發(fā)現(xiàn)情況,著手施救時,為時已晚。如果當(dāng)時她哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)2身邊有人能幫一把,或者及時的告知家里的其他成員,也許奶奶還有機(jī)會看看曾孫。你或者你周圍的人總是會有家庭財務(wù)失竊的經(jīng)歷。主人不在,緊閉的安全門形同虛設(shè),不良分子乘虛而入對我們的個人隱私甚至家庭財產(chǎn)造成損害。其時若能有一個忠誠的管家為我們及時的偵測到不法分子的侵入,通知主人,或者求助于公安民警,便可以及時的避免損失。另一方面,許多人的智能手機(jī)都
9、已經(jīng)更換了好幾部??茨撬^的智能手機(jī),配置動則 1GHZ 主頻的處理器,1GB 的內(nèi)存,等等之類硬件配置何其出眾。而現(xiàn)在就是這樣一個小小的板子,700HZ 主頻 512MB 內(nèi)存,已經(jīng)顯示出巨大的潛能。那么是否可以通過某種方式把智能手機(jī)的潛能也發(fā)揮出來呢?在傳統(tǒng)的上網(wǎng)聊天,拍照玩游戲之外是否也是可以有所作為的呢?1.1.2 課題目的本文所要實現(xiàn)的功能,在市面上都已經(jīng)有成型的產(chǎn)品。我所做的是要把幾個有關(guān)智能家庭應(yīng)用的獨立功能同時在一塊板子上面實現(xiàn),并試著擴(kuò)展自己的功能。在這個過程中,為其他人學(xué)習(xí) ARM/LINUX 開發(fā),或者說在樹莓派上面的開發(fā)厘清一條道路。同時嘗試擴(kuò)展智能手機(jī)的功能。1.1.
10、3 課題意義本文并沒有多少前瞻性的東西,所提到的智能家居的各個方面市面上都已經(jīng)有了成型的產(chǎn)品。自己感覺比較有意義的是:為我們學(xué)校家屬區(qū)建立家庭無線網(wǎng)提供了一點參考;為測控專業(yè)相關(guān)課程的開展和自動化協(xié)會的發(fā)展建立一個堅固的基礎(chǔ);為開源/自由軟件的事業(yè)做出了一點個人貢獻(xiàn),這個是最重要的。1.2 智能家居發(fā)展現(xiàn)狀從個人生活經(jīng)歷來看,智能家居還是一個遙遠(yuǎn)的詞匯,大多數(shù)老百姓還沒有接觸到這些東西。不知道是價格的原因,亦或現(xiàn)在的智能家居還只概念炒作,行業(yè)的大方向此處不做過多評論?,F(xiàn)僅就上面提到的樂視、小哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)3米、PPTV 不過一年左右時間連續(xù)發(fā)布的價位功能相近的三款擴(kuò)
11、展普通電視為網(wǎng)絡(luò)電視的數(shù)字機(jī)頂盒做一下簡單介紹和比較:首先是小米盒子,高清互聯(lián)網(wǎng)電視,迄今為止小米手機(jī)最發(fā)燒友的配件,硬件價格 299 元,視頻來源為央視正版授權(quán)高清內(nèi)容,標(biāo)配遙控器或者小米手機(jī)來控制控,體積類似于大屏智能手機(jī),HDMI 接口;Coretex-A9處理器,主頻 800MHZ,內(nèi)存 1G 、H.264、VC-1、WMV-HD、MPEG1/2/4最大至 1080p30 幀/秒,10/100M 自適應(yīng) RJ45 接口, Micro-USB 接口;其次是 PPBOX,1GHZ 主頻處理器、1GB 內(nèi)存、4G 閃存,支持 DLNA 和Airplay 多屏互動,售價 299 元,HDMI
12、接口、wifi、藍(lán)牙、3.5mm 音頻輸出;最后是樂視盒子,硬件免費,內(nèi)容收費;樂視網(wǎng) TV 版 12 個月服務(wù)費價格 490 元,6 個月服務(wù)費價格 290 元。CORETEX-A9 架構(gòu)雙核 1.5G 處理器,無線連接功能,并其集成無線路由器功能,流暢播放 1080P 高清電影,內(nèi)容來源樂視網(wǎng)正版資源。無論從硬件還是內(nèi)容資源的角度來看,樂視盒子都更勝一籌,費用自然也是最高的。我想網(wǎng)絡(luò)電視的本質(zhì)還是電視,或者說視頻內(nèi)容,如果讓我為家里面配備一臺這樣的設(shè)備的話,肯定是要以內(nèi)容為主要考慮。所以盡管價格高一些,我還是會選擇樂視盒子。雖然安裝 XBMC 的樹莓派硬件功能不比這三者差,但是沒有內(nèi)容資源
13、的支持就是無源之水,沒有實用價值。從另外一個角度來說,如此的價格去電影院看電影會有更好些的試聽享受,并且對普通家庭用戶而言肥皂劇和新聞聯(lián)播也是要看的,大家的需求未必就是每天歐美大片,這樣樂視的優(yōu)勢就不會那么明顯了。1.3 主要研究內(nèi)容及內(nèi)容安排本文首先介紹了樹莓派開發(fā)平臺的軟硬件資源以及在 ARM/LINUX 平臺開發(fā)應(yīng)用的一般方法,提出我將要實現(xiàn)的功能(第二章) ;然后是智能家居控制器本地開發(fā)(第三章)和網(wǎng)絡(luò)開發(fā)(第四章) ,最后是樹莓派軟件源的制作和善后工作(第五章) 。哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)4第 2 章 控制器平臺介紹樹莓派是英國樹莓派基金會推出的一款旨在推動學(xué)校計算
14、機(jī)科學(xué)教育的信用卡大小的單板電腦。由于其強(qiáng)大的計算能力,豐富的外部擴(kuò)展和低廉的價格而被選作本畢業(yè)設(shè)計的開發(fā)平臺。2.1 設(shè)計平臺的軟硬件介紹下面是樹莓派宏觀接口圖:圖 2-1:樹莓派 B 型板的宏觀結(jié)構(gòu)圖樹莓派就相當(dāng)于是一塊計算機(jī)主板。居于長方形板面中心的是一塊BCM2835 片上系統(tǒng),其上包括了一個 ARM1176JZF-S 700MHZ 的處理器(可以超頻至 1GHZ) ,和一塊 VideoCore IV GPU , 還有 512M RAM(A型板內(nèi)存為 256M) 。板子上面沒有內(nèi)置的長期存儲設(shè)備,但是提供一個 SD插槽,用戶可以將自己的 SD 卡插入作為硬盤使用。SD 插槽的旁邊是一個
15、Micro-USB 電源插孔,由此引入 5V 的電源,也可以通過 GPIO 接口的 2 號哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)5(VCC)和 3 號(GND)引腳提供 5V 電源。在 SD 插槽的另一邊是 26 針的擴(kuò)展接口,其中 2 腳可以接入或給出 5V 電源,1 腳給出 3.3V 電源,第12 腳可以提供 PWM,另外包括一組 UART,一組 SPI,一組 I2C,8 個GPIO 引腳。擴(kuò)展接口還算豐富。兩種視頻接口方式。其一是 HDMI,HDMI 兼容的電視或者顯示器可以直接通過這個接口獲得輸出的視頻信號,VGA 顯示器可以通過 HDMI-VGA轉(zhuǎn)換器得到 VGA 信號。在 HD
16、MI 相反方向是一個 RCA 接口,可以輸出模擬視頻信號供舊式電視使用。非常顯眼的可以看到疊在一起的兩個 USB 接口(A 型板只有一個 USB 接口) ,可以用來連接鼠標(biāo)和鍵盤,總是會遇到USB 接口不夠用的時候,這是就需要我們通過 USB-HUB 來進(jìn)行擴(kuò)展。在USB 接口旁邊是 10/100 M 以太網(wǎng)接口,作用不言自明。另外有三個不長用的外設(shè)。一是,USB 口和 RCA 接口之間的音響/測試接口;二是,板上面的類似于擴(kuò)展接口的 JTAG 接口;三是,TFT 觸摸屏接口。核心芯片 BCM2835:高清嵌入式多媒體應(yīng)用處理器 BCM2835 是一種低成本,全高清多媒體應(yīng)用處理器,適用于需要
17、高品質(zhì)多媒體性能的移動和嵌入式應(yīng)用設(shè)備。產(chǎn)品設(shè)計充分考慮了電池使用效率,并進(jìn)行了相關(guān)優(yōu)化。BCM2835 使用博通公司的第四代 VideoCore 技術(shù)來使能應(yīng)用程序中的各種圖像、視頻處理。*低功耗 ARM1176JZ-F 應(yīng)用處理器*雙核第四代 VideoCore 多媒體協(xié)同處理器*1080P30 幀每秒全高清視編碼/解碼*高性能視頻輸出。1080P60 幀每秒持續(xù)高分辨率 LCD、HDMI 輸出*低功耗,高性能 OpenGL-ES1.1/2.0VideoCoreGPU*先進(jìn)的圖像傳感器流水線(ISP)長達(dá) 20 萬像素的攝像頭高達(dá) 220 萬 像 素每秒下面是該芯片的內(nèi)部結(jié)構(gòu)圖:哈爾濱工業(yè)
18、大學(xué)(威海)本科畢業(yè)設(shè)計(論文)6圖2-2 BCM2835內(nèi)部結(jié)構(gòu)圖總的來說,樹莓派板子的外部接口還算豐富,處理器、存儲設(shè)備不夠強(qiáng)大。但因其低廉的價格(B 型板35美元,A 型板25美元) ,在8051單片機(jī)和個人電腦之間為我們提供了一個理想的嵌入式開發(fā)平臺。軟件方面,毫無疑問選擇 GNU/LINUX 平臺。做為開源軟件平臺,GNU/LINUX 給予用戶以免費或者較低的價格獲取操作系統(tǒng)和軟件的源代碼的權(quán)力。這使得用戶可以根據(jù)自己的需要編輯、修改源代碼,分發(fā)自己的代碼,鼓勵人們互相分享。其開放、共享的精神受到了許多科技人員的喜愛。在本畢業(yè)設(shè)計中筆者使用的操作系統(tǒng)是 Raspbian,一款基于 D
19、ebian 并根據(jù)樹莓派硬件條件進(jìn)行修改的操作系統(tǒng)。如下是維基百科中關(guān)于 Debain的描述:Debian 是由 GPL 和其他自由軟件許可協(xié)議授權(quán)的自由軟件組成的操作系統(tǒng),由 Debian 計劃(Debian Project)組織維護(hù)。Debian 計劃是一個獨立的、分散的組織,由3000人志愿者組成,接受世界多個非盈利組織的資金支持,Software in the Public Interest 提供支持并持有商標(biāo)作為保護(hù)機(jī)構(gòu)。哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)7Debian 以其堅守 Unix 和自由軟件的精神,以及其給予用戶的眾多選擇而聞名?,F(xiàn)時 Debian 包括了超過37,
20、500個軟件包并支持12個計算機(jī)系統(tǒng)結(jié)構(gòu)(i386、amd64、arm、mips、IBM 等等) 。Debian 是一個大的系統(tǒng)組織框架,在這個框架下有多種不同操作系統(tǒng)核心的分支計劃,主要為采用 Linux 核心的 Debian GNU/Linux 系統(tǒng),其他還有采用 GNU Hurd 核心的 Debian GNU/Hurd 系統(tǒng)、采用 FreeBSD 核心的 Debian GNU/kFreeBSD 系統(tǒng),以及采用 NetBSD 核心的 Debian GNU/NetBSD 系統(tǒng)。甚至還有應(yīng)用 Debian 的系統(tǒng)架構(gòu)和工具,采用 OpenSolaris 核心構(gòu)建而成的 Nexenta OS 系
21、統(tǒng)。在這些Debian 系統(tǒng)中,以采用 Linux 核心的 Debian GNU/Linux 最為著名。眾多的Linux 發(fā)布版,例如 Ubuntu、Knoppix 和 Linspire 及 Xandros 等,都基于Debian GNU/Linux。筆者使用 GNU/LINUX Debian 已經(jīng)有三年時間了,深刻的感覺到Debian 的強(qiáng)大。針對于嵌入式而言,采用 Debian 系統(tǒng)有三大優(yōu)勢:1、豐富的軟件包和強(qiáng)大簡便的軟件包管理器2、通用操作系統(tǒng),支持多種計算機(jī)系統(tǒng)架構(gòu)3、強(qiáng)大的志愿者/開發(fā)人員組織如下文所說,對于習(xí)慣了微軟操作系統(tǒng)的用戶來說,一些 GNU/LINUX版本絢麗的桌面環(huán)境
22、也許會讓你感到驚艷,但是相信我 GNU/LINUX 的精華來源于黑紙白字的文本界面。作為一名嵌入式開發(fā)者,應(yīng)該熟練的使用文本界面解決問題,那樣更能節(jié)省寶貴的系統(tǒng)資源并且更接近硬件或軟件的本質(zhì)。由于知識過于龐雜,這里僅就個人認(rèn)識對 GNU/LINUX 的特色文件系統(tǒng),做簡要介紹。文件系統(tǒng)主要包括兩部分:文件、目錄。文件系統(tǒng)將枯燥的物理細(xì)節(jié)(在硬盤或者 SD 卡中實際就是0和1的排列組合)包裝成為操作系統(tǒng)易于讀寫的形象,也就是用戶可見的文件,或者說普通文件。而目錄,其本質(zhì)是仍是文件,或者說特殊的文件,亦即儲存其他文件的文件??梢詫⑽募斫鉃閷嶋H的物理存儲空間,而目錄則包含了指向這些空間的“指針”。
23、記住一個非常重要的概念,GNU/LINUX 是建立在文件系統(tǒng)之上的,系統(tǒng)將外部設(shè)備甚至網(wǎng)絡(luò)設(shè)備也當(dāng)做文件進(jìn)行讀寫!在 LINUX 系統(tǒng)的 / 根目錄下面有:哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)8bin boot dev etc home media mnt opt proc root sbin selinux srv sys user varbin:本目錄下面是常用的命令,如文件的刪除、建立、壓縮,目錄的建立、刪除,文件權(quán)限的更改,磁盤讀寫刻錄,內(nèi)存查看等等。 對本目錄里面的內(nèi)容應(yīng)該熟練掌握,其他命令程序無特別需要建立概念即可,命令的查閱參見,http:/ boot:本目錄存儲系統(tǒng)啟動有
24、關(guān)的信息,如系統(tǒng)內(nèi)核,CPU 和 GPU 關(guān)于內(nèi)存的分配。我們將看到在樹莓派的 boot 目錄下面有 cmdline.txt 這個文件。這個文件控制著樹莓派 UART 是否輸出系統(tǒng)信息。dev:device , 即設(shè)備。光驅(qū) cdrom,優(yōu)盤 ttyUSB,串口 ttyS0,終端tty*在這兒都有體現(xiàn)。有幾個非常有趣的設(shè)備 zero 、null、random.以后你會發(fā)現(xiàn)他們的妙用。etc:包含運(yùn)行在系統(tǒng)上所有程序的配置文件。這個目錄很重要,經(jīng)常用!home:主目錄,GNU/LINUX 作為多用戶操作系統(tǒng),每一個用戶都有各自目錄以存儲個人信息。這就要引申出文件權(quán)限的概念。參考下面的連接: va
25、r:這個目錄很有意思,如我們的網(wǎng)絡(luò)文件儲存在/var/www 下面。在/var/log 目錄下存儲各種日志,用戶登錄,系統(tǒng)運(yùn)行,開機(jī)信息,網(wǎng)絡(luò)連接信息,內(nèi)核運(yùn)行信息等。如果系統(tǒng)運(yùn)行出現(xiàn)問題應(yīng)該首先到這里尋找靈感。2.2 設(shè)計方法接上節(jié),我們將要在 ARM + LINUX 平臺上面實現(xiàn)自己的功能。實現(xiàn)的方法有兩種:其一,自己動手寫代碼;其二,調(diào)用系統(tǒng)已有的命令、程序。首先如果自己動手的話,Raspbian 作為一個完整的操作系統(tǒng),可以編哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)9譯并執(zhí)行如 C、C+、PHP、Python、java 等各種編程語言構(gòu)建的程序。筆者主要用到 C、Python 兩種語
26、言。C 語言是基礎(chǔ),開發(fā)周期長,執(zhí)行效率高。Python 是一種面向?qū)ο蟮母呒壵Z言,有許多針對特定應(yīng)用的庫函數(shù)可控調(diào)用,開發(fā)周期短,執(zhí)行效率低(Raspberry Pi 中 Pi 是 python 的縮寫) 。其次是調(diào)用系統(tǒng)已有的命令、程序,GNU/LINUX 內(nèi)置的命令程序都是經(jīng)受過歷史考驗的,尤其是是 Debain 這樣一個以穩(wěn)定性為特色的操作系統(tǒng)。大多數(shù)命令、程序都可以接受用戶的參數(shù)做出相應(yīng)的動作,來完成用戶的要求。筆者認(rèn)為,在實際開發(fā)過程中,應(yīng)該盡量首先使用系統(tǒng)自帶的資源,其次是自己編寫程序,而在編程語言中優(yōu)先選擇 Python 語言,其次是 C 語言。然而,從學(xué)習(xí)的角度來說,應(yīng)該把
27、C 語言放在最前面,Python 語言或者直接調(diào)用系統(tǒng)集成好的工具會把許多細(xì)節(jié)蒙蔽掉,限制了用戶的權(quán)力。另外,對于嵌入式系統(tǒng),從資源和效率的角度考慮,也應(yīng)該多使用 C 語言。嵌入式開發(fā),尤其是在 GNU/LINUX + ARM 下面,還有一項非常重要的工具:文本編輯器。編輯器之所以重要,是因為首先很多系統(tǒng)配置文件都是以*.conf 的形式儲存在文件系統(tǒng)中,我們可以通過文本編輯器方便的修改;其次,使用文本編輯器而非圖形 IDE 可以節(jié)省許多寶貴的系統(tǒng)資源,熟練掌握文本編輯器之后可以極大的提高我們編寫代碼的質(zhì)量和速度。常用編輯器由三款:Nano、Vim 和 Emacs 。相比較而言,Nano 使用
28、非常簡單,同時功能無幾,適合入門級用戶使用。Vim 和 Emacs 是 GNU/LINUX 系統(tǒng)中最為著名的兩款文本編輯神器。筆者使用 Vim 兩年有余,深刻的被Vim 的強(qiáng)大所折服,通過按鍵的組合和插件的使用,Vim 賦予機(jī)械的二極管、門電路生機(jī)和活力。當(dāng)然 Emacs 也是非常強(qiáng)大的一款編輯器。對于經(jīng)常使用 GNU/LINUX,或者做嵌入式開發(fā)的人來說,Vim、Emacs 應(yīng)該熟練掌握一種。Vim 更加輕盈,所有的 GNU/LINUX 操作系統(tǒng)默認(rèn)安裝Vi(Vim 的前身) 。相比較而言 Emacs 更加靈活。簡單根據(jù)興趣愛好來講,底層開發(fā)人員(硬件到操作系統(tǒng))適宜使用 Vim,上層開發(fā)人
29、員(操作系統(tǒng)到網(wǎng)絡(luò))使用 Emacs。通常嵌入式設(shè)備,例如樹莓派資源有限,我們總是在個人電腦上完成開發(fā)過程然后向嵌入式設(shè)備移植,另外我們也需要借助個人電腦的一些外設(shè),如鍵盤和鼠標(biāo),完成一些工作。幾個工具可以幫助我們遠(yuǎn)程控制目標(biāo)機(jī)器或者方便調(diào)試:SSH、VNC、USB 轉(zhuǎn)串口、Minicom/Gtkterm 。 哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)10SSH,Secure Shell 安全殼協(xié)議,一項創(chuàng)建在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議,為計算機(jī)上的 Shell(殼層或者命令解釋器)提供安全的傳輸和使用環(huán)境。SSH 可以使得我們獲得遠(yuǎn)程運(yùn)行 LINUX 系統(tǒng)命令行的能力,另外SCP 命令可
30、以進(jìn)行文件傳輸。VNC,Virtual Network Computing,一種使用RFB 協(xié)定的屏幕畫面分享及遠(yuǎn)程操作軟件。此軟件借由網(wǎng)絡(luò),可以傳送鍵盤與鼠標(biāo)的動作及實時的屏幕畫面。例如,筆者使用的是 Tightvnc,正確安裝并配置之后,便可以在個人電腦上虛擬樹莓派的桌面環(huán)境,節(jié)省了用于購買鼠標(biāo)和鍵盤的費用,同時方便的進(jìn)行遠(yuǎn)程操作桌面。SSH 只能提供給用戶命令行工具,更加節(jié)省資源,而 Tightvnc 的圖形界面,更易于新手使用,并且有極少數(shù)工作也只能在圖形界面下完成,故而也是很有價值的。下面是 USB 轉(zhuǎn)串口和 Minicom/Gtkterm ,在無法連接網(wǎng)絡(luò)或者系統(tǒng)出現(xiàn)故障時,我們還
31、可以通過樹莓派的串口,對它進(jìn)行調(diào)試。為了方便在個人電腦上顯示串口窗口,我們需要將串口橋接至 USB 接口。這就要用到 PL2303芯片。PL2303 將 USB 端口和標(biāo)準(zhǔn) RS232 端口連接起來,兩塊大的片上緩存調(diào)配兩個方向的數(shù)據(jù)流,為了提高傳輸速率采用了 USB 塊狀數(shù)據(jù),串口自動進(jìn)行信號握手。這使之獲得了比傳統(tǒng) UART 控制器更高的信息傳送速率。將樹莓派的第 6 腳(地) ,8 腳、10 腳(UART 收發(fā))分別與模塊的相應(yīng)引腳相連,USB 口接電腦,樹莓派默認(rèn)將內(nèi)核啟動信息從 UART 口輸出,同時正常工作時 UART 也可以作為調(diào)試和控制窗口。如下圖示筆者的串口連接方法:哈爾濱工
32、業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)11 圖 2-3 USB 轉(zhuǎn)串口連接筆記本另外注意,樹莓派可以通過對 GPIO 第 2 腳+5V 來供電,而 PL2303 也正好有一個+5V 引腳,如果樹莓派外接設(shè)備不是很多的話(如只接網(wǎng)線) ,我們可以直接將上述的+5V 對應(yīng)連接,使樹莓派正常工作。上圖,是筆者總結(jié)出的樹莓派最簡工作方式。下面需要一款程序查看串口發(fā)送來的信息,這就要用到 Minicom/Gtkterm 。Minicom 是一種文本模式的串口通信工具,類似于微軟系統(tǒng)的超級終端,可以模擬 ANSI 和 VT102 終端。功能強(qiáng)大,應(yīng)用稍顯復(fù)雜。Gtktrem 是基于 GTK+開發(fā)的串口調(diào)試程序
33、,圖像界面,簡單實用。筆者使用的是 Gtkterm,感覺不錯,但是 Minicom 的文本操作模式更適合 GNU/LINUX 環(huán)境。如果個人電腦安裝的是微軟系統(tǒng)的話,可以是使用超級終端。雖然最近幾年 GNU/LINUX 系統(tǒng)特別是 UBUNTU 發(fā)行版,在圖形界面方面已經(jīng)做的相當(dāng)花哨,但是對于一名高手或者針對嵌入式開發(fā)來說,我們應(yīng)該熟練掌握文本界面的使用,甚至在文本里面瀏覽網(wǎng)頁。這里要提到兩款比較著名的文本瀏覽器 Lynx 和 W3m。Lynx 是純文本網(wǎng)頁瀏覽器,可以在 UNIX/LINUX/MAC 系統(tǒng)中使用,歷史悠久,并且仍在積極的開發(fā)之中。用戶眾多,功能強(qiáng)大。W3m 是一款基于文本的網(wǎng)
34、頁瀏覽器,支持多種操作系統(tǒng),在命令行終端可以很好的支持中文,和 Emacs 有一定淵源。這里不做詳細(xì)介紹。哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)12另外要提及一個 GNU/LINUX 下的圖形界面開發(fā)工具,GTK+。GTK+,GIMP ToolKit ,一個生成跨平臺的圖形界面開發(fā)工具。GTK+提供一整套開發(fā)控件,使得我們可以使用他來開發(fā)小到“HelloWorld!”大至 Gnome 桌面的各種應(yīng)用。由于其跨平臺性,GTK+開發(fā)的工具在 GNU/LINUX,微軟系統(tǒng)上都可以運(yùn)行。盡管 GTK+自身采用 C語言開發(fā),在其設(shè)計之初就考慮到了對于多種語言的支持,如C+、java、python 等
35、。下圖是筆者的 Debian 桌面:圖 2-4 筆者漂亮的 Gnome 桌面補(bǔ)充一點內(nèi)容,盡管筆者在設(shè)計過程中沒有用到,還是比較有意義的一個開源軟硬件平臺Arduino。Arduino 是一個開源的單片機(jī)控制器,它使用 Atmel AVR 單片機(jī),采用了開放源代碼的軟硬件平臺,并且使用類似 JAVA、C 語言的 Processing/Wiring 開發(fā)環(huán)境。與 8051 單片機(jī)不同,其集成開發(fā)環(huán)境可以非常方便的幫助我們實現(xiàn) USB 讀寫、圖像采集等功能。樹莓派硬件操作的實時性不好,而 Arduino 的網(wǎng)絡(luò)通信和計算能力不夠,二者結(jié)合,以樹莓派作為上位機(jī)進(jìn)行網(wǎng)絡(luò)通信處理大量數(shù)據(jù),使用 Ardu
36、ino 作為下位機(jī)控制外部器件,是一個不錯的組合(當(dāng)然可以換成如 UDOO 之類的高級 ARM 板子) 。下圖是 Arduino 開發(fā)環(huán)境的簡圖:哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)13圖 2-5 Arduino IDE 展示2.3 設(shè)計功能在 ARM+GNU/LINUX 軟硬件平臺下面,我們可以實現(xiàn)各種功能,簡單來說可以分為本地應(yīng)用、網(wǎng)絡(luò)應(yīng)用。本地應(yīng)用主要包括 GPIO 口、串口、SPI 和 I2C 的使用,用來控制外部引腳的高低電平或者數(shù)據(jù)流以控制外部器件。還能建立家庭無線局域網(wǎng),將樹莓派打造成為網(wǎng)絡(luò)視頻播放器。網(wǎng)絡(luò)應(yīng)用,主要包括建立服務(wù)器、服務(wù)器開放以及軟件源的制作。 第第 3 章
37、章 本地應(yīng)用設(shè)計本地應(yīng)用設(shè)計3.1 GPIO 引腳控制本地應(yīng)用開發(fā)主要有三種方法,介紹如下。哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)141、經(jīng)典法的 C 語言開發(fā):首先下載并安裝 airspayce 網(wǎng)站 BCM2835 有關(guān)輸入輸出的庫函數(shù),編譯并安裝。該庫函數(shù)提供了各種端口操作函數(shù)可供使用,主要有:GPIO 引腳、SPI 、I2C、系統(tǒng)時鐘。附錄里面有 SPI 測試程序可供參考。其中缺少串口函數(shù),但是各種外設(shè),例如筆者曾經(jīng)在樹莓派上用到的心電采集模塊、北斗模塊、與上位機(jī)或者 Arduino 通信等等,都需要用到串口,所以串口非常重要。另外,樹莓派以及一些嵌入式系統(tǒng)默認(rèn)的會將啟動信息通過串
38、口輸出,串口也可以被當(dāng)做調(diào)試終端來使用。如果要把串口回歸其本性,我們需要修改一些設(shè)置。將/boot/cmdline.txt 和 ttyAMA0 有關(guān)的信息刪除,并將/etc/inttab 文件找到包含/ttyAMA0/ 的行,在前面加“#”將該項注釋掉。2、簡潔的 Python 語言開發(fā):上面我們提到的是傳統(tǒng)的經(jīng)典的 C 語言開發(fā)方法,而是用 Python 可以極大的提高我們的開發(fā)效率。Python 是面向?qū)ο蟮母呒壘幊陶Z言,使用它可以加速開發(fā),高效的與系統(tǒng)整合,效率高且維護(hù)費用低,跨平臺、開源。在使用的過程中我們會發(fā)現(xiàn) Python 體現(xiàn)在樹莓派的方方面面。下面的例子Blink.py,簡單展
39、示了一個 Python 腳本,其簡練可見一斑:import wiringpi from time import sleep io = wiringpi.GPIO(wiringpi.GPIO.WPI_MODE_SYS) io.pinMode(18,io.OUTPUT) #Setup pin 18 (GPIO1) while True: io.digitalWrite(18,io.HIGH) # Turn on light sleep(2) io.digitalWrite(18,io.LOW) # Turn off sleep(2)對于電腦初學(xué)者來說,Python 有不可抗拒的魅力。注意,篇幅有限
40、,本文沒有對具體 GPIO 引腳的編程進(jìn)行詳盡的說明。3、功能強(qiáng)大的 Shell 編程:但凡使用過 GNU/LINUX 肯定對于 Shell 非常熟悉,它不僅是一個命令解釋器,其內(nèi)置的命令可以非常方便幫助我們完成系統(tǒng)各種日常維護(hù)、編輯文件、查看網(wǎng)絡(luò)等等工作。在 Shell 雙擊 TAB 系統(tǒng)會提示你是否輸出各種命令,例如在我的 Debian 系統(tǒng)中顯示有 2756 個命令可用。Python 編程和 Shell哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)15編程非常類似,這里不做詳細(xì)介紹,在用戶熟練使用 LINUX 之后應(yīng)該試著學(xué)習(xí) Shell 解決日常工作。硬件編程之外我們需要注意一些事情。樹莓
41、派 GPIO 口默認(rèn)除電源腳為+5v,其他引腳均為+3.3v 高,0V 低。上面提到的 Arduino 默認(rèn)為+5v 高,0v 低,二者不可直接相連,最好使用三極管電路將 3.3V 電平轉(zhuǎn)成 5V。如果外部設(shè)備需要較大電流的話,也需要可慮各個引腳的負(fù)載能力。切記,切記!樹莓派 GPIO 引腳內(nèi)部沒有保護(hù)電路,千萬不要不將+5V 與地短路,后果很嚴(yán)重。如果使用電池供電的話,需要用到線性電源或者開關(guān)電源。相比較而言線性電源效率低但噪聲小,開關(guān)電源效率高但噪聲大。兩種電源筆者都曾經(jīng)使用過,因為自己所連接的外設(shè)需要的電流較大(總電流大于 1.5A),使用 7805 做線性電源自身功耗相當(dāng)大,散熱效果很
42、差。后來改用 LM2576做開關(guān)電源,效果明顯好轉(zhuǎn)。開關(guān)電源核心是 LM2576 芯片,外加幾個電容、二極管、電感即可,考慮到兼容性采用 USB 接口輸出+5V。下圖筆者自制的開關(guān)電源外形圖:圖 3-1 LM2576 開關(guān)電源 3.2 無線路由器的實現(xiàn)樹莓派自身連接有線網(wǎng)絡(luò)(參看下一章) ,通過外接無線模塊,建立無線局域網(wǎng)。本項目所使用的無線模塊是 RT5370,主要是 RT5370 的配置:我們要用到兩款軟件 Hostapd 、Udhcp。Hostapd 是一個接入點和驗證服務(wù)器的用戶空間守護(hù)進(jìn)程,它實現(xiàn)了 IEEE802.11 的接入管理、哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)16IE
43、EE802.1X/WPA/WPA2/EPA 身份驗證、RADIUS 客戶端和 EPA 認(rèn)證服務(wù)器。Udhcp 是一款專用于嵌入式設(shè)備的 DHCP 軟件,功能比個人電腦上面的 DHCP 程序弱,使用簡單方便。在這里我們只用到 udhcpd,亦即 dhcp 客戶端程序。1、 連接各個外設(shè)啟動樹莓派,運(yùn)行下面命令查看 RT5370 是否被正確識別。$ sudo lsusb Bus 001 *Bus 001 *Bus 001 *Bus 001 Device 007 :ID 148f:5370 Ralink Technology , Corp, RT5370 2、 本機(jī)識別正常,安裝相關(guān)軟件:$ sud
44、o apt-get install hostapd udhcpd 3、下面配置 DHCP 服務(wù)器,編輯文件 /etc/udhcpd.conf , 添加如下內(nèi)容:start #DHCP 可分配的 IP 地址空間 end 5#應(yīng)為是在家庭內(nèi)使用,數(shù)量不必過多 interface wlan0 # Udhcp 服務(wù)器的工作設(shè)備remaining yesopt dns # DHCP 客戶端設(shè)備使用的 DNS 服務(wù)器opt subnet # 子網(wǎng)掩碼opt router #
45、 無線網(wǎng)的網(wǎng)關(guān),即樹莓派的無線 IP 地址 opt lease 864000# DHCP 服務(wù)器默認(rèn)運(yùn)行時間,10 天后自動關(guān)閉4、 使能 DHCP 服務(wù)器開機(jī)運(yùn)行,修改/etc/default/udhcpd 將DHCP_ENABLED=”no”改為:#DHCP_ENABLED=”no”5、 將/etc/network/interface 添加或者對相應(yīng)行做如下修改:iface wlan0 inet static#固定樹莓派的無線地址作為局域無線網(wǎng)的網(wǎng)關(guān) address netmask #allow-hotplug wlan0哈爾濱工業(yè)大學(xué)(
46、威海)本科畢業(yè)設(shè)計(論文)17#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf#iface default inet dhcp6、配置 hostapd??梢詤⒖?etc/hostapd/examples/hostapd.conf.gz 中的內(nèi)容。編輯(或者生成)文件/etc/hostapd/hostapd.conf 添加以下內(nèi)容:interface=wlan0#要使用的網(wǎng)卡driver=nl80211# 驅(qū)動名稱ssid=My_AP# 無線局域網(wǎng)的名稱hw_mode=g#channel=6# hostapd 運(yùn)作的頻率macaddr_acl=0
47、auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=My_Passphrase# 無線網(wǎng)的密碼wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP修改完上述文件后,編輯文件/etc/default/hostapd 將#DAEMON_CONF=”改為:DAEMON_CONF=”/etc/hostapd/hostapd.conf”7、配置網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT) ,該技術(shù)可以使幾臺終端設(shè)備通過一根網(wǎng)線連接網(wǎng)絡(luò)。首先修改/etc/sysctl.conf 文件找到行 net.ipv4.ip_f
48、orward = 1 ,去掉前面的“#” 將該選項使能。為了將 NAT 在 linux 內(nèi)核中使能運(yùn)行一下命令,修改防火墻設(shè)置:$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE$ sudo iptables -A FORWARD -i eth0 -o wlan0 -m state -state RELATED,ESTABLISHED -j ACCEPT$ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT現(xiàn)在樹莓派就可以進(jìn)行 NAT 了,當(dāng)然我們想把剛剛的設(shè)置選項永久保存,
49、運(yùn)行下面的命令將現(xiàn)在的防火墻設(shè)置生成文件:$ sudo sh -c iptables-save /etc/iptables.ipv4.nat設(shè)置開機(jī)啟動時加載上面的防火墻設(shè)置,在/etc/network/interfaces 文件底部哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)18添加下面的一行:up iptables-restore /etc/iptables.ipv4.nat8 現(xiàn)在我們就可以建立無線局域網(wǎng)了,設(shè)置 hostapd 和 udhcpd 開機(jī)自啟動:$ sudo update-rc.d hostapd enable$ sudo update-rc.d udhcpd enable樹
50、莓派開機(jī)重啟,使用手機(jī)或者電腦可以檢測到我們剛剛建立的無線信號。3.3 網(wǎng)絡(luò)電視的配置首先添加相應(yīng)的軟件源,打開文件/etc/apt/sources.ist.d/mene.list添加下面的內(nèi)容:deb http:/ wheezy contrib 然后導(dǎo)入存檔簽名秘鑰:$sudo apt-key adv -keyserver -recv-key 5243CDED完成之后,更新系統(tǒng):$ sudo apt-get update安裝網(wǎng)絡(luò)電視軟件:$ sudo apt-get install xbmc速度較慢,完成之后,關(guān)機(jī)重啟,進(jìn)入 xbmc.更改系統(tǒng)設(shè)置正常顯示中文,安裝相應(yīng)的 ZIP 文件,添加
51、對于 youku、toudu、qiyi 等國內(nèi)視頻網(wǎng)站的支持。如下圖是作者通過樹莓派的網(wǎng)絡(luò)電視觀看“舌尖上的中國”:圖 3-2 XBMC 觀看舌尖上的中國哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)19第第 4 章章 網(wǎng)絡(luò)應(yīng)用設(shè)計網(wǎng)絡(luò)應(yīng)用設(shè)計在我的理解中,從一個整體的角度考慮 computing , 硬件資源是土地,驅(qū)動程序是地基,操作系統(tǒng)便是我們的建筑物,應(yīng)用程序是我們房子的裝飾品,而網(wǎng)絡(luò)則是這樣一個家庭和外界進(jìn)行溝通的郵政系統(tǒng)。對親朋好友的祝福與問候是書信的內(nèi)容。而若要合理地投送我們的真情愜意的話,需要 Tcp/Ip/Udp 等通信協(xié)議作為信封,將地址,發(fā)件人,收件人,時間等一一表述?,F(xiàn)在已
52、經(jīng)很少有人寫信了,網(wǎng)絡(luò)通信卻越來愈多。如果要寫出高質(zhì)量的網(wǎng)絡(luò)應(yīng)用或者自己要實現(xiàn)特殊的功能(如 Pagekite 反向代理服務(wù)器)應(yīng)該對于網(wǎng)絡(luò)底層細(xì)節(jié)有一定的認(rèn)識。因為所涉及的內(nèi)容較多,這里僅僅就常見的幾個通信協(xié)議 TCP/UDP/IP/DNS 做簡要介紹。TCP,Transmission Control Protocol, 傳輸控制協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由 IETF 的 RFC793 定義。在簡化的計算機(jī)網(wǎng)絡(luò) OSI 模型中,它完成第四層傳輸層所指定的功能。UDP,User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議,相比較而言,UDP 協(xié)議只是簡單
53、的將信息打包按照目的地址往外傳輸。郵件只是簡單的送到郵筒里面,任其自生自滅。當(dāng)然他也是有特殊用途的,例如 DNS 服務(wù)就是采用的 UDP 協(xié)議。IP,Internet Procotol,網(wǎng)絡(luò)通信協(xié)議,為計算機(jī)網(wǎng)絡(luò)相互連接進(jìn)行通信而設(shè)計的協(xié)議。簡單來說就是,信封上面的發(fā)件人地址和收件人地址,或者說本機(jī)和目標(biāo)機(jī)器在英特網(wǎng)上面的位置坐標(biāo)。DNS,Domain Name System ,域名系統(tǒng)。信件從發(fā)件人地址到收件人地址,走鐵路,高速公路,還是空郵這就是 DNS的任務(wù),尋找連接兩個地址之間的通路。有關(guān)于網(wǎng)絡(luò)的詳細(xì)內(nèi)容,參見UNIX NETWORK PROGRAMING 。4.1 樹莓派網(wǎng)絡(luò)連接共有
54、三種網(wǎng)絡(luò)連接方式,無線、WLAN、3G。有線網(wǎng)絡(luò)的連接最簡單,將網(wǎng)線連接入網(wǎng)口,然后設(shè)置相應(yīng) ip 地址即可。但是我們學(xué)校最近新出了一個 D 的網(wǎng)絡(luò)認(rèn)證客戶端造成了不小的麻煩。城市熱點公司開發(fā)的這個客戶端,沒有對應(yīng) Arm 的版本,我在開始畢設(shè)的前半個月無法聯(lián)網(wǎng),寶貴的時間浪費掉了。最后跟學(xué)校網(wǎng)絡(luò)中心申請了一個可以通過網(wǎng)頁認(rèn)證的哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)20賬號才把有線聯(lián)網(wǎng)的問題解決。對應(yīng)的只需要在/etc/network/interface 修改相應(yīng)的配置即可。如下面是我的配置:iface eth0 inet static address netmask
55、 gateway 另外還要在/etc/resov.conf 中加入本地 DNS 服務(wù)器的地址。 連接無線稍微有點復(fù)雜。圖像界面下使用 wpa-configure 搜索無線信號,連接即可。命令行工具也可以解決這個問題,不過稍顯麻煩。需要用到iwlist ,ifup ,ifconfig 等幾個工具,這里不做詳細(xì)介紹,參看參考文獻(xiàn)第一本書中第六章,網(wǎng)絡(luò)連接。最后一個網(wǎng)絡(luò)連接方式,是自己的亮點,使用ZTE-A356 3G 上網(wǎng)卡連接網(wǎng)絡(luò)。對于智能家居而言,這一聯(lián)網(wǎng)方式意義不大。筆者的好友殷鵬做的智能導(dǎo)航車可以用到,意義在于不受地理限制的傳送大數(shù)據(jù)量信息
56、(100K/S) 。不過筆者并不推薦使用中興的這款這款設(shè)備,故不作介紹,參看下面的連接如果你要用到 3G 上網(wǎng)卡或者首先參看下面的連接然后再選擇使用何種外設(shè),/RPi_VerifiedPeripherals 。下圖是筆者使用的3G 上網(wǎng)卡:圖 4-1ZTE-A356哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)214.2 服務(wù)器和 Pagekite五種網(wǎng)絡(luò)控制方案及其比較:1 LAMP :Linux + Apache + Mysql + Php + CGI 2 Socket :TCP/IP/UDP 3 Django Pi :Python + Django (flas
57、k)4 WEBIOPI :Python 5 LLSP : Linux + Lighttpd + SQLlite + Php + CGI 最先想到的 LAMP,標(biāo)準(zhǔn)的服務(wù)器配置,然而這個方案又最先被否定。Apache 和 Mysql 體量有些大,樹莓派的本身的資源有限,服務(wù)器消耗過多的資源留給其他程序的資源不足,影響了主體功能的發(fā)揮。另外網(wǎng)絡(luò)電視Xbmc 也需要消耗很多資源,所以這個方案不行。然后是 Socket,曾經(jīng)非常愚蠢的嘗試著進(jìn)行底層 socket 編程。從最基本的 TCP/UDP 協(xié)議建立自己的服務(wù)器。這樣做太浪費時間,而且短時間內(nèi)不可能有什么成果。此方案不適用于我們在樹莓派上面建立服
58、務(wù)器,但是對于黑客或者想在網(wǎng)絡(luò)方面有所為的人,應(yīng)該花時間理解 TCP/IP.下面是 Django Pi,Django 和 Flask 都是基于 python 的網(wǎng)絡(luò)服務(wù)器框架。Python 實在強(qiáng)大,最近幾年使用 Python 建立網(wǎng)絡(luò)服務(wù)也越來越流行。個人學(xué)藝不精,沒有把他的強(qiáng)大功能發(fā)揮出來。曾經(jīng)有一個 Django Pi 的項目,現(xiàn)在已經(jīng)擱淺。這個方案不好評價,還待時間驗證。然后是 Webiopi,強(qiáng)烈的依賴于 Python 語言。該軟件已集成了一個網(wǎng)絡(luò)服務(wù)器,和各種 GPIO 函數(shù),多種傳感器函數(shù),可以方便的的擴(kuò)展服務(wù)器端腳本和客戶端 javascript 腳本。的確非常方便,到目前為止
59、已經(jīng)基本實現(xiàn)了筆者既定的目標(biāo)。但是在后續(xù)的使用過程中,卻也感覺到諸多限制。在引腳功能擴(kuò)展之外,比如添加實時視頻或者上傳文件,立感不便。所以僅限于畢業(yè)設(shè)計使用 Webiopi 實現(xiàn)功能,如果做實用話智能家居應(yīng)用的話,本方案不可。最后是 LLSP。Lighhtpd:安全、高速、兼容性好、靈活,高效率的網(wǎng)絡(luò)服務(wù)器,低內(nèi)存使用量,高校 CPU 使用,功能豐富。SQLLite :一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)中包含一個小的(350 KB)C 編程庫。在其它數(shù)據(jù)庫管理系統(tǒng)相比,SQLite 是不是一個單獨的過程,是從客戶端應(yīng)用程序的訪問,但它的一個不可分割的一部分。與 LAMP 相比較而言,這個方案更加節(jié)省資源,
60、對資源緊張的嵌入式系統(tǒng)的來說這更重要。相比較 Webiopi ,我們哈爾濱工業(yè)大學(xué)(威海)本科畢業(yè)設(shè)計(論文)22需要自己重寫新客戶端和服務(wù)器程序,但靈活型好,我們可以按需要擴(kuò)展自己的功能。這個方案挑篩選出來時,畢設(shè)所剩時間已經(jīng)沒有多少了,沒有辦法實施了。但是自己感覺,如果真的要實際應(yīng)用的話,不能采用樹莓派這個平臺,應(yīng)該采用一款資源更多的板子,或者自己根據(jù)需要做板子。Pagekite:一如校園網(wǎng),居民家庭內(nèi)的網(wǎng)絡(luò)一般都是局域網(wǎng),外界無法直接訪問到內(nèi)網(wǎng)的服務(wù)器,許多網(wǎng)絡(luò)服務(wù)提供商為了減少流量復(fù)核也會默認(rèn)關(guān)閉用戶的網(wǎng)絡(luò)端口。通常我們需要申請自己的域名,安裝動態(tài) DNS 客戶端,才可以使得外網(wǎng)可以通過域名
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 九年級上冊名著《水滸傳》:林沖-專題復(fù)習(xí)及中考真題匯編
- 九年級上必考名著《艾青詩選》考點考向
- 金融行業(yè)辦公自動化與效率提升策略
- 足浴店客戶留存策略客戶關(guān)系管理的新篇章
- 跨境電商平臺的客戶服務(wù)與售后支持體系構(gòu)建
- 金融安全文化的推廣與教育創(chuàng)新
- 音樂APP的界面視覺設(shè)計與聽覺體驗結(jié)合
- 遠(yuǎn)程教育興起及行業(yè)前景展望
- 跨文化團(tuán)隊中的溝通與沖突解決策略研究
- 四川2025年02月四川省巴中市市屬事業(yè)單位度公開選調(diào)39名工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- (完整版)第五章養(yǎng)殖場環(huán)境保護(hù)
- 祖國版圖知識主題班會
- 2025年上半年東方電氣集團(tuán)科學(xué)技術(shù)研究院限公司公開招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 征信異議申請書
- 高中不同主題閱讀理解高頻詞匯清單-2025屆高三下學(xué)期英語一輪復(fù)習(xí)專項
- 2025年上半年高郵市國資產(chǎn)投資運(yùn)營限公司(國企業(yè))公開招聘工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年高考地理二輪復(fù)習(xí):地球運(yùn)動(講義)解析版
- 2024年金華金開招商招才服務(wù)集團(tuán)有限公司招聘筆試真題
- 【地理】亞洲的自然環(huán)境第3課時 2024-2025學(xué)年七年級地理下冊同步課件(人教版2024)
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 《國別和區(qū)域研究專題》教學(xué)大綱
評論
0/150
提交評論