《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > Android終端及FPGA控制的智能家居系統(tǒng)
Android終端及FPGA控制的智能家居系統(tǒng)
來源:微型機(jī)與應(yīng)用2014年第5期
鄭俊波,蘇成悅,,何榕禮,,林劍冰
(廣東工業(yè)大學(xué) 物理與光電工程學(xué)院,廣東 廣州 510006)
摘要: 針對智能家居的應(yīng)用需要和智能手機(jī)的日益普及,,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)以Android手機(jī)作為遙控終端及FPGA為主控中心的智能家居系統(tǒng),,該系統(tǒng)利用藍(lán)牙進(jìn)行通信,應(yīng)用多種傳感器,,實(shí)現(xiàn)視頻監(jiān)控,、學(xué)習(xí)型紅外遙控、溫濕度采集,、振動(dòng)檢測以及GSM遠(yuǎn)程報(bào)警等功能,,從而滿足用戶的需求并達(dá)到一種智能控制的效果。該系統(tǒng)使用方便,、操作簡單,、易于擴(kuò)展。
Abstract:
Key words :

摘  要: 針對智能家居的應(yīng)用需要和智能手機(jī)的日益普及,,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)以Android手機(jī)作為遙控終端及FPGA為主控中心的智能家居系統(tǒng),,該系統(tǒng)利用藍(lán)牙進(jìn)行通信,應(yīng)用多種傳感器,實(shí)現(xiàn)視頻監(jiān)控,、學(xué)習(xí)型紅外遙控,、溫濕度采集、振動(dòng)檢測以及GSM遠(yuǎn)程報(bào)警等功能,,從而滿足用戶的需求并達(dá)到一種智能控制的效果,。該系統(tǒng)使用方便、操作簡單,、易于擴(kuò)展,。
關(guān)鍵詞: 智能家居;Android,;FPGA,;視頻監(jiān)控

 智能家居是以住宅為平臺,利用通信技術(shù),、自動(dòng)控制技術(shù)等新技術(shù),,將各種家電安防設(shè)施進(jìn)行集成,組成住宅設(shè)施管理系統(tǒng),,造就一個(gè)安全便利舒適環(huán)保的家居生活環(huán)境,。近年隨計(jì)算機(jī)技術(shù)、通信技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,,智能家居逐漸成為未來家居生活的發(fā)展方向[1],。
 在智能家居的控制系統(tǒng)中,控制終端是其核心設(shè)備,,目前主要有以下幾種方案:第一種是采用鍵盤,、LCD顯示器和紅外遙控器等設(shè)備對各種家用設(shè)備進(jìn)行控制[2],這種方式需要對終端的軟件和硬件分別進(jìn)行設(shè)計(jì),,因而設(shè)計(jì)復(fù)雜且成本高,。第二種是采用PC作為控制終端[3],使用這種方式的缺陷是只能在固定的位置進(jìn)行控制,。第三種是采用智能手機(jī)作為控制終端,,通過WiFi、藍(lán)牙,、GSM等無線網(wǎng)絡(luò)對家居系統(tǒng)進(jìn)行控制[4],,此方案使用方便、快捷,。
 隨著Android智能終端日益普及,,其作為控制終端將成為未來智能家居系統(tǒng)發(fā)展的趨勢。本系統(tǒng)以Android智能設(shè)備作為遙控終端,,以FPGA作為主控中心處理器,,通過藍(lán)牙與手機(jī)端進(jìn)行通信并對數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)視頻監(jiān)控、紅外遙控,、溫濕度檢測,、振動(dòng)檢測、GSM遠(yuǎn)程報(bào)警等功能,。FPGA內(nèi)部資源豐富,,接口方便,還可實(shí)現(xiàn)臉部識別,、指紋識別等功能,。
1 系統(tǒng)結(jié)構(gòu)
 系統(tǒng)結(jié)構(gòu)框圖如圖1所示,首先在Android平臺下開發(fā)一個(gè)應(yīng)用程序,,數(shù)據(jù)通過藍(lán)牙發(fā)送給主控中心,,當(dāng)FPGA接收處理完數(shù)據(jù)后通過串口給相應(yīng)的功能模塊發(fā)送指令,各功能模塊執(zhí)行相應(yīng)任務(wù)后也會將數(shù)據(jù)通過主控中心返回給智能終端并顯示,,其中采用串口通信可讓通信方式多樣化[5],如485總線,、藍(lán)牙模塊,、WiFi模塊、ZigBee模塊等都可用串口進(jìn)行收發(fā)數(shù)據(jù),。這種結(jié)構(gòu)使得用戶只需用手機(jī),、平板電腦等Android終端就能任意控制各種家用設(shè)備并實(shí)時(shí)掌握周圍的環(huán)境情況,使用非常簡單快捷,。

2 主控中心FPGA設(shè)計(jì)
 本系統(tǒng)采用FPGA作為中間控制部分的處理器主要基于以下兩點(diǎn)考慮,,首先整個(gè)系統(tǒng)中用到多個(gè)串口,普通單片機(jī)內(nèi)部不超過3個(gè)串口,,而FPGA可以根據(jù)需求搭建多個(gè)UART接口,;其次FPGA可以采用平行以及流水線處理,可以完成視頻數(shù)據(jù)采集,、VGA接口輸出等高速處理,,還可完成臉部識別、指紋識別等復(fù)雜運(yùn)算,。設(shè)計(jì)中采用的FPGA芯片型號是Altera公司Cyclone II系列EP2C8Q208C8,,在Quartus II平臺下用Verilog語言進(jìn)行開發(fā)。
2.1 UART模塊的設(shè)計(jì)
 由于FPGA與各功能模塊均利用串口進(jìn)行通信,,因此需要搭建多個(gè)UART接口,,對數(shù)據(jù)進(jìn)行傳輸和處理。UART通信模塊主要由波特率產(chǎn)生模塊,、發(fā)送模塊和接收模塊三部分組成,,其中波特率產(chǎn)生模塊是將50 MHz的主時(shí)鐘經(jīng)過多次分頻后為UART的收發(fā)模塊提供特定的波特率。
 FPGA中的每個(gè)UART都被例化成一個(gè)子模塊,各模塊間通過輸出輸入接口進(jìn)行數(shù)據(jù)的交互,,此外還有一個(gè)控制模塊,,用于控制每個(gè)串口的發(fā)送和接收。
2.2 視頻監(jiān)控的設(shè)計(jì)
 視頻監(jiān)控是家庭防盜系統(tǒng)中必不可少的部分,,本系統(tǒng)通過OV7670攝像頭獲取視頻信息,,用FPGA進(jìn)行數(shù)據(jù)的采集和存儲,最后通過VGA接口用顯示器顯示出來,??蚣苋鐖D2所示。

 OV7670是OmmVision公司生產(chǎn)的CMOS攝像頭,,通過SCCB總線控制,,圖像最高達(dá)到30幀/s。FPGA先構(gòu)建一個(gè)配置模塊,,用SCCB總線對OV7670進(jìn)行初始化設(shè)置并使其開始工作,,其中的SCCB總線本質(zhì)為簡化了的I2C總線。
 配置成功后,,F(xiàn)PGA將接收RGB565格式的數(shù)據(jù),,即第一個(gè)字節(jié)的前5位表示紅色,第一字節(jié)的后3位和第二字節(jié)前3位表示綠色,,第二字節(jié)后5位表示藍(lán)色,。數(shù)據(jù)通過SDRAM控制模塊存進(jìn)外部SDRAM中,SDRAM的主要作用是把圖像數(shù)據(jù)以30幀/s的速率進(jìn)行緩存,,然后再以60幀/s的速率讀出,。從SDRAM讀出的數(shù)據(jù)將通過VGA控制模塊轉(zhuǎn)換為VGA協(xié)議輸出,最后通過一個(gè)三路10位高速視頻DAC芯片ADV7123進(jìn)行D/A轉(zhuǎn)換后顯示在顯示器上,,進(jìn)行實(shí)時(shí)的監(jiān)控,。
 除了可實(shí)時(shí)監(jiān)控外,當(dāng)系統(tǒng)觸發(fā)警報(bào)信息后可以對視頻信息存儲到外接Flash中,,由于Flash的容量以及讀寫速度有限,,不能將所有視頻數(shù)據(jù)保存下來,因此采樣間斷性存儲的方法,,即以圖片的形式將現(xiàn)場的情況保存下來,,這種方式既能減少Flash的容量,又可以較好地保存現(xiàn)場的信息,。
3 Android應(yīng)用程序的開發(fā)
 Android終端的應(yīng)用程序是基于Android 2.3版本,,在Eclipse平臺下用Java語言進(jìn)行開發(fā),其主要內(nèi)容包括設(shè)計(jì)一個(gè)人機(jī)交流界面,、獲取已配對的藍(lán)牙設(shè)備并建立連接,、利用Socket進(jìn)行數(shù)據(jù)傳輸?shù)取?br /> 3.1 界面設(shè)計(jì)
 該應(yīng)用程序主要有兩個(gè)界面,,開啟時(shí)首先進(jìn)入主控界面,主要包括溫濕度的顯示,、防盜系統(tǒng)的開啟與關(guān)閉,、電視遙控等功能,點(diǎn)擊電視遙控按鍵將進(jìn)入紅外遙控界面,。界面通過AbsoluteLayout進(jìn)行布局設(shè)計(jì),,這是一種絕對布局,可以任意調(diào)整每個(gè)控件的橫坐標(biāo)和縱坐標(biāo),,界面上每個(gè)按鍵通過綁定一個(gè)地址和添加一個(gè)監(jiān)聽器,,點(diǎn)擊按鍵后會觸發(fā)監(jiān)聽器并執(zhí)行相應(yīng)的操作。
3.2 藍(lán)牙的獲取和連接
 應(yīng)用程序中需要建立一個(gè)藍(lán)牙通信通道,,以便與FPGA端的藍(lán)牙模塊進(jìn)行數(shù)據(jù)傳輸,,在建立藍(lán)牙通信之前先搜索出已配對的藍(lán)牙設(shè)備并用列表顯示,當(dāng)點(diǎn)擊其中一個(gè)設(shè)備進(jìn)行連接時(shí),,其地址值會被記錄下來并通過Intent回傳給主Activity[6],。當(dāng)本機(jī)藍(lán)牙開啟以及要連接設(shè)備的地址獲取后就可建立Socket連接,通過Thread創(chuàng)建的一個(gè)線程來進(jìn)行Socket連接,,連接成功后界面上會顯示“連接成功”,。
4 功能模塊的開發(fā)
4.1 無線通信設(shè)計(jì)

 系統(tǒng)中主要運(yùn)用了藍(lán)牙、GSM這兩種無線通信協(xié)議,,其中藍(lán)牙是應(yīng)用在手機(jī)和主控中心之間的通信,它的傳輸距離達(dá)10 m左右,,滿足室內(nèi)使用要求,。而GSM用于遠(yuǎn)距離報(bào)警。
4.2 學(xué)習(xí)型紅外遙控
    現(xiàn)在大多數(shù)家庭中使用到紅外遙控器多達(dá)數(shù)個(gè),,如果將控制全部集中于手機(jī)則會十分便利,,但不同遙控器的紅外編碼是不一致的,因此本系統(tǒng)設(shè)計(jì)的是學(xué)習(xí)型紅外遙控,,它以STM8S105S4單片機(jī)作為主控芯片,,包括了紅外發(fā)射和接收兩部分電路,能夠?qū)W習(xí)并存儲各種紅外編碼,,工作流程如圖3所示,。

4.3 溫度檢測
 溫度檢測采用NTC(熱敏電阻),它是隨溫度上升電阻呈指數(shù)關(guān)系減小,、具有負(fù)溫度系數(shù)的材料,,因此只要采樣出的電阻值然后與其溫度阻值變化列表進(jìn)行對應(yīng)便可得出當(dāng)前的溫度值。設(shè)計(jì)中用單片機(jī)內(nèi)部的10位A/D轉(zhuǎn)換器采樣其電壓值,,再根據(jù)分壓電阻求出NTC的阻值,,最后通過取表得出溫度值,。
4.4 濕度檢測

 


 濕度檢測采用HS1100濕度傳感器,它是一種基于電容原理的濕度傳感器,,相對濕度的變化和電容值呈線性規(guī)律,。在實(shí)際測試中,電容值隨著空氣濕度的變化而變化,,因此將電容值的變化轉(zhuǎn)換成電壓或頻率的變化,,才能進(jìn)行有效地?cái)?shù)據(jù)采集。設(shè)計(jì)中用NE555組成振蕩電路,,HS1100濕度傳感器充當(dāng)振蕩電容,,從而完成濕度到頻率的轉(zhuǎn)換。
4.5 振動(dòng)檢測
 振動(dòng)檢測采用MMA7631三軸小量程加速度傳感器,,它根據(jù)物體運(yùn)動(dòng)和方向改變輸出信號的電壓值,。各軸的信號在不運(yùn)動(dòng)或不被重力作用的狀態(tài)下,其輸出為1.65 V,。采用STM8S105S4單片機(jī)內(nèi)部的10位A/D轉(zhuǎn)換器采樣3個(gè)方向的電壓,,根據(jù)采樣結(jié)果的變化來判斷門窗是否振動(dòng),當(dāng)變化范圍超過一定的限值時(shí),,則判斷門窗被開啟,,觸發(fā)報(bào)警信息。
 本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Android智能終端及FPGA的智能家居系統(tǒng),,在3個(gè)平臺下完成開發(fā),,分別是用Java語言在Android系統(tǒng)下進(jìn)行應(yīng)用程序開發(fā),用Verilog語言對主控FPGA進(jìn)行設(shè)計(jì)以及基于STM8單片機(jī)的功能模塊設(shè)計(jì),。以FPGA作為主控中心,,相比于AMR11、STM32等串行處理器,,它可實(shí)現(xiàn)視頻監(jiān)控,、人臉識別等高速復(fù)雜處理,而且無須后臺服務(wù)器,,減低了成本,。系統(tǒng)以Android設(shè)備作為遙控終端,與傳統(tǒng)控制方案比,,它可以實(shí)現(xiàn)程序化控制,,可存貯各種個(gè)性化的控制方案。本系統(tǒng)使用方便,、操作簡單,,能滿足普通家庭的需求,具有較高的實(shí)用性和推廣價(jià)值,。
參考文獻(xiàn)
[1] 陳致遠(yuǎn),,朱葉承,,周卓泉.一種基于STM32的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,,38(9):138-140.
[2] 滿莎,,楊恢先,彭友,,等.基于ARM9的嵌入式無線智能家居網(wǎng)關(guān)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,,2010,30(9):2541-2544.
[3] 陳喬云,,賈金玲.基于智能手機(jī)與PC機(jī)的智能家居系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,,2009,17(9):25-29.
[4] 王朝華,,陳德艷,,黃國宏,等.基于Android的智能家居系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,,2012,,22(6):225-228.
[5] DEBONO CJ, KURT ABELA. Implementation of a Home Automation System through a Central FPGA Controller[C]. 2012 16th IEEE Mediterranean Electrotechnical Conference (MELECON). Piscataway,, N.J: IEEE press,,2012:641-644.
[6] PAYET ETIENNE,SPOTO FAUSTO. Static analysis of Android programs[J]. Information and Software Technology,, 2012,, 54(11):1192-1201.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。