赫 亮 / 龔 蕤 / 崔曉飛 / 王建華
1. 北京建筑大學(xué)機(jī)電與車輛工程學(xué)院, 北京 100044 2. 中科院建筑設(shè)計(jì)研究院有限公司, 北京 100190
基于AppInventor的智能感知系統(tǒng)App設(shè)計(jì)
赫 亮1/ 龔 蕤1/ 崔曉飛1/ 王建華2
1. 北京建筑大學(xué)機(jī)電與車輛工程學(xué)院, 北京 100044 2. 中科院建筑設(shè)計(jì)研究院有限公司, 北京 100190
智能感知系統(tǒng)是智能家居的重要組成部分,通過利用智能手機(jī)和藍(lán)牙通信模塊開發(fā)了智能感知系統(tǒng),以App軟件的形式安裝在手機(jī)上,以實(shí)時(shí)獲知環(huán)境或健康參數(shù)。
App 智能家居 藍(lán)牙
在如今來勢洶涌的智能家居大潮中,創(chuàng)新和科技是關(guān)鍵因素。一般來說,智能家居控制系統(tǒng)的控制對(duì)象包括:空調(diào)或地暖、空氣凈化器、電動(dòng)窗簾或電動(dòng)開窗器、燈光、安防系統(tǒng)、門控系統(tǒng)、智能床、自動(dòng)叫醒等。其中,最受消費(fèi)者歡迎的智能家居功能有以下幾項(xiàng)。
1)智能家庭安防系統(tǒng)
系統(tǒng)配有高清攝像頭、人體紅外感應(yīng)器、門磁報(bào)警器、煙霧傳感器、煤氣傳感器,對(duì)家庭進(jìn)行全天候保護(hù),一旦發(fā)生火災(zāi)或煤氣泄漏,手機(jī)會(huì)自動(dòng)收到短信或電話報(bào)警,并啟動(dòng)安全模式,預(yù)防危險(xiǎn)發(fā)生;手機(jī)實(shí)時(shí)連接家里的高清攝像頭,可隨時(shí)隨地查看。
2)智能燈光控制系統(tǒng)
將智能家居開關(guān)與智能控制器連接,可在居室內(nèi)任意位置控制所有燈光的開/關(guān),還可以通過設(shè)置場景記憶模式來控制客廳、餐廳、書房及過道燈光的開/關(guān)和亮度等。
3)中控管理系統(tǒng)
集中管理家中所有設(shè)備(家電照明、多媒體),對(duì)家中環(huán)境進(jìn)行智能監(jiān)測,可使用手機(jī)進(jìn)行遠(yuǎn)程控制。
4)家庭門禁系統(tǒng)
智能門鎖能夠識(shí)別開門動(dòng)作,門開燈亮;朋友到訪,可以遠(yuǎn)程開門。
5)家電控制系統(tǒng)
個(gè)性定制,通過手機(jī)控制所有家用電器;定時(shí)預(yù)設(shè),控制電器開啟與關(guān)閉時(shí)間;聯(lián)動(dòng)控制,融合燈光、音樂系統(tǒng);遠(yuǎn)程控制,遠(yuǎn)程啟動(dòng)家中空調(diào)設(shè)備。
6)家庭影音系統(tǒng)
利用多媒體娛樂平臺(tái)把家打造成娛樂中心,運(yùn)用先進(jìn)的微電腦技術(shù)、無線遙控技術(shù)和紅外遙控技術(shù),在程序指令控制下,根據(jù)用戶需求,把機(jī)頂盒、衛(wèi)星接收機(jī)、DVD、電腦等多路信號(hào)源發(fā)送到每一個(gè)房間的電視機(jī)、終端設(shè)備上實(shí)現(xiàn)一機(jī)共享。
7)智能感知系統(tǒng)
根據(jù)遍布的溫/濕度、光照度、語音識(shí)別、人體紅外等各類傳感器,可自動(dòng)感知家居的環(huán)境狀態(tài),并自動(dòng)運(yùn)行空調(diào)、窗簾、新風(fēng)等系統(tǒng);利用穿戴的智能手表或手環(huán),用戶不僅能控制家用設(shè)備,還可以實(shí)時(shí)查看自身的身體狀況。
8)能源管理系統(tǒng)
通過云服務(wù)器的大數(shù)據(jù)分析,該系統(tǒng)會(huì)自動(dòng)統(tǒng)計(jì)用電情況,診斷各類電器運(yùn)行狀態(tài),量身定制高效用電方案,實(shí)現(xiàn)更好地節(jié)能。
近年來,基于無線控制功能,智能手機(jī)在智能家居領(lǐng)域中扮演著舉足輕重的角色。智能手機(jī)的App開發(fā)是其中的重要環(huán)節(jié),開發(fā)平臺(tái)多種多樣,包括Xamarin(跨平臺(tái)的應(yīng)用開發(fā))、App Inventor(網(wǎng)絡(luò)開發(fā)平臺(tái))、Android Studio(Android集成開發(fā)工具)、Eclipse(開放源代碼的基于Java的可擴(kuò)展開發(fā)平臺(tái))等。
以Android平臺(tái)為例,在App軟件的開發(fā)設(shè)計(jì)中,通常App開發(fā)采用Java+SDK+Eclipse模式,需要設(shè)計(jì)人員既掌握J(rèn)ava語言,又能使用Debug調(diào)試程序,入門較難,這阻礙了很多具有創(chuàng)意卻苦于沒有經(jīng)過編程訓(xùn)練的人員進(jìn)行App開發(fā)。而App Inventor是一個(gè)完全在線開發(fā)的安卓編程環(huán)境,去除了繁瑣難懂的代碼而使用積木式的堆疊法來代替編程,門檻低、入門易,避免了復(fù)雜的程序過程設(shè)計(jì),用戶可以根據(jù)自己的需要來添加選項(xiàng)功能,簡潔直觀。
本文中設(shè)定的智能感知系統(tǒng)在通過手機(jī)App設(shè)計(jì)實(shí)現(xiàn)時(shí)主要兼顧以下幾個(gè)功能。
1)實(shí)現(xiàn)手機(jī)與感知設(shè)備之間通訊的連接和斷開,與硬件系統(tǒng)之間的信息交互及感知包括室內(nèi)空氣質(zhì)量、溫度、濕度、光照度、人體健康狀況等在內(nèi)的參數(shù)信息。
2)通過藍(lán)牙通信模塊的開發(fā),在藍(lán)牙連接成功之后,利用單片機(jī)對(duì)相應(yīng)傳感器的控制進(jìn)行數(shù)據(jù)采集;在數(shù)據(jù)采集完成后,通過藍(lán)牙將數(shù)據(jù)發(fā)送給App,顯示到用戶手機(jī)上。
3.1開發(fā)組件
在該軟件的開發(fā)中共需12個(gè)可視化組件和6個(gè)不可視組件,其中部分組件的具體說明如下。
1)標(biāo)簽組件:可視化組件,共5個(gè),分別向用戶提供不同的提示信息。
2)按鈕組件:可視化組件,共4個(gè),其功能分別為接收PulseSensor心率傳感器內(nèi)容、接收MLX90614傳感器內(nèi)容、打開藍(lán)牙列表、斷開藍(lán)牙連接等。
3)文本輸入框組件:可視化組件,共2個(gè),分別用于向用戶展示2個(gè)傳感器收集到的數(shù)據(jù)。
4)下拉選項(xiàng)組件:用于跳轉(zhuǎn)至藍(lán)牙配對(duì)設(shè)備界面。
5)藍(lán)牙客戶端組件:不可視組件,用于與硬件部分進(jìn)行信息的發(fā)送與接收。
6)對(duì)話框組件:不可視組件,用于向用戶提供一些消息通知,當(dāng)用戶退出App時(shí),該組件會(huì)彈出一個(gè)對(duì)話框,提醒用戶是否退出App。
7)activity啟動(dòng)器組件:不可視組件,用于當(dāng)某些動(dòng)作發(fā)生時(shí)啟動(dòng)某個(gè)功能的組件。
8)音效組件:不可視組件,用于為按鈕添加音效。
9)文件管理器組件:不可視組件,用于獲得來自單片機(jī)發(fā)送的數(shù)據(jù)。
3.2核心界面設(shè)計(jì)
App核心界面的開發(fā)過程具體如下。
1)通過App Inventor編程,在核心功能設(shè)計(jì)界面打開附近藍(lán)牙設(shè)備菜單,通過選擇藍(lán)牙連接成功后提示用戶“藍(lán)牙配對(duì)成功”;設(shè)計(jì)斷開連接按鈕,點(diǎn)擊后斷開所配對(duì)藍(lán)牙設(shè)備,并提示用戶“藍(lán)牙連接已斷開”。
2)通過App Inventor編程,藍(lán)牙連接成功后,在核心功能界面設(shè)計(jì)“測心率”與“測體溫”按鈕,用戶通過點(diǎn)擊該按鈕,由App通過藍(lán)牙向單片機(jī)發(fā)送開啟PulseSensor心率傳感器及MLX90614體溫傳感器的信號(hào),并在按鈕后方設(shè)計(jì)顯示框,接收來自單片機(jī)發(fā)送的測量數(shù)據(jù),顯示給用戶。
3.3藍(lán)牙通信模塊開發(fā)
根據(jù)功能需求,對(duì)所需組件進(jìn)行藍(lán)牙通信模塊的模塊化編程。
首先初始化三個(gè)按鈕,確認(rèn)三個(gè)按鈕顯示狀態(tài),若藍(lán)牙已經(jīng)啟動(dòng),則將“藍(lán)牙”按鈕文本改為“藍(lán)牙已開啟請(qǐng)選擇設(shè)備”的提示語;若藍(lán)牙未開啟,則通過Activity活動(dòng)期開啟藍(lán)牙。模塊程序如圖1所示。
圖1 藍(lán)牙啟動(dòng)器
待藍(lán)牙開啟后,通過下拉選框組件進(jìn)行藍(lán)牙設(shè)備連接的選擇,若藍(lán)牙被連接,則通過Activity啟動(dòng)器啟動(dòng)調(diào)出藍(lán)牙配對(duì)列表菜單,如圖2所示。
圖2 Activity調(diào)用藍(lán)牙
待藍(lán)牙成功配對(duì)后,將選擇設(shè)備的文本設(shè)置為所配對(duì)藍(lán)牙的地址及名稱,方便用戶了解所配對(duì)藍(lán)牙是否正確,如圖3所示。
圖3 選擇設(shè)備按鈕
圖5 接收藍(lán)牙數(shù)據(jù)模塊
通過設(shè)置一個(gè)全局變量“HC06”將所選擇配對(duì)的藍(lán)牙設(shè)備賦予全局變量,同時(shí)設(shè)置“斷開連接”按鈕為提醒用戶“藍(lán)牙已連接,點(diǎn)擊斷開”,如果藍(lán)牙客戶端沒有發(fā)現(xiàn)與全局變量相同的配對(duì)設(shè)備,則通過對(duì)話框組件提醒用戶“藍(lán)牙連接失敗,請(qǐng)檢測”,如圖4所示。
圖4 藍(lán)牙連接模塊
若“測心率“按鈕被點(diǎn)擊,調(diào)用藍(lán)牙客戶端會(huì)向單片機(jī)發(fā)送字符串“1”,單片機(jī)接收到“1”后,將對(duì)應(yīng)傳感器的數(shù)據(jù)發(fā)送給手機(jī)客戶端,藍(lán)牙客戶端通過判斷單片機(jī)所發(fā)送的字節(jié)數(shù),如果所接收到的字節(jié)數(shù)>0個(gè),則調(diào)用文本輸入框組件,將藍(lán)牙客戶端接收到的文本賦值給文本輸入框中,如圖5所示。
同理,如果需要顯示其他傳感器的數(shù)據(jù),如體溫、PM2.5、有害氣體濃度等,除發(fā)送字符串的數(shù)值不同外,其余控制程序與圖6相同。
圖6 斷開連接按鈕
最后,當(dāng)用戶想斷開藍(lán)牙關(guān)閉程序時(shí),通過點(diǎn)擊斷開連接按鈕,調(diào)用藍(lán)牙客戶端組件斷開藍(lán)牙連接,同時(shí)重置所有按鈕的文本,保證下一次開啟后按鈕文本不變。
圖7為體溫和心率測量電路,圖8為手機(jī)App顯示的測量結(jié)果。在此基礎(chǔ)上還可以增加其他的參數(shù)顯示,簡單方便。
圖7 心率和體溫測量電路實(shí)物圖
智能家居控制系統(tǒng)目前種類繁多,但大都價(jià)格不菲,本文詳細(xì)介紹了智能家居感知系統(tǒng)手機(jī)App的開發(fā)方法,簡單實(shí)用,為用戶根據(jù)自己的需要和喜好,構(gòu)建自己個(gè)性化的智能家居提供了可行的方法。
圖8 手機(jī)App顯示測量結(jié)果
[1] 陳光毅.人體健康指標(biāo)實(shí)時(shí)監(jiān)測系統(tǒng)[D].哈爾濱理工大學(xué),2017.
[2] 牛海濤,毛橙潔.手機(jī)應(yīng)用開發(fā)-App Inventor 應(yīng)用程序設(shè)計(jì)與實(shí)踐[M].北京:科學(xué)出版社,2015.
[3] 楊長龍.基于藍(lán)牙技術(shù)的智能家居控制器的研究與設(shè)計(jì)[D].北京工業(yè)大學(xué),2013.
[4] 王杰. 基于Android與App Inventor的移動(dòng)學(xué)習(xí)資源開發(fā)實(shí)踐與思考[J]. 廣東開放大學(xué)學(xué)報(bào),2016,(04):38-42.
[5] 陳應(yīng). 物聯(lián)網(wǎng)技術(shù)下的智能家居應(yīng)用實(shí)例[J]. 智能建筑,2013,(02):44-46.
AppDesignofIntelligentPerceptionSystemBasedonAppInventor
Hao Liang/ Gong Rui / Cui Xiaofei / Wang Jianhua
Intelligent perception system is the important part of smart home. Through using smart mobilephone and bluetooth module to develop intelligent perception system which installed on a mobilephone in form of App software, so that the environmental or healthy parameters are acquired in real time.
App, smart home, bluetooth