松原職業(yè)技術(shù)學(xué)院 張永安
?
基于樹(shù)莓派的智能家居系統(tǒng)
松原職業(yè)技術(shù)學(xué)院張永安
隨著信息化、智能化的發(fā)展,智能家居這一概念逐漸成為了主流名詞。本文是以樹(shù)莓派為載體和中繼的智能家居系統(tǒng)作品設(shè)計(jì)。在作品中,我們圍繞樹(shù)莓派開(kāi)發(fā)板,運(yùn)用嵌入式系統(tǒng),基于Linux系統(tǒng),運(yùn)用Python語(yǔ)言,從而實(shí)現(xiàn)手機(jī)控制燈的開(kāi)關(guān)、窗簾的升降和GPIO口的使用,收聽(tīng)豆瓣FM,以及報(bào)警系統(tǒng)等等。
樹(shù)莓派;智能家居;Linux;可控?zé)簦豢煽卮昂?;可控電源;可控FM;報(bào)警系統(tǒng)
家居自動(dòng)化的目標(biāo)是讓居家生活更加充滿樂(lè)趣和效率,而智能家居技術(shù)正在通過(guò)引入“智能化”讓這一切變?yōu)楝F(xiàn)實(shí)。充分利用了樹(shù)莓派的開(kāi)源特性,選擇Linux作為底層系統(tǒng)。使用Python語(yǔ)言,充分利用了其便捷的語(yǔ)言特性。樹(shù)莓派是一個(gè)完美的中繼點(diǎn),運(yùn)用無(wú)線網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)了手機(jī)遠(yuǎn)程控制電燈,遙控窗簾,遙控開(kāi)關(guān)從而給電水壺供電燒水,播放音樂(lè)來(lái)實(shí)現(xiàn)智能家居系統(tǒng)的娛樂(lè)功能,并實(shí)現(xiàn)報(bào)警功能,體現(xiàn)智能家居系統(tǒng)的安全性。
基于樹(shù)莓派的智能家居系統(tǒng)開(kāi)發(fā)充分利用底層系統(tǒng)的開(kāi)源性來(lái)完成每一個(gè)細(xì)微的任務(wù),將每一個(gè)細(xì)微的功能交互成一個(gè)整體的網(wǎng)絡(luò),達(dá)到智能化的要求。
樹(shù)莓派,是只有信用卡大小的卡片式電腦,基于Linux。開(kāi)發(fā)過(guò)程中,選用樹(shù)莓派的B型版,一款基于ARM的微型電腦主板,包括了一個(gè)ARM1176JZF-s 700Mhz 的處理器,一塊Video Core IV GPU, 512M RAM,以SD卡為存儲(chǔ)系統(tǒng),有兩個(gè)USB接口和一個(gè)網(wǎng)口,可連接電源、鍵盤、鼠標(biāo)和網(wǎng)線,同時(shí)擁有HDMI視頻輸出接口,整合在一張僅比信用卡稍大的主板上,具備PC的基本功能。 樹(shù)莓派外部接口豐富,處理器、存儲(chǔ)設(shè)備不夠強(qiáng)大,但其價(jià)格低廉,為我們提供了一個(gè)理想的嵌入式開(kāi)發(fā)平臺(tái)。
1.燈光模塊
(1)電腦命令行控制
將燈的正極接在樹(shù)莓派的Pin 22(GPIO 25)上,負(fù)極接Pin 6(GND),使用python語(yǔ)言控制GPIO 25電平的高低,進(jìn)而燈光的亮滅。
(2)開(kāi)關(guān)控制
開(kāi)關(guān)是對(duì)樹(shù)莓派輸入信號(hào),因此要使用GPIO的輸入功能,即將燈的正極與樹(shù)莓派的GPIO 25相連,負(fù)極與地相連,同時(shí),將開(kāi)關(guān)的一端與Pin 1(3.3V)相連,開(kāi)關(guān)的另一端與pin 18(GPIO 24)相連。在中斷方式下編寫python程序。使用時(shí),運(yùn)行l(wèi)edstatus2.py,即可利用開(kāi)關(guān)控制燈的亮滅。按下開(kāi)關(guān)時(shí),燈亮,再按一下開(kāi)關(guān),燈滅。
(3)使用WEBIO控制
用瀏覽器打開(kāi)IP地址訪問(wèn)管理界面,若樹(shù)莓派的ip地址為192.168.137.13,則打開(kāi)http://192.168. 137.13:8000/webiopi/
(4)手機(jī)終端控制
通過(guò)手機(jī)終端軟件來(lái)控制燈的亮滅
2.窗簾模塊
本模塊采用步進(jìn)電機(jī)驅(qū)動(dòng),通過(guò)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)來(lái)控制窗簾的升降。通過(guò)GPIO口控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向以及速度。
步進(jìn)電機(jī)采用的驅(qū)動(dòng)芯片是ULN2003A,因此可用ULN2003A設(shè)計(jì)一個(gè)驅(qū)動(dòng)板,驅(qū)動(dòng)板上有4個(gè)輸入口:IN1~I(xiàn)N4,這4個(gè)口用來(lái)接樹(shù)莓派的4個(gè)GPIO口,我們將樹(shù)莓派上的GPIO 17、18、21、22口分別接到步進(jìn)電機(jī)驅(qū)動(dòng)板上的IN1、IN2、IN3、IN4口,利用Pin 2給步進(jìn)電機(jī)提供5V電源。依次把驅(qū)動(dòng)板的IN1~I(xiàn)N4置為高電平,就可以驅(qū)動(dòng)步進(jìn)電機(jī),也就是說(shuō),要把樹(shù)莓派的4個(gè)GPIO輸出口依次置為高電平。
通過(guò)終端發(fā)送運(yùn)行指令,來(lái)完成一次拉開(kāi)或關(guān)閉窗簾的動(dòng)作。
3.電水壺模塊
利用GPIO接口控制電水壺開(kāi)關(guān)的通斷。當(dāng)GPIO接口為高電平時(shí),電水壺開(kāi)關(guān)打開(kāi),電水壺的電阻加熱,電水壺執(zhí)行燒水功能,利用DS18B20檢測(cè)溫度,當(dāng)溫度達(dá)到100℃時(shí),GPIO接口自動(dòng)變?yōu)榈碗娖?,電水壺開(kāi)關(guān)自動(dòng)斷開(kāi),停止燒水,執(zhí)行保溫功能,并啟動(dòng)報(bào)警功能,提醒主人水已燒開(kāi)。當(dāng)GPIO接口為低電平時(shí),則不執(zhí)行燒水功能。
4.音樂(lè)模塊
本模塊借助GitHub上的一個(gè)開(kāi)源項(xiàng)目修改而來(lái),可以實(shí)現(xiàn)利用豆瓣FM播放音樂(lè),操作簡(jiǎn)單,把樹(shù)莓派作為一個(gè)低功耗音樂(lè)電臺(tái)使用,為家庭生活增添歡樂(lè)氣息。
5.報(bào)警模塊
本模塊采用人體紅外感應(yīng)模塊HC-SR501,本模塊的核心器件是人體紅外熱釋電傳感器,將紅外熱釋電傳感器與蜂鳴器連成如下電路:
運(yùn)行python程序后,紅外感應(yīng)模塊每隔一定時(shí)間檢測(cè),如有人靠近,蜂鳴器則發(fā)出報(bào)警聲,并在屏幕打印提示有人靠近,人若離開(kāi),則停止鳴叫,屏幕上顯示沒(méi)有人靠近。
6.遠(yuǎn)程控制
鑒于現(xiàn)在市面上Android手機(jī)比較普遍,在手機(jī)端遠(yuǎn)程控制方面,我們選擇Android手機(jī)作為實(shí)驗(yàn)平臺(tái)。通過(guò)樹(shù)莓派 Command 和RPi_Automation手機(jī)端APP,可以輕松實(shí)現(xiàn)手機(jī)端對(duì)樹(shù)莓派GPIO電平的控制,并且實(shí)現(xiàn)一鍵發(fā)送預(yù)先設(shè)置好的指令,以完成復(fù)雜任務(wù)。并且這些APP具有可編程性,可以根據(jù)自身需求來(lái)修改指令,從而滿足不同人的不同需求。
通過(guò)手機(jī)端,可以遠(yuǎn)程控制電燈的亮滅,控制窗簾拉開(kāi)或者關(guān)上,播放豆瓣FM,或者是控制熱水壺?zé)?,從而大大方便了使用者的生活,解放了雙腿,使生活更智能化。
樹(shù)莓派搭載Debian系統(tǒng)形成的Raspbian系統(tǒng),是官方推薦樹(shù)莓派的首選操作系統(tǒng)。Python語(yǔ)言具有完全免費(fèi)、面向?qū)ο?、?jiǎn)單易學(xué)、可移植性強(qiáng)等特點(diǎn),并且可實(shí)現(xiàn)對(duì)硬件底層的訪問(wèn)和控制,是基于樹(shù)莓派控制硬件的不二選擇。
本文充分展現(xiàn)了家居智能化的概念,總體來(lái)說(shuō),我們成功搭建了一個(gè)智能家居模型和軟件平臺(tái)。在硬件方面,我們做到了以樹(shù)莓派為控制器,以電腦和手機(jī)等不同終端的控制方式,成功實(shí)現(xiàn)了對(duì)燈光、窗簾、電水壺的控制,并且實(shí)現(xiàn)了音樂(lè)播放功能和報(bào)警功能,將智能家居的理念做到了實(shí)處。在軟件方面,我們以python語(yǔ)言為工具,以Linux系統(tǒng)和樹(shù)莓派為平臺(tái),通過(guò)編寫python程序成功實(shí)現(xiàn)了對(duì)硬件的控制。實(shí)踐證明,我們的理論是正確的,可行的。
[1]陳建皓.樹(shù)莓派入門指南[M].北京:人民郵電出版社,2014.
[2]Brendan Horan. 樹(shù)莓派樹(shù)莓派實(shí)作應(yīng)用[M].北京:人民郵電出版社,2014.
[3]李龍棋,方美發(fā),唐曉騰.樹(shù)莓派平臺(tái)下的實(shí)時(shí)監(jiān)控系統(tǒng)開(kāi)發(fā)[J].閩江學(xué)院學(xué)報(bào),2014(05).
[4]鄭世玨,徐虹.基于樹(shù)莓派的遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2014(19).
[5]Simon Monk.樹(shù)莓派 Python編程入門[M].北京:科學(xué)出版社,2014.
[6]https://github.com/turingou/douban.fm.
[7]http://shumeipai.nxez.com/2015/02/09/run-python-scriptwhen-the-raspberry-pi-start.html.