Android終端及FPGA控制的智能家居系統(tǒng)
3 Android應(yīng)用程序的開(kāi)發(fā)
本文引用地址:http://www.ex-cimer.com/article/271874.htmAndroid終端的應(yīng)用程序是基于Android2.3版本,在Eclipse平臺(tái)下用Java語(yǔ)言進(jìn)行開(kāi)發(fā),其主要內(nèi)容包括設(shè)計(jì)一個(gè)人機(jī)交流界面、獲取已配對(duì)的藍(lán)牙設(shè)備并建立連接、利用Socket進(jìn)行數(shù)據(jù)傳輸?shù)取?/p>
3.1界面設(shè)計(jì)
該應(yīng)用程序主要有兩個(gè)界面,開(kāi)啟時(shí)首先進(jìn)入主控界面,主要包括溫濕度的顯示、防盜系統(tǒng)的開(kāi)啟與關(guān)閉、電視遙控等功能,點(diǎn)擊電視遙控按鍵將進(jìn)入紅外遙控界面。界面通過(guò)AbsoluteLayout進(jìn)行布局設(shè)計(jì),這是一種絕對(duì)布局,可以任意調(diào)整每個(gè)控件的橫坐標(biāo)和縱坐標(biāo),界面上每個(gè)按鍵通過(guò)綁定一個(gè)地址和添加一個(gè)監(jiān)聽(tīng)器,點(diǎn)擊按鍵后會(huì)觸發(fā)監(jiān)聽(tīng)器并執(zhí)行相應(yīng)的操作。
3.2藍(lán)牙的獲取和連接
應(yīng)用程序中需要建立一個(gè)藍(lán)牙通信通道,以便與FPGA端的藍(lán)牙模塊進(jìn)行數(shù)據(jù)傳輸,在建立藍(lán)牙通信之前先搜索出已配對(duì)的藍(lán)牙設(shè)備并用列表顯示,當(dāng)點(diǎn)擊其中一個(gè)設(shè)備進(jìn)行連接時(shí),其地址值會(huì)被記錄下來(lái)并通過(guò)Intent回傳給主Activity.當(dāng)本機(jī)藍(lán)牙開(kāi)啟以及要連接設(shè)備的地址獲取后就可建立Socket連接,通過(guò)Thread創(chuàng)建的一個(gè)線程來(lái)進(jìn)行Socket連接,連接成功后界面上會(huì)顯示“連接成功”。
4功能模塊的開(kāi)發(fā)
4.1無(wú)線通信設(shè)計(jì)
系統(tǒng)中主要運(yùn)用了藍(lán)牙、GSM這兩種無(wú)線通信協(xié)議,其中藍(lán)牙是應(yīng)用在手機(jī)和主控中心之間的通信,它的傳輸距離達(dá)10m左右,滿足室內(nèi)使用要求。而GSM用于遠(yuǎn)距離報(bào)警。
4.2學(xué)習(xí)型紅外遙控
現(xiàn)在大多數(shù)家庭中使用到紅外遙控器多達(dá)數(shù)個(gè),如果將控制全部集中于手機(jī)則會(huì)十分便利,但不同遙控器的紅外編碼是不一致的,因此本系統(tǒng)設(shè)計(jì)的是學(xué)習(xí)型紅外遙控,它以STM8S105S4單片機(jī)作為主控芯片,包括了紅外發(fā)射和接收兩部分電路,能夠?qū)W習(xí)并存儲(chǔ)各種紅外編碼,工作流程如圖3所示。
圖3學(xué)習(xí)型紅外遙控工作流程
4.3溫度檢測(cè)
溫度檢測(cè)采用NTC(熱敏電阻),它是隨溫度上升電阻呈指數(shù)關(guān)系減小、具有負(fù)溫度系數(shù)的材料,因此只要采樣出的電阻值然后與其溫度阻值變化列表進(jìn)行對(duì)應(yīng)便可得出當(dāng)前的溫度值。設(shè)計(jì)中用單片機(jī)內(nèi)部的10位A/D轉(zhuǎn)換器采樣其電壓值,再根據(jù)分壓電阻求出NTC的阻值,最后通過(guò)取表得出溫度值。
4.4濕度檢測(cè)
濕度檢測(cè)采用HS1100濕度傳感器,它是一種基于電容原理的濕度傳感器,相對(duì)濕度的變化和電容值呈線性規(guī)律。在實(shí)際測(cè)試中,電容值隨著空氣濕度的變化而變化,因此將電容值的變化轉(zhuǎn)換成電壓或頻率的變化,才能進(jìn)行有效地?cái)?shù)據(jù)采集。設(shè)計(jì)中用NE555組成振蕩電路,HS1100濕度傳感器充當(dāng)振蕩電容,從而完成濕度到頻率的轉(zhuǎn)換。
4.5振動(dòng)檢測(cè)
振動(dòng)檢測(cè)采用MMA7631三軸小量程加速度傳感器,它根據(jù)物體運(yùn)動(dòng)和方向改變輸出信號(hào)的電壓值。各軸的信號(hào)在不運(yùn)動(dòng)或不被重力作用的狀態(tài)下,其輸出為1.65V.采用STM8S105S4單片機(jī)內(nèi)部的10位A/D轉(zhuǎn)換器采樣3個(gè)方向的電壓,根據(jù)采樣結(jié)果的變化來(lái)判斷門窗是否振動(dòng),當(dāng)變化范圍超過(guò)一定的限值時(shí),則判斷門窗被開(kāi)啟,觸發(fā)報(bào)警信息。
本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Android智能終端及FPGA的智能家居系統(tǒng),在3個(gè)平臺(tái)下完成開(kāi)發(fā),分別是用Java語(yǔ)言在Android系統(tǒng)下進(jìn)行應(yīng)用程序開(kāi)發(fā),用Verilog語(yǔ)言對(duì)主控FPGA進(jìn)行設(shè)計(jì)以及基于STM8單片機(jī)的功能模塊設(shè)計(jì)。以FPGA作為主控中心,相比于AMR11、STM32等串行處理器,它可實(shí)現(xiàn)視頻監(jiān)控、人臉識(shí)別等高速?gòu)?fù)雜處理,而且無(wú)須后臺(tái)服務(wù)器,減低了成本。系統(tǒng)以Android設(shè)備作為遙控終端,與傳統(tǒng)控制方案比,它可以實(shí)現(xiàn)程序化控制,可存貯各種個(gè)性化的控制方案。本系統(tǒng)使用方便、操作簡(jiǎn)單,能滿足普通家庭的需求,具有較高的實(shí)用性和推廣價(jià)值。
紅外遙控器相關(guān)文章:紅外遙控器原理萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼
fpga相關(guān)文章:fpga是什么
評(píng)論