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

基于Android 客戶端的智能家居App 設計

2019-11-05 11:15:04凌敏羅浩武鄒阿金黃健明
現代計算機 2019年27期
關鍵詞:界面數據庫用戶

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

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

0 引言

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

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

1 系統總體設計

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

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

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

通過結合4G LTE 無線通信技術和ZigBee 無線通信技術,ZigBee 終端節點采集室內的溫度、濕度、濕度、污染物的氣體濃度、光照強度、當前天氣狀況等信息,將這些信息聯網發送到云服務器中,云服務器再轉發到App。

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

圖1 系統總體架構

2 系統功能設計

2.1 Android客戶端開發環境

本Android 客戶端的開發環境為Android Studio3.3,是谷歌公司在IntelliJ IDEA 的基礎上,推出的一個Android 集成開發工具。開發語言為面向對象的編程語言Java,故必須安裝支持Java 程序開發和運行的JDK(Java Development Kit),還需要有JRE(Java Runtime Environment)的支持[2]。數據庫方面,選擇了遵守ACID(即原子性、一致性、隔離性和持久性)的關系型數據庫管理系統SQLite,由于其零配置、速度快、占用內存小、開源等優點,使得其成為許多嵌入式設備存儲數據的第一選擇[3]。

2.2 客戶端功能模塊設計

Android 客戶端系統設計主要包括用戶UI 設計、通信模塊設計、數據庫設計、語音控制模塊設計四個模塊。

2.3 客戶端UI設計

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

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

圖2 注冊和登錄界面

(2)用戶主控界面設計

本系統的主控界面按功能可分為控制界面和監控界面。

監控界面如圖3 所示,采用LinearLayout 作為整體布局,通過EditText 顯示家居設備的運行狀態及運行參數。

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

2.4 通信模塊設計

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

智能家居App 的服務端創建一個服務程序,搭載在云服務器上,等待客戶端連接??蛻舳烁鶕蘒P 地址和端口與服務器建立連接后,對服務器的響應進行數據處理。

圖3 監控界面

圖4 控制界面

服務端實現步驟如下:

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

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

Android 客戶端實現步驟如下:

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

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

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

(4)讀寫行為結束,關閉輸入輸出流;

(5)關閉Socket。

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

圖5 服務端與客戶端通信

2.5 數據庫設計

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

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

具體操作如下:

(1)創建數據庫

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

(2)創建表

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

(3)升級數據庫

當數據庫中的字段或者表結構有所變化的時候,重寫的onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion,int newVersion)方法會被調用,根據版本號升級數據庫。

(4)添加數據

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

(5)查詢數據

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

(6)刪除數據

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

表1 和表2 分別是該系統的用戶信息表和家居實時數據表。

表1 用戶信息表

表2 家居實時數據表

2.6 語音控制模塊設計

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

語音控制實現步驟如下:

(1)搭建開發環境

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

(2)權限設置

為了實現語音控制操作,需要在AndroidManifest.xml 文件中設置允許App 使用麥克風、錄音、存儲等權限。若Android 系統版本為6.0 以上,還需要在源文件中動態申請權限。

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

初始化:

SpeechSynthesizer mSpeechSynthesizer =SpeechSynthesizer.getInstance();

注冊自定義的監聽器:

mSpeechSynthesizer.setSpeechSynthesizerListener(new MyListnener());

配置在語音開發者平臺上注冊應用得到的appId、apiKey 和secretKey:

mSpeechSynthesizer.setAppId(appId);

mSpeechSynthesizer.setApiKey(appKey,secretKey);

初始化tts:

mSpeechSynthesizer.initTts(TtsMode.MIX);

(4)初始化EventManager

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

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

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

EventManager.registerListener(eventListener);

(7)發送事件

識別結束后,調用eventManager.send(SpeechConstant.ASR_STOP,null,null,0,0)停止識別。將識別出的字符串轉換后發送給云服務器,云服務器再轉發到硬件設備上,后者接收到指令后會做出對應的處理。

3 結語

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

猜你喜歡
界面數據庫用戶
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 99手机在线视频| 男女男免费视频网站国产| 国产精品亚洲一区二区在线观看| 亚洲最大综合网| 青青草原国产精品啪啪视频| 亚洲日韩每日更新| a毛片免费在线观看| 国产男人的天堂| 国产午夜精品一区二区三区软件| 91色在线观看| 欧美日韩成人| 亚洲一级毛片在线观播放| 欧美区一区二区三| 国产网站一区二区三区| 福利在线一区| 亚洲色欲色欲www在线观看| 国产女人18毛片水真多1| 亚洲欧美综合在线观看| 99热这里只有成人精品国产| 国产亚洲精品97在线观看| 免费在线视频a| 国产精品手机在线观看你懂的| 欧美国产中文| 91精品aⅴ无码中文字字幕蜜桃| 亚洲综合色婷婷| 97精品久久久大香线焦| 日韩福利在线视频| 色有码无码视频| 少妇被粗大的猛烈进出免费视频| av在线手机播放| 91欧洲国产日韩在线人成| 国产在线一二三区| 67194在线午夜亚洲 | 巨熟乳波霸若妻中文观看免费| 伊人狠狠丁香婷婷综合色| 中美日韩在线网免费毛片视频| 色综合成人| 九色91在线视频| 国产幂在线无码精品| 成年人国产视频| 久久永久免费人妻精品| 亚洲美女高潮久久久久久久| 999国内精品视频免费| 男女性色大片免费网站| 日韩中文欧美| 在线观看亚洲天堂| 欧美精品三级在线| 91国内外精品自在线播放| 国产成人综合欧美精品久久| 国产欧美在线视频免费| 国产精品网拍在线| 亚洲国产看片基地久久1024| 欧美激情第一区| 狠狠亚洲五月天| 91久久偷偷做嫩草影院免费看| 久久99国产综合精品1| 操国产美女| 亚洲国产天堂久久九九九| 97成人在线观看| 欧美国产中文| 性欧美在线| 欧美日韩精品在线播放| 色妞www精品视频一级下载| 日韩中文精品亚洲第三区| 香蕉视频在线观看www| 国产一区自拍视频| 精品视频免费在线| 国产v精品成人免费视频71pao | 一本综合久久| 欧美色图久久| yjizz视频最新网站在线| 国产精品一区二区国产主播| 免费国产小视频在线观看| 国产99视频精品免费视频7| 在线播放91| 亚洲激情区| 国产一级二级三级毛片| 先锋资源久久| 亚洲无码视频一区二区三区| 欧美怡红院视频一区二区三区| 久久中文字幕2021精品| 亚洲成aⅴ人片在线影院八|