李元元
(上海電子信息職業(yè)技術(shù)學(xué)院,上海 201411)
智能家居是以住宅為平臺(tái),利用綜合布線技術(shù)集成各種家居生活設(shè)施,構(gòu)建高效的住宅設(shè)施與家庭事務(wù)的管理系統(tǒng),與傳統(tǒng)意義上的家居相比,智能家居提供了全方位的信息交換功能,幫助家庭與外部保持信息交流暢通。隨著信息化技術(shù)的發(fā)展,采用高性能嵌入式芯片作為硬件、以Android作開發(fā)平臺(tái)的系統(tǒng)模式被逐漸開始應(yīng)用于各類智能家居系統(tǒng)。
Android是由Google主導(dǎo)的開放手機(jī)聯(lián)盟于2007年發(fā)布的基于Linux的開源手機(jī)平臺(tái),在最初是為智能手機(jī)終端打造的操作系統(tǒng)。在2011年,Google正式提出了Android@Home計(jì)劃,通過(guò)Android設(shè)備來(lái)實(shí)現(xiàn)家居安全布防、并實(shí)現(xiàn)對(duì)各種家用電器的自動(dòng)控制。隨著Android系統(tǒng)的發(fā)展,它已經(jīng)不僅僅是一個(gè)移動(dòng)設(shè)備的平臺(tái),未來(lái)將廣泛應(yīng)用于消費(fèi)類電子和智能家居設(shè)備。 Android平臺(tái)具備系統(tǒng)的開放性,應(yīng)用上的無(wú)界限性,開發(fā)的快速性等優(yōu)點(diǎn),將是未來(lái)具有廣泛應(yīng)用的智能家居系統(tǒng)平臺(tái)。
安全防范系統(tǒng)是智能家居系統(tǒng)中非常重要的組成部分,在小區(qū)及戶內(nèi)可視對(duì)講、家庭監(jiān)控、家庭防盜報(bào)警、與家庭有關(guān)的小區(qū)一卡通等領(lǐng)域都有廣泛應(yīng)用。與傳統(tǒng)安防系統(tǒng)相比,智能家居安防系統(tǒng)利用現(xiàn)代化的信息技術(shù),具有如下的優(yōu)勢(shì):
1)對(duì)報(bào)警信息實(shí)現(xiàn)快速傳輸。
2)對(duì)報(bào)警信息實(shí)現(xiàn)大容量存儲(chǔ)。
3)對(duì)報(bào)警信息實(shí)現(xiàn)智能反饋控制。
4)利用信息技術(shù),實(shí)現(xiàn)對(duì)報(bào)警系統(tǒng)的遠(yuǎn)程控制。
故使用智能家居安防增強(qiáng)了家居生活的安全性,將是未來(lái)安防技術(shù)的必然發(fā)展趨勢(shì)。
基于Android平臺(tái)的智能家居安防系統(tǒng)使用傳感器檢測(cè)報(bào)警信號(hào),可同時(shí)控制喇叭輸出報(bào)警聲音、驅(qū)動(dòng)LED燈發(fā)光、使用3G語(yǔ)音模塊撥打報(bào)警電話和發(fā)送報(bào)警消息、使用Wifi網(wǎng)卡對(duì)外傳輸報(bào)警信息。這樣可以通過(guò)Android系統(tǒng)平臺(tái)輸出各種不同的報(bào)警信息,并通過(guò)通信技術(shù)實(shí)現(xiàn)報(bào)警信息的遠(yuǎn)程異地傳輸,使得人們對(duì)報(bào)警信息作出更快的反應(yīng),極大的提升了安防系統(tǒng)的應(yīng)用價(jià)值。
基于Android平臺(tái)的智能家居安防系統(tǒng)硬件平臺(tái)采用高性能的ARM Cortex A8 處理器芯片,并連接7寸TFT觸摸屏,采用基于Goldfish內(nèi)核的Android 2.3系統(tǒng)平臺(tái)。主控中央系統(tǒng)通過(guò)內(nèi)置串口連接傳感器、報(bào)警器、3G語(yǔ)音模塊、Wifi無(wú)線網(wǎng)卡等外設(shè)硬件。
Android平臺(tái)的系統(tǒng)框架如圖1所示,從高到低可分為應(yīng)用程序、用戶空間、內(nèi)核空間和硬件系統(tǒng)4個(gè)層次。智能家居安防系統(tǒng)控制軟件處于最高的應(yīng)用程序?qū)?,故在進(jìn)行軟件開發(fā)之前,需要移植相關(guān)硬件設(shè)備的Linux內(nèi)核驅(qū)動(dòng)到Android系統(tǒng)中。在智能家居安防系統(tǒng)中,需要移植的設(shè)備驅(qū)動(dòng)包含顯示、輸入、電話、傳感器、攝像頭、音頻播放、指示燈、電池等外設(shè)硬件。在軟件系統(tǒng)開發(fā)過(guò)程中,只需要調(diào)用用戶空間的Java框架和Android框架,并不需要直接訪問(wèn)硬件設(shè)備。
圖1 Android平臺(tái)系統(tǒng)框架
圖2 軟件系統(tǒng)架構(gòu)圖
智能家居安防系統(tǒng)軟件可分為用戶界面單位、中央控制單位、傳感器模塊、報(bào)警模塊、語(yǔ)音模塊和數(shù)據(jù)傳輸模塊。軟件系統(tǒng)架構(gòu)如圖2所示。
用戶界面單元提供人機(jī)交互的界面,主要包括登陸界面和布控設(shè)置界面。登陸界面提供用戶身份信息的輸入并進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)可進(jìn)入布控設(shè)置界面,用戶身份信息可存儲(chǔ)于Android內(nèi)置的SQLite數(shù)據(jù)庫(kù)系統(tǒng)中。布控設(shè)置界面可以設(shè)置系統(tǒng)布控方式、傳感器靈敏度、報(bào)警電話號(hào)碼、報(bào)警短信號(hào)碼和報(bào)警音頻文件等參數(shù)。
布控方式可以為即時(shí)布控(立即啟動(dòng)報(bào)警布控)或定時(shí)布控(在某個(gè)時(shí)間布控),定時(shí)布控的時(shí)間可以設(shè)定在每天睡覺(jué)和上班的時(shí)間。若采用即時(shí)布控,則立即啟動(dòng)中央控制單元。若為定時(shí)布控,則需要使用Android系統(tǒng)的鬧鐘管理器設(shè)置一個(gè)鬧鐘實(shí)現(xiàn),并設(shè)定一個(gè)類(設(shè)為TestReceiver)繼承BroadcastRecever類,作為鬧鐘接受程序用于啟動(dòng)中央控制單元。具體代碼如下:
中央控制單位負(fù)責(zé)開啟或關(guān)閉布控,收集和處理傳感器的信息,控制報(bào)警模塊報(bào)警,控制語(yǔ)音模塊撥打報(bào)警電話,使用數(shù)據(jù)傳輸模塊與遠(yuǎn)程終端之間雙向進(jìn)行通信。
中央控制單位首先根據(jù)用戶界面單元或數(shù)據(jù)傳輸模塊的信息確定是否開啟布控方式,只要布控方式開啟,即調(diào)用中央控制單元處理程序。中央控制單元處理程序首先調(diào)用傳感器模塊注冊(cè)傳感器,然后啟動(dòng)一個(gè)線程處理傳感器模塊傳遞的傳感器數(shù)據(jù)。若傳感器數(shù)據(jù)達(dá)到某個(gè)閥值而報(bào)警裝置尚未啟動(dòng),則立即啟動(dòng)報(bào)警模塊和語(yǔ)音模塊。
在智能家居安防系統(tǒng)中使用的傳感器主要為光傳感器和壓力傳感器,傳感器模塊的軟件工作流程包括傳感器檢測(cè)、傳感器事件獲取、傳感器數(shù)據(jù)獲取。
檢測(cè)傳感器可使用SensorManager對(duì)象,它可返回一個(gè)可用傳感器對(duì)象列表,并可注冊(cè)程序中需要使用的傳感器。在使用SensorManager對(duì)象注冊(cè)傳感器時(shí),需要設(shè)定合適靈敏度,過(guò)高的靈敏度會(huì)加大系統(tǒng)負(fù)荷并出現(xiàn)誤警現(xiàn)象,在智能家居安防系統(tǒng)中一般選擇中等靈敏度。傳感器事件監(jiān)聽可通過(guò)繼承SensorEventListener接口實(shí)現(xiàn),當(dāng)傳感器檢測(cè)的信息發(fā)生變化即可觸發(fā)SensorEvent事件??赏ㄟ^(guò)SensorEvent事件的onSensorChanged方法獲得傳感器數(shù)據(jù),并將傳感器數(shù)據(jù)傳遞給中央控制單元進(jìn)行解釋,主要代碼如下:
可以在Android系統(tǒng)中事先錄制報(bào)警音頻文件(mp3)并存儲(chǔ)與SD卡上,出現(xiàn)告警時(shí)直接播放音頻文件實(shí)現(xiàn)報(bào)警,音頻播放可使用MediaPlayer類實(shí)現(xiàn),主要代碼如下:
另外為了加強(qiáng)報(bào)警裝置的使用效果,還可以使用Android系統(tǒng)的光源接口控制LED發(fā)光設(shè)備在報(bào)警裝置啟動(dòng)的同時(shí)發(fā)光,主要代碼如下:
語(yǔ)音模塊的功能是當(dāng)存在告警信息時(shí),通過(guò)Android系統(tǒng)內(nèi)置電話模塊硬件接口,可實(shí)現(xiàn)智能撥打報(bào)警電話,并同步發(fā)送報(bào)警短消息。
為了使應(yīng)用程序直接實(shí)現(xiàn)撥出電話和發(fā)送短信,需要在AndroidManifest.xml設(shè)置撥號(hào)權(quán)限android.permission.CALL_PHONE和短信發(fā)送權(quán)限android.permission.SEND_SMS。然后在應(yīng)用程序中通過(guò)Intent調(diào)用Dialer應(yīng)用程序?qū)崿F(xiàn)電話撥打,代碼如下:
對(duì)于短信發(fā)送,可以使用SmsManager類的sendTextMessage方法實(shí)現(xiàn)。
數(shù)據(jù)傳輸模塊用于中央控制單元與遠(yuǎn)程終端之間的通信,用戶可使用自身的智能手機(jī)作為智能終端,遠(yuǎn)程實(shí)現(xiàn)對(duì)智能家居安防系統(tǒng)的布控設(shè)置。
數(shù)據(jù)傳輸模塊需要啟動(dòng)一個(gè)線程,用于接收接收遠(yuǎn)程終端傳輸?shù)牟伎卦O(shè)置數(shù)據(jù)。布控參數(shù)與用戶界面模塊的設(shè)置參數(shù)基本相同,采用xml文檔包裝數(shù)據(jù),數(shù)據(jù)傳輸模塊與遠(yuǎn)程終端之間的通信使用面向連接的Socket套接字技術(shù)實(shí)現(xiàn)。
本文對(duì)基于Android平臺(tái)的智能家居安防系統(tǒng)進(jìn)行了詳細(xì)的分析與設(shè)計(jì)并最終實(shí)現(xiàn),系統(tǒng)設(shè)計(jì)具有如下優(yōu)點(diǎn):
1)基于開源Android平臺(tái)的開發(fā),系統(tǒng)可運(yùn)行于各種Android設(shè)備上,系統(tǒng)運(yùn)行成本較低。
2)系統(tǒng)利用信息化技術(shù)構(gòu)建了報(bào)警信息遠(yuǎn)程傳輸體系,體現(xiàn)了智能視頻監(jiān)控系統(tǒng)的最新發(fā)展方向。
3)軟件設(shè)計(jì)時(shí)采用了模塊化設(shè)計(jì)思想,系統(tǒng)具有較好的邏輯性,充分考慮到以后的移植、維護(hù)和擴(kuò)展。
[1]沈華東,周義,張坤.基于GSM網(wǎng)絡(luò)的柔性制造車間安防報(bào)警系統(tǒng)設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造,2009,8(8):252-253.
[2]管鳳旭,徐冉,楊偉.基于WinCE和GPRS的安防報(bào)警系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2009,11(26): 45-48.
[3]夏繼媛,馮明發(fā).網(wǎng)絡(luò)化智能家居控制系統(tǒng)中安防報(bào)警功能的設(shè)計(jì)[J].深圳職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005,(1):40-42.