999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android 客戶端的智能家居App 設(shè)計

2019-11-05 11:15:04凌敏羅浩武鄒阿金黃健明
現(xiàn)代計算機 2019年27期
關(guān)鍵詞:界面數(shù)據(jù)庫用戶

凌敏,羅浩武,鄒阿金,黃健明

(1.廣東海洋大學(xué)電子與信息工程學(xué)院通信工程系,湛江524088;2.廣東海洋大學(xué)電子與信息工程學(xué)院電子工程系,湛江524088)

0 引言

隨著智能家居技術(shù)的逐步發(fā)展,家居智能化正在漸漸影響著人們的生活,各類智能家居設(shè)備可以給人們提供舒適、安全、方便的居住環(huán)境。移動互聯(lián)的高速發(fā)展,使得人們隨時隨地都可以通過移動設(shè)備與他人聯(lián)系。眼下正發(fā)展得如火如荼的5G 技術(shù),憑借其速度快、網(wǎng)絡(luò)容量大、時延低等優(yōu)點,勢必能徹底改變智能家居終端的部署與服務(wù)方式[1],從而使智能家居得到更進一步的推廣。

為了順應(yīng)移動端技術(shù)的發(fā)展,便于在家中隨時使用手機操控家居設(shè)備,本文設(shè)計了一款可與家中設(shè)備進行交互的、集眾多傳統(tǒng)遙控器功能于一身的手機App,同時還具備語音控制、遠程監(jiān)控等功能,使得用戶只需要一款A(yù)pp,就可以實現(xiàn)對家中所有設(shè)備進行監(jiān)測與控制。

1 系統(tǒng)總體設(shè)計

對于家居設(shè)備的監(jiān)控管理,傳統(tǒng)的遙控器雖然在一定程度上可以滿足人們的需求,卻有其局限性。例如:不同的家電需要配備不同的遙控器,導(dǎo)致了遙控器的冗余,管理困難;除此之外,傳統(tǒng)遙控器所能控制的空間范圍是有限的,人們通常無法在室外通過遙控器操控家中設(shè)備,也無從知曉設(shè)備的運行狀況。

為了克服以上缺陷,本文提出一種解決方案,可集眾多傳統(tǒng)遙控器的功能于一體,方便用戶操作,提升用戶體驗。

本系統(tǒng)的整體架構(gòu)是配置云服務(wù)器作為中轉(zhuǎn)站,硬件設(shè)備由支持TCP/IP 通信協(xié)議的ZigBee、Wi-Fi 和4G LTE 通信模塊組成;智能家居App 則通過Socket 與云服務(wù)器連接。二者通過同時連接云服務(wù)器實現(xiàn)遠程連接,從而進行通信和數(shù)據(jù)傳輸。系統(tǒng)總體架構(gòu)如圖1所示。

通過結(jié)合4G LTE 無線通信技術(shù)和ZigBee 無線通信技術(shù),ZigBee 終端節(jié)點采集室內(nèi)的溫度、濕度、濕度、污染物的氣體濃度、光照強度、當前天氣狀況等信息,將這些信息聯(lián)網(wǎng)發(fā)送到云服務(wù)器中,云服務(wù)器再轉(zhuǎn)發(fā)到App。

App 接收到數(shù)據(jù)后經(jīng)過處理顯示到界面上,用戶打開App 即可遠程獲取室內(nèi)的溫度、濕度、煙霧濃度、光照強度等信息,同時能夠遠程改變室內(nèi)各種家電的狀態(tài)、切換室內(nèi)情景模式。通過這款智能家居App,用戶即使出門在外也能方便了解室內(nèi)環(huán)境情況、改變室內(nèi)家電狀態(tài)。

圖1 系統(tǒng)總體架構(gòu)

2 系統(tǒng)功能設(shè)計

2.1 Android客戶端開發(fā)環(huán)境

本Android 客戶端的開發(fā)環(huán)境為Android Studio3.3,是谷歌公司在IntelliJ IDEA 的基礎(chǔ)上,推出的一個Android 集成開發(fā)工具。開發(fā)語言為面向?qū)ο蟮木幊陶Z言Java,故必須安裝支持Java 程序開發(fā)和運行的JDK(Java Development Kit),還需要有JRE(Java Runtime Environment)的支持[2]。數(shù)據(jù)庫方面,選擇了遵守ACID(即原子性、一致性、隔離性和持久性)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)SQLite,由于其零配置、速度快、占用內(nèi)存小、開源等優(yōu)點,使得其成為許多嵌入式設(shè)備存儲數(shù)據(jù)的第一選擇[3]。

2.2 客戶端功能模塊設(shè)計

Android 客戶端系統(tǒng)設(shè)計主要包括用戶UI 設(shè)計、通信模塊設(shè)計、數(shù)據(jù)庫設(shè)計、語音控制模塊設(shè)計四個模塊。

2.3 客戶端UI設(shè)計

(1)用戶登錄注冊界面設(shè)計

登錄注冊布局文件均使用了RelativeLayout 作為整體布局,利用EditText 實現(xiàn)用戶名和密碼的輸入框,利用Button 來觸發(fā)注冊和登錄的具體操作。注冊和登錄界面如圖2 所示。

圖2 注冊和登錄界面

(2)用戶主控界面設(shè)計

本系統(tǒng)的主控界面按功能可分為控制界面和監(jiān)控界面。

監(jiān)控界面如圖3 所示,采用LinearLayout 作為整體布局,通過EditText 顯示家居設(shè)備的運行狀態(tài)及運行參數(shù)。

控制界面如圖4 所示,采用LinearLayout 作為整體布局,通過GridLayout 實現(xiàn)網(wǎng)格布局,使用RecylerView來實現(xiàn)內(nèi)容的滾動。用戶可點擊按鈕,實現(xiàn)模式的切換和對家居設(shè)備的控制。

2.4 通信模塊設(shè)計

通信模塊基于TCP 協(xié)議和C/S 模型進行設(shè)計。TCP 協(xié)議全稱為傳輸控制協(xié)議(Transmission Control Protocol),因為其具有面向字節(jié)流和連接的服務(wù)、可靠傳輸、全雙工等特點[4],已經(jīng)成為使用非常普遍的網(wǎng)絡(luò)協(xié)議;C/S 模型即客戶端(Client)和服務(wù)端(Server)模型,TCP 編程主要基于C/S 模型[4]。

智能家居App 的服務(wù)端創(chuàng)建一個服務(wù)程序,搭載在云服務(wù)器上,等待客戶端連接。客戶端根據(jù)IP 地址和端口與服務(wù)器建立連接后,對服務(wù)器的響應(yīng)進行數(shù)據(jù)處理。

圖3 監(jiān)控界面

圖4 控制界面

服務(wù)端實現(xiàn)步驟如下:

(1)實例化ServerSocket 對象,等待客戶端連接;

(2)與客戶端連接成功后,與之進行通信。

Android 客戶端實現(xiàn)步驟如下:

(1)開啟異步線程,通過IP、端口號與遠程服務(wù)器連接;

(2)從Socket 對象中獲取輸入輸出流從而進行數(shù)據(jù)的讀寫操作;

(3)基于數(shù)據(jù),在異步線程中對UI 界面進行操作;

(4)讀寫行為結(jié)束,關(guān)閉輸入輸出流;

(5)關(guān)閉Socket。

服務(wù)端與客戶端通信流程如圖5 所示。

圖5 服務(wù)端與客戶端通信

2.5 數(shù)據(jù)庫設(shè)計

SQLite 作為Android 操作系統(tǒng)體系結(jié)構(gòu)的重要成員,對于所有Android 系統(tǒng)應(yīng)用程序都可用。由于其可移植性好,Android 針對其封裝了專屬的API[5],例如SQLiteOpenHelper,通過該接口可以實現(xiàn)數(shù)據(jù)庫、表的創(chuàng)建與升級。不管如何進行封裝,本質(zhì)上都是構(gòu)建SQL 語句并且提交到SQLite 中執(zhí)行,最終得到需求結(jié)果[3]。

為了可以靈活地操作和管理數(shù)據(jù)庫,App 的數(shù)據(jù)庫模塊選擇自定義一個繼承自SQLiteOpenHelper 的數(shù)據(jù)庫操作類DBHelper,在該類中實例化實際操作數(shù)據(jù)庫的SQLiteDatabase 對象,重寫繼承的方法,并封裝增刪改查等一系列操作。

具體操作如下:

(1)創(chuàng)建數(shù)據(jù)庫

定義全局變量SQLiteDatabase,在數(shù)據(jù)庫操作類的構(gòu)造函數(shù)中,使用sqLiteDatabase = dBHelper.getWritableDatabase()創(chuàng)建一個可讀寫操作的數(shù)據(jù)庫。

(2)創(chuàng)建表

首先定義創(chuàng)建表的SQL 語句,在復(fù)用的onCreate(SQLiteDatabase sqLiteDatabase)中調(diào)用sqLiteDatabase.execSQL(sql)方法,將SQL 語句作為參數(shù)傳入,從而創(chuàng)建所需要的表。

(3)升級數(shù)據(jù)庫

當數(shù)據(jù)庫中的字段或者表結(jié)構(gòu)有所變化的時候,重寫的onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion,int newVersion)方法會被調(diào)用,根據(jù)版本號升級數(shù)據(jù)庫。

(4)添加數(shù)據(jù)

為了避免繁瑣的操作,首先實例化一個可以存儲鍵值對數(shù)據(jù)的ContentValues 對象;然后將要添加進數(shù)據(jù)庫的數(shù)據(jù)封裝在ContentValues 實例里;最后執(zhí)行SQLiteDatabase 的insert 函數(shù)將數(shù)據(jù)插入對應(yīng)的表中。也可以自定義添加數(shù)據(jù)的SQL 語句,使用sqLiteDatabase.execSQL(sql)進行添加。

(5)查詢數(shù)據(jù)

使用sqLiteDatabase.query()遍歷表進行查詢。

(6)刪除數(shù)據(jù)

調(diào)用SQLiteDatabase 的delete()方法;也可以自定義刪除數(shù)據(jù)的SQL 語句,使用sqLiteDatabase.execSQL(sql)進行刪除。

表1 和表2 分別是該系統(tǒng)的用戶信息表和家居實時數(shù)據(jù)表。

表1 用戶信息表

表2 家居實時數(shù)據(jù)表

2.6 語音控制模塊設(shè)計

隨著物聯(lián)網(wǎng)的不斷普及,通過語音實現(xiàn)智能家居控制已成為一種發(fā)展趨勢,對于有老人和小孩的家庭來說,語音控制顯得更加輕松高效。百度提供的語音識別功能強大,不但可以將錄音轉(zhuǎn)化為文字,還在線支持普通話、英文、粵語和四川話[6],適用于多種情況;對于識別出來的文字,可以進行分詞及找出意圖和詞槽[6]。本App集成了百度語音識別的API,將用戶的語音轉(zhuǎn)化成計算機可讀的字符串發(fā)送給硬件設(shè)備,硬件與App 客戶端同時對用戶的語音輸入做出響應(yīng)。

語音控制實現(xiàn)步驟如下:

(1)搭建開發(fā)環(huán)境

要使用百度官方提供的API,首先需要下載相應(yīng)的jar 包和so 庫文件,并部署到項目正確的位置下。

(2)權(quán)限設(shè)置

為了實現(xiàn)語音控制操作,需要在AndroidManifest.xml 文件中設(shè)置允許App 使用麥克風(fēng)、錄音、存儲等權(quán)限。若Android 系統(tǒng)版本為6.0 以上,還需要在源文件中動態(tài)申請權(quán)限。

(3)初始化并配置語音解析器

初始化:

SpeechSynthesizer mSpeechSynthesizer =SpeechSynthesizer.getInstance();

注冊自定義的監(jiān)聽器:

mSpeechSynthesizer.setSpeechSynthesizerListener(new MyListnener());

配置在語音開發(fā)者平臺上注冊應(yīng)用得到的appId、apiKey 和secretKey:

mSpeechSynthesizer.setAppId(appId);

mSpeechSynthesizer.setApiKey(appKey,secretKey);

初始化tts:

mSpeechSynthesizer.initTts(TtsMode.MIX);

(4)初始化EventManager

EventManager eventManager = EventManagerFactory.create(getContext(),”asr”);

(5)初始化事件監(jiān)聽EventListener,在繼承的onEvent 方法中做回調(diào)處理;

(6)注冊自定義的監(jiān)聽事件

EventManager.registerListener(eventListener);

(7)發(fā)送事件

識別結(jié)束后,調(diào)用eventManager.send(SpeechConstant.ASR_STOP,null,null,0,0)停止識別。將識別出的字符串轉(zhuǎn)換后發(fā)送給云服務(wù)器,云服務(wù)器再轉(zhuǎn)發(fā)到硬件設(shè)備上,后者接收到指令后會做出對應(yīng)的處理。

3 結(jié)語

隨著物聯(lián)網(wǎng)技術(shù)和5G 技術(shù)的不斷發(fā)展,智能家居在未來勢必會走進尋常百姓家,變得越來越平民化。本文開發(fā)的智能家居App 系統(tǒng)將軟件客戶端和硬件設(shè)備通過云服務(wù)器這座橋梁,實現(xiàn)了遠程連接,從而可以對家居設(shè)備進行遠程控制和監(jiān)控,解決了市場上由于家居品牌不同、控制方式不同所帶來的種種問題,實現(xiàn)了只需下載安裝一款A(yù)pp,就可以與家中所有設(shè)備實現(xiàn)交互;配置的語音控制模塊,使得交互方式變得更方便和友好。

猜你喜歡
界面數(shù)據(jù)庫用戶
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發(fā)展趨勢研究
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 久久毛片免费基地| 直接黄91麻豆网站| 毛片大全免费观看| 午夜精品区| 国产精品免费露脸视频| 精品伊人久久久久7777人| 国产00高中生在线播放| 女人18毛片水真多国产| 国产又大又粗又猛又爽的视频| 久草中文网| jizz国产视频| 国内精品视频| 国产又粗又猛又爽视频| 亚洲无码91视频| 日韩无码精品人妻| 国产一区二区三区免费观看| 日本不卡免费高清视频| 国产精品亚洲综合久久小说| 青青草原国产一区二区| 欧美一区二区三区香蕉视| 欧美精品高清| 久久99热这里只有精品免费看| 国产免费好大好硬视频| 久久久久亚洲AV成人网站软件| 亚洲三级色| 成年av福利永久免费观看| 国产第一页屁屁影院| 国产成人精品第一区二区| 曰AV在线无码| 国产国拍精品视频免费看 | 亚洲精品视频在线观看视频| 国产微拍精品| 蜜臀AV在线播放| 中文字幕 91| 夜精品a一区二区三区| 在线播放精品一区二区啪视频| 午夜激情婷婷| 午夜国产理论| 亚洲国产精品不卡在线| 欧美综合中文字幕久久| 91探花在线观看国产最新| 亚洲国产一区在线观看| 亚洲人成影视在线观看| 五月婷婷综合色| 老司机精品99在线播放| 免费人成网站在线高清| 丰满人妻中出白浆| 亚洲欧美日韩精品专区| 国产成人精品在线| 亚洲日韩精品综合在线一区二区| 永久免费AⅤ无码网站在线观看| 无码人妻热线精品视频| 欧洲亚洲一区| 777国产精品永久免费观看| 欧美日韩免费观看| 18黑白丝水手服自慰喷水网站| 成人av手机在线观看| 日韩性网站| 强奷白丝美女在线观看| 青青青国产视频手机| 国产婬乱a一级毛片多女| 国产成人亚洲精品无码电影| 国产视频自拍一区| 性色生活片在线观看| 亚洲黄网在线| 欧美性色综合网| 午夜a级毛片| 亚洲一本大道在线| 无码在线激情片| 日韩无码视频播放| 国产成人免费观看在线视频| 老司机午夜精品视频你懂的| a免费毛片在线播放| 国产精品香蕉在线观看不卡| 亚洲欧州色色免费AV| 亚洲浓毛av| 9丨情侣偷在线精品国产| 亚洲熟妇AV日韩熟妇在线| …亚洲 欧洲 另类 春色| 国产高潮流白浆视频| 天堂亚洲网| 欧美亚洲一区二区三区导航|