何靜如
摘 要:為了打造更舒適安全的家居環(huán)境,解決普通智能家居用品功能集成度低的問(wèn)題,并降低購(gòu)買(mǎi)成本,文中設(shè)計(jì)了一種以樹(shù)莓派作為控制終端,通過(guò)多種傳感器采集信息,實(shí)現(xiàn)集室內(nèi)溫濕度調(diào)節(jié)、人臉識(shí)別門(mén)鎖、紅外感應(yīng)夜燈、實(shí)時(shí)監(jiān)控多種功能于一體的智能家居系統(tǒng)。該系統(tǒng)可對(duì)室內(nèi)溫濕度進(jìn)行調(diào)控,增大家居環(huán)境的安全系數(shù),并滿足節(jié)能便利的生活需求。整個(gè)系統(tǒng)功能集成度高,成本低廉,具有一定的應(yīng)用價(jià)值與市場(chǎng)前景。
關(guān)鍵詞:樹(shù)莓派;智能家居;多功能集成;室內(nèi)溫濕度調(diào)節(jié);人臉識(shí)別門(mén)鎖;紅外感應(yīng)夜燈;實(shí)時(shí)監(jiān)控
中圖分類(lèi)號(hào):TP273;TP212 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)02-00-04
0 引 言
家居環(huán)境的安全性與人們的生活息息相關(guān)。在濕熱的環(huán)境下,人體的散熱功能受到抑制,易導(dǎo)致煩躁、中暑、精神紊亂;而干冷的環(huán)境易使人體的皮膚干燥,同時(shí)也會(huì)誘發(fā)呼吸系統(tǒng)病癥。此外,空氣濕度過(guò)大或過(guò)小時(shí),都有利于一些細(xì)菌和病毒的繁殖和傳播。因此,保持室內(nèi)合理的溫濕度尤為重要。
由于人的面部特征具有唯一性[1],在傳統(tǒng)門(mén)鎖中加入人臉識(shí)別系統(tǒng),并實(shí)時(shí)監(jiān)控,可大大增加家居環(huán)境的安全系數(shù)并方便出行。另外,根據(jù)光線情況與是否有人,燈具可自動(dòng)變換開(kāi)關(guān)狀態(tài),滿足了節(jié)能與便利的需求。
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,各種智能家居設(shè)備應(yīng)運(yùn)而生,普通智能家居用品功能單一,集成度低。單獨(dú)購(gòu)買(mǎi)智能家居用品往往花費(fèi)較高,樹(shù)莓派作為一款基于ARM的微型電腦主板,具有成本低,可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)[2],并擁有視頻模擬信號(hào)的輸出接口,若將其作為控制終端,可設(shè)計(jì)出集多種功能于一體的智能家居系統(tǒng)。
1 整體結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)以樹(shù)莓派作為控制終端,通過(guò)多種傳感器采集信息,采用相應(yīng)的硬件連接與軟件支持,使用Python編程,可實(shí)現(xiàn)集室內(nèi)溫濕度調(diào)節(jié)、人臉識(shí)別門(mén)鎖、紅外感應(yīng)夜燈、實(shí)時(shí)監(jiān)控等功能于一體的智能家居系統(tǒng)。各功能以及相關(guān)軟硬件示意如圖1所示。
(1)室內(nèi)溫濕度調(diào)節(jié):根據(jù)DHT11溫濕度傳感器測(cè)得室內(nèi)溫濕度,加濕器與風(fēng)扇自動(dòng)開(kāi)關(guān);將插座與連接樹(shù)莓派的繼電器相連,可使用樹(shù)莓派控制插座上電器的開(kāi)關(guān)狀態(tài)。
(2)人臉識(shí)別門(mén)鎖:當(dāng)觸摸傳感器感應(yīng)到有人觸碰時(shí),500 W像素樹(shù)莓派攝像頭將拍攝照片,并啟動(dòng)人臉識(shí)別功能,通過(guò)Face++云平臺(tái)實(shí)現(xiàn)人臉圖像的識(shí)別處理,根據(jù)人臉識(shí)別判斷的結(jié)果控制電磁鎖的開(kāi)關(guān)。
(3)紅外感應(yīng)夜燈:通過(guò)光敏傳感器與HC-SR501人體紅外傳感器感應(yīng)信息,在天黑且有人的情況下,LED燈將自動(dòng)打開(kāi)。
(4)實(shí)時(shí)監(jiān)控:利用Motion軟件通過(guò)局域網(wǎng)將攝像頭的實(shí)時(shí)監(jiān)控情況呈現(xiàn)在Web網(wǎng)頁(yè)上。
系統(tǒng)主要由控制終端、感應(yīng)單元、受控單元及云服務(wù)四個(gè)部分組成:控制終端為樹(shù)莓派;感應(yīng)單元由各種傳感器組成;受控單元包括各種家具器件及繼電器;云服務(wù)主要指Face++云平臺(tái)。
感應(yīng)單元將傳感器采集的信息數(shù)據(jù)傳遞給控制終端樹(shù)莓派,其中,部分信息直接在本地處理,部分信息上傳至云端,云端對(duì)圖像信息進(jìn)行處理后,將結(jié)果返回給樹(shù)莓派。根據(jù)處理后的結(jié)果,樹(shù)莓派發(fā)出相應(yīng)控制指令到受控單元,控制相連的各器件。系統(tǒng)整體的信息數(shù)據(jù)流向方式如圖2所示。
2 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2.1 控制核心
系統(tǒng)對(duì)數(shù)據(jù)傳輸能力要求較高,在視頻數(shù)據(jù)與圖像數(shù)據(jù)上需要保證流暢及穩(wěn)定性,普通的單片微控制器[3](如Arduino)難以實(shí)現(xiàn)。考慮到成本與功能需求,該系統(tǒng)采用樹(shù)莓派Raspberry Pi 3b作為控制終端。
樹(shù)莓派Raspberry Pi 3bBroadcom BCM2837為片上系統(tǒng),其運(yùn)行頻率為1.2 GHz,擁有四核ARM處理器, 1 GB RAM存儲(chǔ)器,與40個(gè)GPIO引腳,CSI攝像頭接口,HDMI接口,4個(gè)USB 2.0端口,10/100以太網(wǎng)端口,RAC av端口,USB電源接口,DSI顯示連接器,搭載藍(lán)牙和WiFi模塊。
樹(shù)莓派的GPIO 引腳定義如圖3所示。GPIO引腳的編號(hào)方式有三種,分別為BCM編號(hào)方式(如圖3中BCM列所示);BOARD編號(hào)方式(如圖3中Physical列所示);wiringPi編號(hào)方式(如圖3中wPi列所示)。圖3中的Mode列為引腳的輸入/輸出狀態(tài),可通過(guò)編程設(shè)定[4]。
2.2 室內(nèi)溫濕度調(diào)節(jié)
根據(jù)DHT11溫濕度傳感器所測(cè)得的室內(nèi)溫度與濕度數(shù)據(jù),在樹(shù)莓派中對(duì)數(shù)據(jù)信息進(jìn)行分析與處理。根據(jù)當(dāng)前溫濕度情況,通過(guò)二路繼電器控制風(fēng)扇或加濕器的打開(kāi)與關(guān)閉。相關(guān)硬件連接如圖4所示。
加濕器采用額定電壓為DC 5 V、額定功率約2 W的小型加濕器;風(fēng)扇采用供電電壓為DC 5 V、輸出電流為1 A、功率約3 W的小型風(fēng)扇。小型加濕器與風(fēng)扇可使用樹(shù)莓派供電。若考慮功率更大的加濕器或風(fēng)扇,可將加濕器或風(fēng)扇插在與樹(shù)莓派相連的插座上,通過(guò)220 V交流電源供電。
由于樹(shù)莓派的GPIO引腳在Output狀態(tài)默認(rèn)為0,因此采用高電平觸發(fā)的5 V二路繼電器。樹(shù)莓派提供5 V電源引腳與繼電器的常開(kāi)(No1、No2)觸點(diǎn)相連,在常態(tài)(不通電)下處于斷開(kāi)狀態(tài),風(fēng)扇與加濕器處于關(guān)閉狀態(tài)。
DHT11溫濕度傳感器含有電阻式感濕元件與NTC測(cè)溫元件,可輸出經(jīng)過(guò)校驗(yàn)后的溫度與濕度數(shù)字信號(hào)[5],適用于室內(nèi)溫濕度的測(cè)量。其濕度測(cè)量范圍為20%~95%;溫度測(cè)量范圍為0~50℃。
利用DHT11溫濕度傳感器的檢測(cè)數(shù)據(jù)控制加濕器與風(fēng)扇的開(kāi)關(guān)狀態(tài),每隔5 min判斷一次。由于人體適宜的濕度為45%~65%[6],因此在濕度小于45%的情況下打開(kāi)加濕器,濕度大于65%的情況下關(guān)閉加濕器;溫度大于27℃時(shí)風(fēng)扇打開(kāi),溫度小于23℃時(shí),風(fēng)扇關(guān)閉。該功能實(shí)現(xiàn)的程序流程如圖5所示。endprint
2.3 人臉識(shí)別門(mén)鎖
實(shí)現(xiàn)人臉識(shí)別門(mén)鎖功能的硬件連接圖如圖6所示。通過(guò)220 V交流電壓轉(zhuǎn)12 V直流變壓器,將電壓轉(zhuǎn)換為12 V直流電磁鎖所需要的電壓。當(dāng)需要被檢測(cè)時(shí),觸碰觸摸傳感器,此時(shí)啟動(dòng)樹(shù)莓派攝像頭拍照,根據(jù)人臉識(shí)別結(jié)果,通過(guò)樹(shù)莓派控制5 V繼電器來(lái)控制電磁鎖電流的通斷,即開(kāi)鎖或關(guān)鎖。
觸摸傳感器是一個(gè)基于觸摸檢測(cè)IC(TTP223B)的電容式點(diǎn)動(dòng)型觸摸開(kāi)關(guān)模塊[7]。常態(tài)下,模塊輸出低電平;當(dāng)有人觸摸相應(yīng)位置時(shí),輸出高電平。該模塊可安裝在非金屬材料如塑料、玻璃表面,也可將薄紙片等非金屬材料覆蓋在模塊表面,隱藏在墻壁等位置。
由于樹(shù)莓派的GPIO引腳在Output狀態(tài)默認(rèn)為0,因此采用高電平觸發(fā)5 V繼電器,變壓器的V+與繼電器的常開(kāi)(No)觸點(diǎn)相連,在常態(tài)(不通電)下處于斷開(kāi)狀態(tài),電磁鎖不通電,處于關(guān)鎖狀態(tài)。
人臉識(shí)別功能基于Face++云平臺(tái),其API以Http請(qǐng)求的方式進(jìn)行調(diào)用[8],所使用的接口及其功能描述見(jiàn)表1所列。
首先判斷是否有人需要被檢測(cè),當(dāng)有人需要被檢測(cè)時(shí),將在本地的人臉圖像及相關(guān)信息上傳至Face++云平臺(tái),存入FaceSet中,建立人臉數(shù)據(jù)庫(kù),再判斷拍攝的待識(shí)別圖像中是否有人臉。若有,則與FaceSet中的人臉圖像進(jìn)行對(duì)比,當(dāng)相似度大于80%時(shí),則打開(kāi)門(mén)鎖。程序流程如圖7所示,主要步驟(使用Python編程語(yǔ)言)如下:
(1)采用BOARD編號(hào)方式,GPIO2設(shè)置為Input狀態(tài),GPIO29設(shè)置為Output狀態(tài):
GPIO.setmode(GPIO.BOARD)
GPIO.setup(13,GPIO.In)
GPIO.setup(40,GPIO.Out)
(2)判斷是否有人需要被檢測(cè),觸碰了觸摸傳感器。
while True:
if GPIO.Input(13)==True:
...
time.sleep(2)
(3)若有人需要被檢測(cè),啟動(dòng)攝像頭拍攝:
os.system('raspistill -w 480 -h 360 -o customer.jpg -t 2000')
(4)創(chuàng)建人臉集合FaceSet
api.faceset.create(outer_id='SetTest')
(5)將本地圖片上傳:
Picture = {}
save1 = api.detect(image_file=facepp.File(/test/test1.jpg))
Picture ['name1'] = save1 ["faces"][0]["face_token"]
save2 = api.detect(image_file=facepp.File(/test/test2.jpg))
Picture ['name2'] = save2 ["faces"][0]["face_token"]
(6)將本地圖片的FaceTocken存入FaceSet中上傳:
api.faceset.addface(outer_id='SetTest',
face_tokens= Picture.itervalues())
(7)得到拍攝圖像的face_token:
customer_pic = api.detect(image_file=facepp.File(customer.jpg))
(8)判斷是否檢測(cè)到了人臉:
if(len(customer_pic ["faces"])==0):
//未檢測(cè)到人臉,刪除
api.faceset.delete(outer_id='SetTest', check_empty=0)
else:
//在 FaceSet 中尋找與所拍攝人臉最相似的,返回相似度
result = api.search(face_token= customer_pic ["faces"][0]["face_token"], outer_id='SetTest')
(9)得到相似度:
similarity = result ["results"]
judge=int(similarity [0]['confidence'])
(10)若相似度大于80%,則開(kāi)鎖:
if judge > 80 :
GPIO.Output(40, True)
time.Sleep(3)
GPIO.Output(40, False)
2.4 紅外感應(yīng)夜燈
紅外感應(yīng)夜燈的硬件組成為光敏傳感器與HC-SR501人體紅外傳感器。
光敏傳感器利用半導(dǎo)體的光電效應(yīng)判斷光線強(qiáng)弱,隨著入射光線的增強(qiáng),其電阻值減小,將光信號(hào)轉(zhuǎn)換為電信號(hào)[9]。當(dāng)光線強(qiáng)度小于設(shè)定的閾值時(shí),DO端輸出高電平;當(dāng)光線強(qiáng)度大于設(shè)定的閾值時(shí),DO端輸出低電平。
通過(guò)HC-SR501人體紅外傳感器可判斷是否有人。若人進(jìn)入其感應(yīng)范圍,則輸出高電平;若人離開(kāi)感應(yīng)范圍,則自動(dòng)延時(shí)關(guān)閉高電平,輸出低電平。HC-SR501有以下兩種觸發(fā)方式[10](可跳線選擇):
(1)不可重復(fù)觸發(fā)方式(L):在感應(yīng)到有人輸出高電平后,不再進(jìn)行感應(yīng)判斷,延時(shí)時(shí)間結(jié)束后,輸出低電平;
(2)可重復(fù)觸發(fā)方式(H):在感應(yīng)到有人輸出高電平后,仍然進(jìn)行感應(yīng)判斷,以最后一次感應(yīng)到有人的時(shí)間為延時(shí)的起始時(shí)間。endprint
這里采用可重復(fù)觸發(fā)方式(H)。
為了防止HC-SR501的針腳處于懸浮狀態(tài),出現(xiàn)輸出電平狀態(tài)不穩(wěn)定的情況,接入10 kΩ下拉電阻,使其處于明確的低電平狀態(tài)。硬件連接如圖8所示。
紅外感應(yīng)夜燈在天黑且有人的情況下自動(dòng)打開(kāi)。功能實(shí)現(xiàn)的關(guān)鍵代碼(使用Python編程語(yǔ)言)如下:
light = 12 //LED燈與樹(shù)莓派相連的GPIO引腳編號(hào)
infrared = 25 //人體紅外傳感器與樹(shù)莓派相連的GPIO引腳編號(hào)
photosen = 16 //光敏傳感器與樹(shù)莓派相連的GPIO引腳編號(hào)
GPIO.setmode(GPIO.BCM) //采用BCM的編號(hào)方式
GPIO.setup (light,GPIO.Out)
GPIO.setup (infrared,GPIO.In)
GPIO.setup (photosen,GPIO.In)
While True:
if(GPIO.Input(infrared) ==True and GPIO.input(photosen) ==True):
GPIO.Output(light,GPIO.HIGH)
time.sleep(30) //天黑且有人的情況下,開(kāi)啟燈30 s
else:
GPIO.Output(light,GPIO.LOW) //否則,關(guān)燈
time.sleep(5)
2.5 實(shí)時(shí)監(jiān)控
攝像頭與樹(shù)莓派的CSI攝像頭接口通過(guò)15芯的排線連接,利用Motion軟件,通過(guò)局域網(wǎng)實(shí)現(xiàn)實(shí)時(shí)監(jiān)控。
(1)在終端中使用如下命令安裝Motion軟件:
sudo apt-get install motion
(2)配置motion daemon守護(hù)進(jìn)程,使其在后臺(tái)運(yùn)行:
sudo nano/etc/default/motion
start_motion_deamon=yes
(3)修改motion的配置文件,將deamon off 改成 on,設(shè)置分辨率,關(guān)閉localhost的限制:
sudo vim /etc/motion/motion.conf
deamon on
width 800
height 600
webcam_localhost off
(4)運(yùn)行motion:
sudo motion
(5)查看樹(shù)莓派IP地址:
ifconfig
(6)在同一局域網(wǎng)下,訪問(wèn)樹(shù)莓派IP的8081端口,即可獲取實(shí)時(shí)監(jiān)控的視頻數(shù)據(jù):
http://[Raspberry Pi IP]:8081
3 結(jié) 語(yǔ)
本文介紹了通過(guò)樹(shù)莓派實(shí)現(xiàn)多功能智能家居系統(tǒng)的可行性,設(shè)計(jì)了各功能的硬件連接圖與軟件實(shí)現(xiàn)方案。以樹(shù)莓派作為控制終端,可實(shí)現(xiàn)室內(nèi)溫濕度調(diào)節(jié)、通過(guò)人臉識(shí)別開(kāi)閉門(mén)鎖、紅外感應(yīng)夜燈、實(shí)時(shí)監(jiān)控。對(duì)各項(xiàng)功能進(jìn)行實(shí)驗(yàn)與操作,已全部達(dá)到預(yù)期效果。系統(tǒng)功能集成度較高,設(shè)計(jì)易于搭建,相關(guān)硬件成本低廉,具有廣闊的應(yīng)用市場(chǎng)與發(fā)展前景。
參考文獻(xiàn)
[1] 邱麗華.人臉信息認(rèn)證系統(tǒng)基于設(shè)計(jì)模式的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué), 2008.
[2] Rushi Gajjar.樹(shù)莓派+傳感器:創(chuàng)建智能交互項(xiàng)目的實(shí)用方法、工具及最佳實(shí)踐[M]. 胡訓(xùn)強(qiáng),張欣景,譯.北京:機(jī)械工業(yè)出版社,2016.
[3] 張毅剛,劉旺,鄧立寶.單片機(jī)原理及接口技術(shù)[M].北京:人民郵電出版社,2016.
[4] Alex Bradbury, Ben Everard.樹(shù)莓派Python編程指南[M].王文峰,譯.北京:機(jī)械工業(yè)出版社,2015.
[5] Tero Karvinen,Kimmo Karvinen,Ville Valtokari.傳感器實(shí)戰(zhàn)全攻略[M].于欣龍,李澤,譯.北京:人民郵電出版社,2016.
[6]眭晉華,史紅梅,眭廣瑞.空氣濕度及其影響[J].山西科技,2011,26(3):143-144.
[7]來(lái)清民.傳感器與單片機(jī)接口及實(shí)例[M].北京:北京航空航天大學(xué)出版社,2008.
[8] face++ API文檔[EB/OL].https://console.faceplusplus.com.cn/documents/4887579.
[9]王琦,阮淑云.光敏電阻傳感器的特性研究[J].都市家教(上半月),2014(6):188.
[10]李萌.智能樓道照明節(jié)電控制系統(tǒng)的設(shè)計(jì)[J].電子制作,2014(10X):49-50.endprint