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