智能門窗APP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)分析研究 自動(dòng)化專業(yè)
《智能門窗APP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)分析研究 自動(dòng)化專業(yè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《智能門窗APP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)分析研究 自動(dòng)化專業(yè)(47頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 目錄 摘要 1 Abstract 2 前言 3 第一章、緒論 4 1.1 課題背景 4 1.2 課題意義 5 1.3 課題主要內(nèi)容 5 1.4 文章組織結(jié)構(gòu) 6 第二章、相關(guān)理論與技術(shù)介紹 7 2.1 Android系統(tǒng) 7 2.2 通訊協(xié)議 8 2.2.1 HTTP協(xié)議 8 2.2.2 MQTT協(xié)議 9 2.2.3 RTMP協(xié)議 10 2.3 Spring Boot 11 2.4 MYSQL數(shù)據(jù)庫(kù) 12 2.5 本章小結(jié) 12 第三章、需求分析 13 3.1 可行性分析 13 3.2 系統(tǒng)完成目標(biāo) 14 3.3業(yè)務(wù)需求 14 3.4 用戶需求
2、 15 3.5 功能需求 18 3.6本章小結(jié) 19 第四章、數(shù)據(jù)庫(kù)設(shè)計(jì) 20 4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)原則 20 4.2 數(shù)據(jù)庫(kù)實(shí)體 20 4.3 數(shù)據(jù)庫(kù)表設(shè)計(jì) 22 4.4 E-R關(guān)聯(lián)圖 24 4.5 本章小結(jié) 24 第五章、系統(tǒng)實(shí)現(xiàn) 25 5.1 客戶端功能實(shí)現(xiàn) 25 5.1.1 用戶登錄注冊(cè)模塊 25 5.1.2 用戶主界面模塊 26 5.1.3 門窗控制模塊 27 5.2 服務(wù)器端功能實(shí)現(xiàn) 29 5.2.1 服務(wù)器端主模塊 29 5.2.2 消息流推送模塊 29 5.2.3 視頻流推送模塊 30 5.2.4 家居環(huán)境算法設(shè)計(jì) 31 5.3 系統(tǒng)測(cè)試 3
3、2 5.3.1 測(cè)試方法 32 5.3.2 模塊單元測(cè)試 32 5.3.3 系統(tǒng)整體測(cè)試 37 5.4 本章小結(jié) 40 第六章、總結(jié) 41 6.1 系統(tǒng)優(yōu)勢(shì) 41 6.2 結(jié)論 41 6.3 展望 42 參考文獻(xiàn) 43 致 謝 44 摘要 目前,隨著我國(guó)經(jīng)濟(jì)的發(fā)展,物質(zhì)環(huán)境及科學(xué)技術(shù)也隨之不斷提高,人們對(duì)生活環(huán)境的舒適性和便捷性有了更高的要求。為滿足需求,市場(chǎng)上開(kāi)始出現(xiàn)智能家居系統(tǒng)的身影,但其面向多種家居,智能門窗系統(tǒng)只是其中占比很小的子系統(tǒng),很少有專門針對(duì)門窗來(lái)設(shè)計(jì)和實(shí)現(xiàn)智能控制系統(tǒng)。因此本文主要將門窗作為具體對(duì)象,研究設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于Android平臺(tái)的智
4、能門窗APP系統(tǒng)。 此系統(tǒng)具有前端Android應(yīng)用程序和后端服務(wù)器,基于Android開(kāi)發(fā)平臺(tái),Java為主要編程語(yǔ)言,采用MYSQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)和數(shù)據(jù)管理,使用MQTT協(xié)議、RTMP協(xié)議來(lái)分別實(shí)現(xiàn)信息流推送和視頻流推送。 主要實(shí)現(xiàn)的工作設(shè)計(jì)有:(1)、客戶端遠(yuǎn)程控制門窗開(kāi)關(guān);(2)、獲取環(huán)境參數(shù)計(jì)算得到門窗適宜開(kāi)/關(guān)程度,并主動(dòng)推送消息給客戶端,實(shí)現(xiàn)智能操作;(3)、客戶端獲取門窗安裝攝像頭拍攝到的內(nèi)容,實(shí)現(xiàn)實(shí)時(shí)監(jiān)控;(4)、客戶端記錄環(huán)境日志與開(kāi)/關(guān)門窗日志。 該系統(tǒng)融合了設(shè)備操控技術(shù)和計(jì)算機(jī)技術(shù),具有簡(jiǎn)易的操作界面、實(shí)用的應(yīng)用價(jià)值,使用戶擁有了更好的門窗操作體驗(yàn)、更優(yōu)質(zhì)的
5、家居生活,提升了用戶生活品質(zhì)。 關(guān)鍵詞:智能門窗、Android、MQTT協(xié)議、RTMP協(xié)議。 Abstract At present, with the development of China's economy, the physical environment and science and technology continue to increase, people have higher requirements for the comfort and convenience of the living environment. In order to meet t
6、he requirements, smart doors and windows systems have begun to appear in the market, but they are oriented towards various household products. Smart door and window systems are only subsystems where the proportion is small, and there are very few dedicated intelligent control systems for doors and w
7、indows. Therefore, this article mainly regards doors and windows as concrete objects, researches and designs and realizes a smart door and window APP system based on Android platform. This system has a front-end Android application and back-end server. Based on the Android development platform, Jav
8、a is the main programming language. It uses a MYSQL database for database design and data management, and uses the MQTT protocol and RTMP protocol to implement information flow push and video stream push respectively. The main work designs are as follows: (1) The client remotely controls the door a
9、nd window switches; (2) Obtains the environment parameters to calculate the appropriate opening/closing degree of the doors and windows, and pushes the message to the client to realize the smart operation; (3) The client acquires the content captured by the door and window installation camera and re
10、alizes real-time monitoring. (4) The client records the environment log and opens/closes the door and window logs. The system integrates device control technology and computer technology, has a simple operation interface, practical application value, so that users have a better door and window oper
11、ation experience, a better home life, and improve the quality of life of users. Keywords: smart doors and windows, Android, MQTT Protocol, RTMP Protocol. 前言 智能門窗系統(tǒng)作為一種新的開(kāi)發(fā)方向,旨在現(xiàn)代快節(jié)奏的生活方式下,為用戶提供更加便捷的生活體驗(yàn)。在滿足傳統(tǒng)門窗系統(tǒng)實(shí)現(xiàn)的基本控制功能外,智能門窗系統(tǒng)應(yīng)該更能滿足用戶隨時(shí)隨地進(jìn)行控制和監(jiān)控的需求,與現(xiàn)有的相關(guān)產(chǎn)品相比較,系統(tǒng)更具有時(shí)效性,針對(duì)的對(duì)象更加具體,實(shí)現(xiàn)智能化,自主
12、推送消息。 設(shè)計(jì)致力于實(shí)現(xiàn)一個(gè)操作簡(jiǎn)易、界面友好的智能門窗系統(tǒng)。為實(shí)現(xiàn)此系統(tǒng),查閱了門窗產(chǎn)品的發(fā)展現(xiàn)狀,分析研究相關(guān)系統(tǒng)產(chǎn)品并做相互比較,學(xué)習(xí)其優(yōu)點(diǎn)與先進(jìn)技術(shù),同時(shí)發(fā)現(xiàn)系統(tǒng)產(chǎn)品的不足之處,避免在此次設(shè)計(jì)中出現(xiàn)相同問(wèn)題。 文章需要完成的任務(wù)有: (1)分析智能門窗系統(tǒng)的背景和發(fā)展現(xiàn)狀,確定課題主要研究設(shè)計(jì)內(nèi)容,說(shuō)明系統(tǒng)實(shí)現(xiàn)中運(yùn)用到相關(guān)理論與技術(shù)。 (2)其次從可行性分析、業(yè)務(wù)需求、用戶需求和功能需求對(duì)系統(tǒng)進(jìn)行需求分析,闡述了數(shù)據(jù)庫(kù)設(shè)計(jì)內(nèi)容以及系統(tǒng)客戶端與服務(wù)器端的具體實(shí)現(xiàn)過(guò)程。 (3)客觀的對(duì)實(shí)現(xiàn)的系統(tǒng)進(jìn)行評(píng)價(jià)分析作出總結(jié),同時(shí)對(duì)此系統(tǒng)的發(fā)展寄予展望。 第一章、緒論 1.1 課
13、題背景 科技產(chǎn)品在生活中的出現(xiàn),使之成為了生活中不可缺少的一部分,人們已經(jīng)不知不覺(jué)接受并習(xí)慣了科技產(chǎn)品的存在,人們的依賴感和對(duì)科技的信任感正在不斷地加強(qiáng)。 二十世紀(jì)九十年代末,新加坡通過(guò)家電電子展覽會(huì)向人們展現(xiàn)了未來(lái)家居生活的場(chǎng)景,之后的近兩年時(shí)間內(nèi),新加坡以極快的速度普及了智能家庭系統(tǒng)[1]。除了新加坡,美國(guó)的智能化家居發(fā)展也一直處于世界前沿。智能家居市場(chǎng)具有極大的發(fā)展前景,吸引了大批商人進(jìn)行投資,雖然每家公司的策略不盡相同,但都推動(dòng)了智能家居的發(fā)展[1]。 雖然美國(guó)是世界上目前為止智能家居的最大市場(chǎng),但中國(guó)的科技實(shí)力也不容小覷,中國(guó)智能家居發(fā)展速度也是十分兇猛的。經(jīng)過(guò)相關(guān)研究顯示,中
14、國(guó)智能家居市場(chǎng)的規(guī)模有望每年平均增長(zhǎng)48%,2018年中國(guó)智能家居市場(chǎng)規(guī)模擴(kuò)大至1396億元人民幣,預(yù)計(jì)2022年中國(guó)擁有智能家居潛在需求的家庭數(shù)量可達(dá)4億[2]。 通過(guò)調(diào)查相關(guān)資料發(fā)現(xiàn),智能家居系統(tǒng)發(fā)展的如火如荼,單獨(dú)研究智能門窗管理系統(tǒng)的并不多,沒(méi)有針對(duì)門窗對(duì)象的APP系統(tǒng),絕大多數(shù)都是研究智能家居系統(tǒng),智能門窗則是智能家居的一個(gè)重要子系統(tǒng)。 傳統(tǒng)門窗只是一個(gè)門窗家居的概念,它是單個(gè)實(shí)物,用戶手動(dòng)操作,而智能門窗不再是單個(gè)概念,而是一個(gè)組合概念,它主要由服務(wù)器、傳感器、遙控裝置等設(shè)備組成[3]。而這些設(shè)備正式實(shí)現(xiàn)門窗遠(yuǎn)程控制的關(guān)鍵。目前,電動(dòng)開(kāi)啟或者關(guān)閉門窗已經(jīng)是很成熟的技術(shù),電動(dòng)化以
15、后的門窗,與互聯(lián)網(wǎng)實(shí)現(xiàn)對(duì)接,通過(guò)App相連,就能實(shí)現(xiàn)遠(yuǎn)程操作。 在上世紀(jì)70年代,智能門窗產(chǎn)品在美國(guó)被人們創(chuàng)造,因受到大眾的歡迎,歐美等發(fā)達(dá)國(guó)家也逐漸采用,并開(kāi)始推廣。隨后,不止是歐美發(fā)達(dá)國(guó)家,亞洲一些國(guó)家也開(kāi)始使用智能門窗產(chǎn)品,例如韓國(guó)、新加坡、中國(guó)等。從紅外線遙控到遠(yuǎn)程遙控,智能門窗在不斷更新,不斷適應(yīng)科技生活的要求[1] ,智能門窗產(chǎn)業(yè)完全呈現(xiàn)積極地發(fā)展趨勢(shì),擁有廣闊的發(fā)展前景。 1.2 課題意義 本課題實(shí)現(xiàn)了基于Android的智能門窗APP系統(tǒng),主要實(shí)現(xiàn)了門窗控制、視頻監(jiān)控、紀(jì)錄查詢、信息服務(wù)等功能,大致滿足了用戶對(duì)更先進(jìn)化居住環(huán)境的要求。智能門窗的出現(xiàn),很好的解決了人
16、們對(duì)智能生活的需求,優(yōu)化了人們的生活方式,不用再為開(kāi)關(guān)門窗這種瑣事煩擾;增加了生活的舒適度,人們?cè)谝惶斓墓ぷ骱?,希望能在家中好好休息,此時(shí)若需關(guān)窗或有人拜訪,就可以通過(guò)App解決需求,不用親自起身操作,從而提高休息質(zhì)量,提高了人們對(duì)時(shí)間的利用率;多數(shù)情況下,由于天氣的突然變化,或忘記關(guān)閉門窗,由于人們無(wú)法及時(shí)返回家中進(jìn)行關(guān)閉門窗的操作,門窗可能會(huì)在惡劣天氣下被損壞,同時(shí)也可能會(huì)破壞室內(nèi)的家庭用具和環(huán)境,智能門窗APP就能和好的解決這類問(wèn)題,使得用戶不用為關(guān)窗而浪費(fèi)時(shí)間專門跑回家;同時(shí),現(xiàn)代社會(huì),人們更加注重健康問(wèn)題,優(yōu)良的室內(nèi)空 適宜的開(kāi)/關(guān)程度,主動(dòng)發(fā)送信息通知用戶,從而讓用戶居住在更加健康
17、的空氣環(huán)境中。 1.3 課題主要內(nèi)容 系統(tǒng)基于Android平臺(tái),用戶只需要使用Android手機(jī),就可以實(shí)時(shí)遠(yuǎn)程智能控制家中的門窗,若門窗配備攝像頭,也可以實(shí)時(shí)獲取攝像頭拍攝畫面,從而進(jìn)行監(jiān)控。與此同時(shí),系統(tǒng)會(huì)根據(jù)收集到的環(huán)境參數(shù)進(jìn)行計(jì)算從而來(lái)控制門窗的開(kāi)和關(guān)程度,并進(jìn)行開(kāi)/關(guān)消息的推送。系統(tǒng)主要實(shí)現(xiàn)以下幾點(diǎn)功能: (1)用戶登錄注冊(cè)。 (2)門窗信息管理,添加或刪除門窗信息。 (3)環(huán)境日志、門窗開(kāi)/關(guān)紀(jì)錄查看。 (4)用戶遠(yuǎn)程控制門窗開(kāi)關(guān)。 (5)用戶獲得消息推送,此消息為系統(tǒng)由環(huán)境參數(shù)經(jīng)過(guò)計(jì)算后的門窗開(kāi)/關(guān)信息。 (6)用戶獲得門窗攝像頭實(shí)時(shí)監(jiān)控。 1.4 文
18、章組織結(jié)構(gòu) 本課題主要分析智能門窗的發(fā)展?fàn)顩r,結(jié)合相關(guān)技術(shù),設(shè)計(jì)實(shí)現(xiàn)了“基于Android的智能門窗APP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”,論文分為以下六個(gè)部分: 第一章為緒論,主要分析了智能門窗的研究背景與國(guó)內(nèi)外發(fā)展?fàn)顩r。講述了本課題實(shí)現(xiàn)的意義,最后明確了課題的主要內(nèi)容。 第二章主要介紹了Android系統(tǒng)和其特點(diǎn),同時(shí)也介紹了智能門窗系統(tǒng)中幾個(gè)比較關(guān)鍵的技術(shù),如RTMP協(xié)議和MQTT協(xié)議,最后介紹了服務(wù)器端使用的框架Spring Boot。 第三章對(duì)智能門窗APP系統(tǒng)進(jìn)行了需求分析,分析可行性后明確了課題目標(biāo),再進(jìn)行闡述了系統(tǒng)的業(yè)務(wù)需求、用戶需求和功能需求。 第四章主要對(duì)系統(tǒng)中的數(shù)據(jù)庫(kù)進(jìn)行了詳
19、細(xì)的說(shuō)明,首先闡述了數(shù)據(jù)庫(kù)設(shè)計(jì)的原則,然后描述了系統(tǒng)中的實(shí)體屬性與數(shù)據(jù)庫(kù)中創(chuàng)建的表并繪制了E-R關(guān)聯(lián)圖。 第五章為實(shí)際實(shí)現(xiàn)討論章節(jié),詳細(xì)說(shuō)明了客戶端功能的具體實(shí)現(xiàn)、服務(wù)器端功能的具體實(shí)現(xiàn),并對(duì)系統(tǒng)進(jìn)行了測(cè)試,包括單元模塊測(cè)試和系統(tǒng)整體測(cè)試。 第六章是對(duì)本課題論文的總結(jié),闡述了系統(tǒng)優(yōu)勢(shì)并對(duì)本次實(shí)現(xiàn)的智能門窗系統(tǒng)提出了改進(jìn)的地方,同時(shí)對(duì)它的發(fā)展寄予了展望。 第二章、相關(guān)理論與技術(shù)介紹 2.1 Android系統(tǒng) Android作為一種半開(kāi)源的操作系統(tǒng),最早是由Google和開(kāi)放手持設(shè)備聯(lián)盟開(kāi)發(fā),它基于Linux,支持多種應(yīng)用環(huán)境包括智能手機(jī)、平板電腦等其他移動(dòng)設(shè)備[4]。Androi
20、d系統(tǒng)框架有五個(gè)部分組成:應(yīng)用程序、應(yīng)用程序框架、Android運(yùn)行環(huán)境、系統(tǒng)庫(kù)和Linux內(nèi)核【4】,如下圖2.1所示。 圖2.1 Android系統(tǒng)架構(gòu)圖 (1)應(yīng)用程序(APPLICATIONS) 應(yīng)用程序是由開(kāi)發(fā)人員開(kāi)發(fā),使用java語(yǔ)言編寫的程序,其開(kāi)發(fā)成功后可以將Android中原來(lái)的App替換掉,這一屬性也是安卓平臺(tái)與其他平臺(tái)相比的最大優(yōu)勢(shì)。 (2)應(yīng)用程序框架(APPLICATION FRAMEWORK) 開(kāi)發(fā)者在開(kāi)發(fā)應(yīng)用程序的時(shí)候會(huì)需要相應(yīng)的應(yīng)用程序編程接口,應(yīng)用程序框架就是專門為開(kāi)發(fā)者提供接口的,有了相應(yīng)的API,開(kāi)發(fā)者在編寫應(yīng)用程序時(shí)會(huì)更加通暢,以便開(kāi)
21、發(fā)出高質(zhì)量的程序。 (3)Android運(yùn)行環(huán)境(RUNTIME) Dalvik虛擬機(jī)技術(shù),也就是所謂的Android運(yùn)行環(huán)境,android包含了一組核心庫(kù),其中Java編程語(yǔ)言庫(kù)數(shù)據(jù)庫(kù)內(nèi)核提供了大多數(shù)功能。對(duì)于Android系統(tǒng)而言,每個(gè)應(yīng)用程序都是Dalvik虛擬機(jī)的一個(gè)例子,Dalvik技術(shù)使一臺(tái)設(shè)備可以同時(shí)運(yùn)行多個(gè)虛擬機(jī)。 (4)系統(tǒng)庫(kù)(LIBRARIES) 作為L(zhǎng)inux和APPLICATION FRAMEWORK的連接,APPLICATION FRAMEWORK受到LIBRARIES的支持。因?yàn)橛邢到y(tǒng)庫(kù)的存在,Android系統(tǒng)上的類和組件能夠直接利用C/C++庫(kù),C/C
22、++庫(kù)使得Android系統(tǒng)有了更加豐厚的功能和服務(wù)。 (5)Linux內(nèi)核(LINUX KERNEL) 隨著智能手機(jī)和平板電腦以及外圍設(shè)備的功能越來(lái)越復(fù)雜,需要一種外圍設(shè)備支持操作系統(tǒng),用于管理這些軟件和硬件,以防止濫用和不可預(yù)測(cè)的后果的設(shè)備。首先,內(nèi)核層能夠給予核心的系統(tǒng)服務(wù),如安全性,內(nèi)存管理,管理方法,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)器模型[4],此外,Linux內(nèi)核層也可對(duì)硬件和更高層軟件提供虛擬中間層。 該平臺(tái)的開(kāi)發(fā)使移動(dòng)終端制造商能夠自由的加入到Android系統(tǒng)中,開(kāi)放性的特點(diǎn)使其擁有更多的追隨者和擁護(hù)者,用戶可便捷的將其開(kāi)發(fā)的應(yīng)用植入到Android平臺(tái)上[5]。 在Android應(yīng)
23、用程序的開(kāi)發(fā)中,開(kāi)放性的特征有利于人氣的堆聚,這里的受歡迎程度不僅包括消費(fèi)者,同樣也包含生產(chǎn)者,對(duì)于消費(fèi)者來(lái)說(shuō),它是從豐富的軟件資源中獲益。開(kāi)放平臺(tái)同樣帶來(lái)了更大的競(jìng)爭(zhēng), 因此,消費(fèi)者可以以更低的價(jià)格購(gòu)買想要的手機(jī)。 2.2 通訊協(xié)議 2.2.1 HTTP協(xié)議 超文本傳輸協(xié)議HTTP(Uniform Resource Locators)提供服務(wù)器和網(wǎng)頁(yè)瀏覽器之間的網(wǎng)絡(luò)協(xié)議,傳輸規(guī)范信息。1990年,HTTP協(xié)議就已經(jīng)提供支持,如網(wǎng)絡(luò)傳輸協(xié)議網(wǎng)絡(luò)。七層參考模型是由IOS/OSIHTTP定義的,而超媒體信息系統(tǒng)協(xié)議HTTP則在這模型傳輸層的上一層[6]。HTTP的工作流程是客戶/服務(wù)器模式,
24、詳細(xì)來(lái)說(shuō),客戶就是瀏覽器,而服務(wù)器就是WWW服務(wù)器。在HTTP的工作過(guò)程中,使用的方式是握手方式,即請(qǐng)求/應(yīng)答方式:客戶端連接的過(guò)程中,雙方建立一個(gè)TCP連接,客戶端向請(qǐng)求處理服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器收到請(qǐng)求后進(jìn)行處理,并將處理發(fā)揮到客戶端,完成應(yīng)答,在此之后,服務(wù)器關(guān)閉連接。 2.2.2 MQTT協(xié)議 對(duì)于此次設(shè)計(jì)的智能門窗系統(tǒng)來(lái)說(shuō),消息推送是一個(gè)必不可少的地方,智能門窗是實(shí)時(shí)獲得環(huán)境參數(shù),將對(duì)外界環(huán)境感知處理后的結(jié)果推送到App上,若沒(méi)有推送消息,會(huì)使此App失去時(shí)限性。相比較推送方式,拉取方式是比較繁瑣的,如果用戶需要知道新更新的信息,就需要被動(dòng)的檢查信息是否更新,然后用戶或者
25、應(yīng)用程序才向服務(wù)器發(fā)出請(qǐng)求來(lái)得到想要的新信息,這樣耗時(shí)耗力,對(duì)于智能門窗APP的用戶來(lái)說(shuō)是不便捷的,也不是智能的,環(huán)境隨時(shí)都在變化,若需要用戶實(shí)時(shí)拉取數(shù)據(jù),這與智能門窗APP便捷優(yōu)質(zhì)生活的核心是相違背的。服務(wù)器主動(dòng)的、直接的向用戶發(fā)送更新信息,減少數(shù)量和交互負(fù)載,縮短反應(yīng)時(shí)間,提高效率,最重要的是它不需要用戶的參與,這樣用戶可以在最初的一段時(shí)間內(nèi)實(shí)時(shí)獲取他們需要的信息和內(nèi)容。 在1999年,IBM和Eurotech開(kāi)發(fā)創(chuàng)造了MQTT協(xié)議,MQTT協(xié)議是消息傳輸協(xié)議,其基于發(fā)布/訂閱[7]。有些設(shè)備具有一定的缺陷,如低寬帶,網(wǎng)絡(luò)不穩(wěn)定、計(jì)算處理能力受限等,而MQTT就是為這些設(shè)備設(shè)計(jì)的,MQT
26、T協(xié)議具有很強(qiáng)的優(yōu)勢(shì),低功耗的傳輸協(xié)議可以減少網(wǎng)絡(luò)流量,最大限度地減少數(shù)據(jù)包并有效分配和傳輸,這些特點(diǎn)對(duì)于移動(dòng)系統(tǒng)的應(yīng)用程序來(lái)說(shuō)是十分得當(dāng)?shù)摹? 固定頭、可變頭、有效載荷是MQTT消息體的主要組成部分[7]。無(wú)論是那種類型的消息體,固定頭是一定包含在內(nèi)的。MQTT的消息可以按功能分類,分別為連接類、消息訂閱/發(fā)布類、?;铑?,主要的消息類型及其對(duì)應(yīng)數(shù)值如下表2.1所示。 表2.1 MQTT主要消息類型和對(duì)應(yīng)數(shù)值 Mnemonic Value Mnemonics Value CONNECT 1 UNSUBSCRIBE 10 PUBLISH 3 PINGREQ 12 SU
27、BSCRIBE 8 DISCONNECT 14 服務(wù)器分為三個(gè)層次。第一層是MQTT中間消息推送,這是一種發(fā)送和接收網(wǎng)絡(luò)通信機(jī)制的機(jī)制,負(fù)責(zé)實(shí)現(xiàn)下層協(xié)議和不同類型的消息;第二層通過(guò)認(rèn)證模塊,控制模塊,自動(dòng)ACL訂閱模塊,主題統(tǒng)計(jì)模塊和狀態(tài)監(jiān)控模塊組成,基于改進(jìn)的各種功能的通信機(jī)制是整個(gè)系統(tǒng)的必要應(yīng)用; 第三層是數(shù)據(jù)存儲(chǔ)層,并為第二層的每個(gè)模塊提供支持?jǐn)?shù)據(jù)以與統(tǒng)計(jì)數(shù)據(jù)交互。系統(tǒng)框架如下圖2.2所示。 圖2.2系統(tǒng)框架 MQTT擁有以下幾個(gè)特點(diǎn),首先,MQTT協(xié)議框架簡(jiǎn)單,有利于開(kāi)發(fā)者實(shí)現(xiàn)想要的功能,第二,它的通訊花費(fèi)開(kāi)銷很小,第三,在非正常的網(wǎng)絡(luò)客戶端連接狀態(tài)下,并在斷開(kāi)
28、連接后,可以根據(jù)客戶端的意愿設(shè)置機(jī)制,以發(fā)布通知的形式通知其他客戶端用戶,而這些用戶是對(duì)該用戶狀態(tài)感興趣的用戶。 2.2.3 RTMP協(xié)議 Adobe公司首先提出RTMP協(xié)議。RTMP是實(shí)時(shí)傳輸消息協(xié)議,在客戶端和服務(wù)器端之間傳遞信息,可用于執(zhí)行實(shí)時(shí)數(shù)據(jù)通信,這是專為視頻數(shù)據(jù),音頻,數(shù)據(jù)傳輸協(xié)議而設(shè)計(jì)的,是Flash/AIR平臺(tái)和支持協(xié)議的服務(wù)器之間通信的橋梁[8],與TCP / UDP RTPM傳統(tǒng)的多媒體傳輸協(xié)議相比,它支持多種語(yǔ)音、圖像、腳本從服務(wù)器數(shù)據(jù)到客戶端和客戶端到服務(wù)器等多條線路動(dòng)態(tài)傳輸,RTMP協(xié)議支持分開(kāi)處理視頻中的視頻、音頻,視頻數(shù)據(jù)與聲音不是同樣處理方式,會(huì)被分開(kāi)緩存
29、到服務(wù)器中。 系統(tǒng)中利用此協(xié)議,從服務(wù)器端傳送視頻流到客戶端,從而實(shí)現(xiàn)用戶可以在客戶端實(shí)時(shí)監(jiān)控門窗配置的攝像頭功能。在RTMP視頻系統(tǒng)的基礎(chǔ)上,該系統(tǒng)主要由客戶端,應(yīng)用服務(wù)器,RTMP服務(wù)器,基于數(shù)據(jù)庫(kù)應(yīng)用和其他服務(wù)構(gòu)成,其基本結(jié)構(gòu)如下圖2.3所示。 圖2.4 基于RTMP協(xié)議的視頻體統(tǒng)的基本結(jié)構(gòu) 使用RTMP協(xié)議的系統(tǒng)具有這些特點(diǎn):RTMP協(xié)議可以有效保證多媒體傳輸?shù)馁|(zhì)量,讓用戶可以觀看高質(zhì)量的視頻。無(wú)需安裝客戶端程序,大大簡(jiǎn)化了難度的操作客戶端。 2.3 Spring Boot Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化Sprin
30、g應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。它默認(rèn)配置了很多框架的使用方式,就像Maven整合了所有的jar包,Spring Boot整合了所有的框架。Spring Boot通常需要使用集成開(kāi)發(fā)框架,例如容器(matou,Jettty,Undertow),jms,持久化框架,日志框架 流行的NOSQL數(shù)據(jù)(Cassandra,MongoDB)[9],緩存幀等。 傳統(tǒng)的開(kāi)發(fā)Spring框架中,用戶需要自己編寫一個(gè)XML文件,并在Gradle 、Maven中添加相應(yīng)的依賴包,添加一個(gè)函數(shù)代碼,以響應(yīng)之前的代碼使用。引入多個(gè)依賴包是會(huì)出
31、現(xiàn)一個(gè)難題,就是包與包之間具有版本的區(qū)別,這些版本之間往往有沖突,因此需要對(duì)此進(jìn)行集中處理。這個(gè)沖突需要花費(fèi)很多的時(shí)間和精力。如果開(kāi)發(fā)使用Spring Boot,只有在Gradle、Maven的配置文件中,添加少量配置,就可以運(yùn)用想要使用的框架,以便簡(jiǎn)化配置,XML配置代碼為零,并且Spring Boot對(duì)包版本的依賴問(wèn)題很容易解決。Spring Boot的基礎(chǔ)結(jié)構(gòu)共三個(gè)文件:程序開(kāi)發(fā)以及主程序入口、配置文件、測(cè)試程序。 2.4 MYSQL數(shù)據(jù)庫(kù) MYSQL是一種開(kāi)源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),YSQL擁有的特點(diǎn)對(duì)于個(gè)人或者中小企業(yè)來(lái)說(shuō)是最好的選擇。它擁有多種優(yōu)勢(shì),對(duì)硬件要求較低,因?yàn)?/p>
32、存儲(chǔ)著適中的數(shù)據(jù)量,運(yùn)行時(shí)不會(huì)占用大量?jī)?nèi)存;支持多種操作系統(tǒng),并為多種編程語(yǔ)言提供了API;支持多線路,能夠充分利用CPU資源。這些優(yōu)點(diǎn)使得MYSQL十分受到開(kāi)發(fā)者的歡迎。 2.5 本章小結(jié) 本章是對(duì)課題系統(tǒng)運(yùn)用到的基本知識(shí)和技術(shù)進(jìn)行了簡(jiǎn)單介紹。首先介紹了Android系統(tǒng),分析了其架構(gòu)、特點(diǎn)和優(yōu)勢(shì),其次介紹了相關(guān)的協(xié)議與框架,包括HTTP協(xié)議、MQTT協(xié)議、RTMP協(xié)議和Spring Boot框架。最后概述了MYSQL的概念與優(yōu)勢(shì)。 第三章、需求分析 3.1可行性分析 可行性分析是判斷一個(gè)系統(tǒng)是否可以開(kāi)發(fā)的基礎(chǔ),通過(guò)對(duì)多方面進(jìn)行可行性分析,充分全面的進(jìn)行衡量,避免一有想法就盲目
33、的進(jìn)行系統(tǒng)開(kāi)發(fā),而造成不必要的經(jīng)濟(jì)和人力損失。通常在系統(tǒng)開(kāi)發(fā)的初期階段、從技術(shù)角度、經(jīng)濟(jì)角度、操作角度等進(jìn)行分析,保證系統(tǒng)能夠高效的開(kāi)發(fā)。 (1)技術(shù)可行性 從軟件角度看,本系統(tǒng)采用java語(yǔ)言進(jìn)行編寫,運(yùn)行Intellij IDEA環(huán)境進(jìn)行構(gòu)建,將數(shù)據(jù)通過(guò)MYSQL數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)管理,整體的技術(shù)難度、代碼編寫量較為適中。從硬件角度看,系統(tǒng)基于Android平臺(tái),如今Android系統(tǒng)已十分普及,擁有開(kāi)發(fā)使用的硬件是很方便的。 (2)經(jīng)濟(jì)可行性 系統(tǒng)的經(jīng)濟(jì)可行性的分析主要估算三種費(fèi)用,即開(kāi)發(fā)成本、運(yùn)行成本和后期維護(hù)費(fèi)用。 現(xiàn)在電腦的應(yīng)用已經(jīng)得到了普及,是基礎(chǔ)的信息化設(shè)施,系統(tǒng)開(kāi)發(fā)過(guò)程
34、中使用的編程軟件可以免費(fèi)從網(wǎng)絡(luò)途徑下載安裝,系統(tǒng)的開(kāi)發(fā)使用計(jì)算機(jī)進(jìn)行,開(kāi)發(fā)環(huán)境和開(kāi)發(fā)軟件設(shè)備可以滿足實(shí)現(xiàn)系統(tǒng)。同時(shí),系統(tǒng)所需要的硬件設(shè)備即Android手機(jī)是當(dāng)前社會(huì)普遍使用的智能手機(jī),很容易獲得。 用標(biāo)準(zhǔn)化、智能化的方式幫助用戶解決生活問(wèn)題,從而提高工作效率,從長(zhǎng)遠(yuǎn)來(lái)看,智能化的生活方式是人們逐漸追求的高品質(zhì)的生活方式,因此,其使用人數(shù)在未來(lái)是呈上升趨勢(shì)的。 (3)運(yùn)行可行性 系統(tǒng)的客戶端采用圖形界面方式,簡(jiǎn)單、清晰的頁(yè)面和操作步驟,使用戶可以清楚的了解每個(gè)頁(yè)面的功能,并根據(jù)相應(yīng)關(guān)鍵字來(lái)進(jìn)行相關(guān)操作。對(duì)于絕大多數(shù)用戶來(lái)說(shuō)是可以自主操作的。 3.2系統(tǒng)完成目標(biāo) 智能門窗APP以家
35、庭住宅為平臺(tái),主要使用者是房屋住戶,以為用戶提供舒適、安全、方便和高效率的生活環(huán)境為目標(biāo),通過(guò)該APP來(lái)實(shí)現(xiàn)對(duì)門和窗戶的遠(yuǎn)程智能控制。該系統(tǒng)由服務(wù)器端、客戶端、模擬門窗的網(wǎng)頁(yè)三部分組成。每部分需實(shí)現(xiàn)的目標(biāo)如下: 服務(wù)器端:獲取客戶端開(kāi)/關(guān)門窗請(qǐng)求,將請(qǐng)求傳輸給門窗即模擬門窗開(kāi)/關(guān)的網(wǎng)頁(yè),并反饋給客戶端。從門窗即模擬門窗的網(wǎng)頁(yè)獲取環(huán)境參數(shù),計(jì)算得出門窗適宜開(kāi)/關(guān)程度,主動(dòng)推送此信息流給客戶端。從推流軟件獲取視頻流,并可以傳輸視頻流到客戶端,是智能門窗的中心管理平臺(tái)。 客戶端:為用戶提供便捷、易懂的操作工具,有了其存在,使得門窗設(shè)備的控制行為不僅能在家中實(shí)現(xiàn),擴(kuò)大了人們控制門窗的范圍,是智能門
36、窗系統(tǒng)的重要組成部分。 模擬門窗的網(wǎng)頁(yè):網(wǎng)頁(yè)前端模擬實(shí)際生活中的門窗,顯示模擬得到的環(huán)境參數(shù)和模擬門窗開(kāi)/關(guān)動(dòng)作。 3.3業(yè)務(wù)需求 智能門窗APP系統(tǒng)的核心服務(wù)是推送信息給客戶端實(shí)現(xiàn)遠(yuǎn)程操控門窗設(shè)備。智能門窗APP系統(tǒng)的業(yè)務(wù)需求有:用戶與門窗信息管理;遠(yuǎn)程控制用戶家中的門窗;接收并處理開(kāi)/關(guān)門窗通知;實(shí)時(shí)獲取門窗攝像頭拍攝畫面;獲得環(huán)境變化和門窗開(kāi)關(guān)操作紀(jì)錄。 智能門窗APP系統(tǒng)通過(guò)提供不同的服務(wù),為用戶帶來(lái)了諸多便利: (1)移動(dòng)終端可以隨身攜帶,具有靈活性,用戶可以隨時(shí)隨地控制想要控制的門窗。 (2)通過(guò)開(kāi)/關(guān)門窗提示消息,用戶可以及時(shí)了解門窗狀態(tài)。 (3)為用戶省去很多
37、不必要的繁雜的人為操作,大大提高了用戶的時(shí)間利用效率,增強(qiáng)生活的舒適性和安全性。 3.4 用戶需求 用戶需求是系統(tǒng)設(shè)計(jì)的最核心部分,系統(tǒng)開(kāi)發(fā)的最終目的是完成實(shí)現(xiàn)用戶的大部分需求。智能門窗系統(tǒng)的主要用戶是戶主。建模描述了系統(tǒng)參與外部功能的理解,是用戶要求的最佳實(shí)踐,也可以作為軟件測(cè)試階段的參考標(biāo)準(zhǔn)。 首先為用戶需要建立一個(gè)用例圖模板,然后通過(guò)使用狀態(tài)方案和活動(dòng)案例描述模型中的關(guān)鍵用例。 根據(jù)智能家庭用戶的應(yīng)用程序,基于市場(chǎng)上的類似產(chǎn)品進(jìn)行了廣泛的交流調(diào)查和家庭參考,設(shè)計(jì)了用例模型圖,如下圖3.1所示。 圖3.1 智能門窗APP系統(tǒng)用例模型圖 從圖中可看出,系統(tǒng)用例模型圖主
38、要包含用戶管理用例、門窗管理用例、數(shù)據(jù)查詢用例、信息服務(wù)用例、視頻監(jiān)控用例。 用戶管理用例:指用戶的登陸注冊(cè),與相關(guān)的信息處理。根據(jù)用例繪制出用戶登錄注冊(cè)流程圖如下圖3.2所示, 圖3.2 用戶登錄注冊(cè)流程圖 已經(jīng)注冊(cè)過(guò)的用戶可選擇直接登陸,若需注冊(cè)則進(jìn)入注冊(cè)頁(yè)面,注冊(cè)完成顯示“注冊(cè)成功”并返回登錄頁(yè)面,判斷用戶名是否存在,若不存在進(jìn)入注冊(cè)頁(yè)面,若存在,判斷密碼是否正確,正確則登陸成功,不正確返回登錄頁(yè)面。注冊(cè)時(shí),若輸入已注冊(cè)過(guò)的用戶名,則會(huì)提醒用戶,顯示用戶名已存在,用戶依舊在注冊(cè)頁(yè)面,可再輸入未注冊(cè)過(guò)的用戶名。 門窗管理用例:客戶端中添加或者刪除門窗設(shè)備,修改門窗信息,并通
39、過(guò)門窗管理功能,用戶可以隨時(shí)隨地查看家中門窗的開(kāi)關(guān)狀態(tài),并能遠(yuǎn)程操控這些門窗。根據(jù)門窗管理用例可繪制門窗控制流程圖,如下圖3.3所示。 圖3.3 門窗控制流程圖 用戶選擇需要控制的門窗,查看門窗開(kāi)/關(guān)當(dāng)前狀態(tài),若對(duì)此狀態(tài)滿意則完成操作或返回主界面再選擇其它門窗進(jìn)行控制。若不滿意查看門窗的狀態(tài),則可手動(dòng)修改控制。 數(shù)據(jù)查詢用例:此功能部分可以輔助用戶進(jìn)行其他功能的操作,能夠查詢到門窗的基本信息、環(huán)境日志和門窗開(kāi)關(guān)紀(jì)錄。 信息服務(wù)用例:是智能門窗APP用例模型中的核心部分。通過(guò)信息服務(wù)功能,用戶可以接受門窗根據(jù)環(huán)境自動(dòng)開(kāi)關(guān)的信息推送。它是用戶日常生活的有力保障,用戶可以及時(shí)掌握環(huán)境
40、變化、門窗開(kāi)關(guān)操作。信息推送流程圖如下圖3.4所示。 圖3.4 信息推送流程 信息推送流程為,用戶會(huì)收到服務(wù)器端推送過(guò)來(lái)的信息,此信息為服務(wù)器端根據(jù)獲取的環(huán)境數(shù)據(jù)做出對(duì)門窗開(kāi)/關(guān)程度適宜的判斷,服務(wù)器端直接進(jìn)行判斷后的操作,并將判斷結(jié)果信息推送給客戶端,用戶若滿意此判斷,則不需要進(jìn)行其他操作,若不滿意,則可進(jìn)入門窗控制頁(yè)面,手動(dòng)對(duì)門窗進(jìn)行控制。 視頻監(jiān)控用例:主要指通過(guò)網(wǎng)絡(luò)攝像頭實(shí)時(shí)監(jiān)控門窗場(chǎng)景,用戶可以在客戶端選擇相應(yīng)門窗的視頻進(jìn)行實(shí)時(shí)監(jiān)控。 3.5 功能需求 開(kāi)發(fā)功能的需求功能須在軟件中實(shí)現(xiàn),用戶通過(guò)這些功能來(lái)將任務(wù)實(shí)現(xiàn),從而滿足業(yè)務(wù)請(qǐng)求。根據(jù)3.4節(jié)中的用例模型,本
41、文把智能門窗 APP系統(tǒng)分為窗信息管理模塊、門窗控制模塊、數(shù)據(jù)查詢模型和信息服務(wù)模塊四大模塊,表3.4列舉了每個(gè)模塊的功能項(xiàng)和詳細(xì)描述。 表3.4 功能需求模塊 智能門窗APP 功能模塊 功能項(xiàng) 功能項(xiàng)描述 用戶和門窗信息管理模塊 用戶信息管理 用戶可以完成注冊(cè)和登陸功能。 門窗信息管理 添加、刪除門窗對(duì)象,修改門窗信息。 門窗控制模塊 查看設(shè)備狀態(tài) 用戶可以實(shí)時(shí)查閱家中門窗的開(kāi)關(guān)狀態(tài)。 遠(yuǎn)程操控設(shè)備 用戶可以通過(guò)UI按鈕控制門窗快關(guān)程度。 視頻監(jiān)控 用戶通過(guò)智能手機(jī)實(shí)時(shí)監(jiān)控?cái)z像頭 數(shù)據(jù)查詢模塊 查看環(huán)境日志 用戶可以通過(guò)智能手機(jī)查看環(huán)境日志
42、,從而了解環(huán)境變化。 查看門窗開(kāi)/關(guān)紀(jì)錄 用戶可以通過(guò)智能手機(jī)查看門窗的開(kāi)關(guān)紀(jì)錄和環(huán)境日志。 信息服務(wù)模塊 接收開(kāi)關(guān)門窗通知 服務(wù)器模擬環(huán)境參數(shù),根據(jù)參數(shù)得出開(kāi)關(guān)的程度,默認(rèn)執(zhí)行,用戶可以接收到通知。 3.6本章小結(jié) 本章節(jié)主要撰寫的是系統(tǒng)需求,首先從經(jīng)濟(jì)、技術(shù)和運(yùn)行上進(jìn)行了可行性分析,分析后制定了系統(tǒng)的完成目標(biāo)。再通過(guò)業(yè)務(wù)需求、用于需求和功能需求,制定了詳細(xì)的用例模型、操作流程圖和功能模塊,為系統(tǒng)實(shí)際實(shí)現(xiàn)做準(zhǔn)備。 第四章、數(shù)據(jù)庫(kù)設(shè)計(jì) 4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)原則 在設(shè)計(jì)數(shù)據(jù)庫(kù)之前,要詳細(xì)分析數(shù)據(jù)庫(kù)涉及的多個(gè)方面,如表格的設(shè)計(jì)、表格主鍵之間的關(guān)聯(lián)等等。在指定詳細(xì)周密的計(jì)劃后才
43、能在之后的開(kāi)發(fā)中防止問(wèn)題的發(fā)生,導(dǎo)致重新進(jìn)行設(shè)計(jì)。 數(shù)據(jù)庫(kù)設(shè)計(jì)需要注意以下幾點(diǎn),第一,需要預(yù)留足夠的空間,因?yàn)橄到y(tǒng)開(kāi)發(fā)之前與開(kāi)發(fā)使用之后,數(shù)據(jù)庫(kù)中儲(chǔ)存的數(shù)據(jù)會(huì)成倍的增長(zhǎng),主要由于功能的完善和使用人數(shù)的增加,為了避免因儲(chǔ)蓄空間不做而導(dǎo)致系統(tǒng)出問(wèn)題,需要留有總夠的空間。第二,需要合理安排每個(gè)表之間的關(guān)聯(lián)關(guān)系,在系統(tǒng)數(shù)據(jù)庫(kù)中,每個(gè)表都有可能調(diào)用另一個(gè)表的數(shù)據(jù),因此,為了避免數(shù)據(jù)錯(cuò)誤、訪問(wèn)受限和表格互斥等情況,需要提前分理好各個(gè)表格之間的聯(lián)系,理清互相調(diào)用的表之間的屬性設(shè)置情況。 4.2 數(shù)據(jù)庫(kù)實(shí)體 實(shí)體通常指具有一定特性的,可相互區(qū)別的一類事務(wù)的集合,使用E-R圖表示實(shí)體、屬性、關(guān)系的概念
44、,描述系統(tǒng)的概念模型。 (1)用戶信息E-R圖(如下圖4.1所示),、用戶為一個(gè)實(shí)體,他具有用戶ID、用戶名、手機(jī)號(hào)、密碼這是四個(gè)屬性。 圖4.1 用戶信息E-R圖 (2)門窗信息E-R圖(如下圖4.2所示),從門窗信息E-R圖可以看出,門窗為一個(gè)實(shí)體,門窗ID、用戶ID、名稱、類型、狀態(tài)、是否配有攝像頭這六項(xiàng)為門窗實(shí)體的屬性。 圖4.2 門窗信息E-R圖 (3) 環(huán)境信息E-R圖(如下圖4.3所示),以環(huán)境作為一個(gè)實(shí)體,將環(huán)境的編號(hào)、門窗ID、天氣、光照、溫度、濕度、AQI(空氣質(zhì)量指數(shù))、噪音、環(huán)境類型(門窗外或者門窗內(nèi))這九項(xiàng)為環(huán)境實(shí)物的屬性。 圖4.3
45、環(huán)境信息E-R圖 (4) 日志信息E-R圖(如下圖4.4所示),它以開(kāi)關(guān)門窗日志作為一個(gè)實(shí)體,將編號(hào)、門窗ID、操作類型(開(kāi)關(guān)門窗動(dòng)作程度)這三項(xiàng)作為它的屬性。 圖4.4 日志信息E-R圖 4.3 數(shù)據(jù)庫(kù)表設(shè)計(jì) (1) 用戶信息表,此表中顯示了組成用戶信息的相關(guān)屬性,分別有ID(編號(hào))、Name(用戶名)、Phone(用戶手機(jī)號(hào))、Password(用戶的登陸密碼)。其中ID作為主鍵,除屬性 ID外其他屬性可以為空,ID字段類型為Int,字段長(zhǎng)度為11,其它屬性字段類型為Varchar,字段長(zhǎng)度為45. 表4-1 t_user信息表 字段名稱 字段意義 字段類型
46、 字段長(zhǎng)度 是否是主鍵 是否為空 ID 編號(hào) Int 11 是 否 Name 用戶名 Varchar 45 否 是 Phone 手機(jī)號(hào) Varchar 45 否 是 Password 登錄密碼 Varchar 45 否 是 (2) 門窗信息表,統(tǒng)一門窗信息的表格,其中各項(xiàng)屬性可以表現(xiàn)出門窗的性質(zhì),有ID(門窗編號(hào))、User_ID(用戶編號(hào))、Name(門窗名稱)、Type(門窗類型)、With_camera(是否帶有攝像頭,如果是,則可以查看攝像頭內(nèi)容,如果沒(méi)有,則不能查看),其中ID為此表格的主鍵,字段類型為Int,字段長(zhǎng)度為11
47、,不可為空,User_ID字段類型、長(zhǎng)度與編號(hào)相同,但可以為空,其他屬性,字段類型為Varchar,字段長(zhǎng)度45,可以為空。 表4-2 t_Windows信息表 字段名稱 字段意義 字段類型 字段長(zhǎng)度 是否是主鍵 是否為空 ID 編號(hào) Int 11 是 否 User_ID 用戶編號(hào) Int 11 否 是 Name 門窗名稱 Varchar 45 否 是 Type 門窗類型 Varchar 45 否 是 With_camera 是否帶有攝像頭 Varchar 45 否 是 (3) 環(huán)境信息表是表現(xiàn)門窗周圍環(huán)境的表
48、格,由九項(xiàng)屬性表現(xiàn),分別為ID(環(huán)境編號(hào))、Windows_ID(門窗編號(hào))、Type(環(huán)境類型,是門窗外部環(huán)境還是內(nèi)部環(huán)境)、Weather(天氣:晴天、暴雨等)、Temp(溫度)、Humidity(濕度)、Light(光照)、Sound(噪音)、AQI(空氣質(zhì)量指數(shù)),ID為此表的主鍵,字段類型為Int,字段長(zhǎng)度為11,不可為空。Windows_ID字段類型為Int,字段長(zhǎng)度為11,不是主鍵,可為空,其他屬性字段類型為Varchar,字段長(zhǎng)度為45,不為主鍵可為空。 表4-3 t-environment信息表 字段名稱 字段意義 字段類型 字段長(zhǎng)度 是否是主鍵 是否為空 I
49、D 編號(hào) Int 11 是 否 Windows_ID 門窗編號(hào) Int 11 否 是 Type 門窗內(nèi)外環(huán)境區(qū)分 Varchar 45 否 是 Weather 天氣 Varchar 45 否 是 Temp 溫度 Varchar 45 否 是 Humidity 濕度 Varchar 45 否 是 Light 光照 Varchar 45 否 是 Sound 噪音 Varchar 45 否 是 AQI 空氣質(zhì)量指數(shù) Varchar 45 否 是 (4) 日志信息表是紀(jì)錄開(kāi)關(guān)門窗的紀(jì)錄表,有
50、三個(gè)屬性,分別是ID(紀(jì)錄編號(hào))、Windows_ID(門窗編號(hào))、Type(操作類型:門窗的開(kāi)關(guān)程度紀(jì)錄),其中ID為此表的主鍵,字段類型為Int,字段長(zhǎng)度為11,不可為空。Windows_ID字段類型Int,字段長(zhǎng)度為11可為空。Type字段類型為Varchar,字段長(zhǎng)度為45,可為空。 表4-4 t-record信息表 字段名稱 字段意義 字段類型 字段長(zhǎng)度 是否是主鍵 是否為空 ID 編號(hào) Int 11 是 否 Windows_ID 門窗編號(hào) Int 11 否 是 Type 操作類型 Varchar 45 否 是 4.4 E-
51、R關(guān)聯(lián)圖 通過(guò)對(duì)E-R實(shí)體的構(gòu)建,將實(shí)體相互關(guān)聯(lián),繪制了E-R關(guān)聯(lián)圖,如下圖4.6所示: 圖4.6 E-R關(guān)聯(lián)圖 由圖可清楚的看出各實(shí)體之間的關(guān)聯(lián),用戶實(shí)體管理控制門窗實(shí)體的相關(guān)屬性,為多對(duì)多聯(lián)系;用戶實(shí)體可以查看日志實(shí)體屬性,為一對(duì)多聯(lián)系;門窗實(shí)體紀(jì)錄產(chǎn)生日志實(shí)體,為一對(duì)多聯(lián)系;環(huán)境實(shí)體決定門窗實(shí)體的開(kāi)關(guān)狀態(tài),為多對(duì)多聯(lián)系。 4.5 本章小結(jié) 本章節(jié)主要對(duì)系統(tǒng)中的數(shù)據(jù)庫(kù)進(jìn)行了詳細(xì)的說(shuō)明,首先闡述了數(shù)據(jù)庫(kù)設(shè)計(jì)的原則,然后描述了系統(tǒng)中的實(shí)體屬性與數(shù)據(jù)庫(kù)中創(chuàng)建的表,繪制出實(shí)體間聯(lián)系的E-R圖,并對(duì)此說(shuō)明。 第五章、系統(tǒng)實(shí)現(xiàn) 5.1 客戶端功能實(shí)現(xiàn) 5.1.1 用戶登錄注冊(cè)模
52、塊 用戶登錄頁(yè)面十分簡(jiǎn)潔明了(如下圖5.1所示),首先有“智能門窗APP”的字樣表明系統(tǒng)的主旨,再者有兩個(gè)輸入欄,分別顯示“輸入手機(jī)號(hào)”、“輸入密碼”,提醒用戶將手機(jī)號(hào)作為用戶名輸入,然后輸入正確的登陸密碼。點(diǎn)擊登陸按鈕可登陸系統(tǒng)。如果是沒(méi)有注冊(cè)的新用戶,在頁(yè)面的右下角也有“注冊(cè)新用戶”字樣,點(diǎn)擊可進(jìn)入注冊(cè)頁(yè)面進(jìn)行用戶注冊(cè)。 圖5.1智能門窗APP登陸界面 圖5.2智能門窗APP注冊(cè)界面 用戶注冊(cè)頁(yè)面用于注冊(cè)(如上圖5.2所示),以便登陸APP,注冊(cè)頁(yè)面有“注冊(cè)”二字表明頁(yè)面主要功能,有兩個(gè)輸入欄,分別顯示
53、“輸入手機(jī)號(hào)”、“輸入密碼”,用戶進(jìn)行輸入欄的填寫,并點(diǎn)擊“注冊(cè)”字樣的按鈕完成注冊(cè)操作。同時(shí)頁(yè)面左上角有“返回”字樣,點(diǎn)擊可返回登錄界面。 5.1.2 用戶主界面模塊 成功登陸后進(jìn)入APP的主界面,界面有三個(gè)頁(yè)面,分別為“設(shè)備”、“日志”、“我的”,點(diǎn)擊不同的字樣顯示不同功能的頁(yè)面。點(diǎn)擊“設(shè)備”選項(xiàng),顯示的是門窗列表,如下圖5.3所示,此頁(yè)面用于用戶門窗設(shè)備的管理,如增加設(shè)備和刪除設(shè)備。 此頁(yè)面顯示了用戶具有的門窗信息,可以點(diǎn)擊右上角的“添加”按鈕進(jìn)行門窗設(shè)備的添加,若不需要控制某一個(gè)門窗,則可以直接點(diǎn)擊門窗名稱后的“刪除”按鈕,刪除指定的門窗。同時(shí),點(diǎn)擊門窗名稱可進(jìn)入門窗詳細(xì)管理控制
54、頁(yè)面。 圖5.3智能門窗APP門窗列表 圖5.4門窗添加頁(yè)面 點(diǎn)擊“添加”字樣可進(jìn)入添加設(shè)備頁(yè)面,如上圖5.4所示,有兩個(gè)輸入選項(xiàng),分別為“設(shè)備名稱”、“設(shè)備id”,在輸入欄中輸入設(shè)備的名稱和產(chǎn)品上的id綁定設(shè)備,再點(diǎn)擊“完成添加”從而完成門窗設(shè)備的添加。添加的設(shè)備可以在主界面的設(shè)備頁(yè)面顯示。點(diǎn)擊左上角的“返回”按鈕可以返回管理門窗信息的頁(yè)面。 點(diǎn)擊“日志”字樣后會(huì)進(jìn)入環(huán)境日志即環(huán)境變化紀(jì)錄頁(yè)面,如下圖5.5所示,此頁(yè)面詳細(xì)紀(jì)錄了環(huán)境變化的情況,有時(shí)間紀(jì)錄、環(huán)境各參數(shù)紀(jì)錄、執(zhí)行動(dòng)作紀(jì)錄、是否執(zhí)行成功的顯示,此頁(yè)面有助于用戶清楚的查閱環(huán)境
55、的變化情況以及門窗開(kāi)關(guān)的紀(jì)錄。 圖5.5智能門窗APP環(huán)境日志 圖5.6智能門窗APP個(gè)人中心頁(yè)面 點(diǎn)擊“我的”可進(jìn)入個(gè)人中心界面(如上圖5.6所示),個(gè)人中心界面主要是顯示用戶的相關(guān)信息,主要組成部分有頭像、用戶的ID顯示、設(shè)置、更多智能產(chǎn)品、退出登錄按鈕,點(diǎn)擊“設(shè)置”,可以修改自動(dòng)獲取環(huán)境參數(shù)的時(shí)間間隔,點(diǎn)擊“更多智能產(chǎn)品”可連接至其他相關(guān)智能產(chǎn)品的推薦網(wǎng)頁(yè)。點(diǎn)擊“退出登錄”按鈕,可直接返回登錄界面。 5.1.3 門窗控制模塊 在門窗列表頁(yè)面點(diǎn)擊想要控制的門窗可進(jìn)入設(shè)備詳情頁(yè)面,如下圖5.7所示,設(shè)備詳情頁(yè)面會(huì)表明所進(jìn)入控
56、制的設(shè)備名稱,分別有“門窗攝像頭”、“門窗日志”、“關(guān)閉窗戶”三個(gè)按鈕,點(diǎn)擊“門窗攝像頭”可進(jìn)入實(shí)時(shí)視頻頁(yè)面,如下圖5.8所示,觀察門窗配帶攝像頭拍攝到的畫面。點(diǎn)擊“關(guān)閉門窗”可直接將門窗關(guān)閉,也可以下拉頁(yè)面中的紅點(diǎn),來(lái)控制門窗開(kāi)關(guān)的程度,同時(shí)此頁(yè)面用門窗動(dòng)畫顯示出門窗狀態(tài)。 圖5.7門窗詳細(xì)信頁(yè)面 圖5.8智能門窗APP攝像頭顯示頁(yè)面 選擇需要查看日志的門窗進(jìn)入,然后點(diǎn)擊“門窗日志”可進(jìn)入門窗開(kāi)關(guān)紀(jì)錄頁(yè)面,如下圖5.9所示,在此頁(yè)面中,可以觀察到門窗開(kāi)關(guān)的紀(jì)錄,紀(jì)錄有門窗的開(kāi)/關(guān)動(dòng)作和時(shí)間。 圖5.9智能門窗APP門窗日志界面
57、5.2 服務(wù)器端功能實(shí)現(xiàn) 5.2.1 服務(wù)器端主模塊 服務(wù)器端采用網(wǎng)頁(yè)頁(yè)面來(lái)模擬實(shí)際門窗的開(kāi)關(guān)情況,如下圖5.10所示,頁(yè)面主要由一個(gè)動(dòng)畫的實(shí)時(shí)控制演示,一個(gè)門窗開(kāi)啟程度的進(jìn)度條和“推送環(huán)境信息”按鈕組成,APP中控制門窗的動(dòng)作會(huì)在網(wǎng)頁(yè)上實(shí)時(shí)顯示。點(diǎn)擊“推送環(huán)境消息”按鈕可以向APP實(shí)時(shí)推送環(huán)境信息。 圖5.10服務(wù)器端網(wǎng)頁(yè)頁(yè)面 5.2.2 消息流推送模塊 服務(wù)器端能夠主動(dòng)推送消息到客戶端,主要由MQTT協(xié)議實(shí)現(xiàn)。 (1)使用paho庫(kù)實(shí)現(xiàn)MQTT客戶單,首先在pom文件中移入依賴,EMQServiceImpl.class實(shí)現(xiàn)了對(duì)paho庫(kù)進(jìn)一步的封裝,實(shí)現(xiàn)連接connec
58、t,重連reconnect, 訂閱subscribe和發(fā)布publish等操作。
59、vent contextRefreshedEvent) { System.out.println("啟動(dòng)成功"); if (emqService.connect()) initCallBack(); } (3) 等待連接完成,訂閱預(yù)定號(hào)的話題,實(shí)現(xiàn)對(duì)門窗和客戶端消息的監(jiān)聽(tīng)。 emqService.subscribe("windows/+/env", (s, mqttMessage) -> { log.info(mqttMessage.toString()); }); (4) 發(fā)布消息。
60、 emqService.publish("windows/1/cmd", "cmd;" + level); 以上介紹了MQTT的連接,訂閱和發(fā)布消息等關(guān)鍵代碼,實(shí)現(xiàn)了對(duì)門窗基本的控制。 5.2.3 視頻流推送模塊 推流軟件為OBS 21.1.0,推流服務(wù)端使用百度云的音視頻直播LSS服務(wù),推流軟件界面如下圖5.11所示,將電腦的攝像頭模擬為門窗配帶的攝像頭,點(diǎn)擊“開(kāi)始推送”按鈕,實(shí)時(shí)向攝像頭拍攝到的內(nèi)容推送到服務(wù)器上。 圖5.11推流軟件頁(yè)面顯示 使用RTMP協(xié)議,服務(wù)器端再將視頻流傳輸?shù)娇蛻舳?,如下圖5.12所示,完成一個(gè)門窗的實(shí)時(shí)監(jiān)控。 圖5.12
61、客戶端視頻顯示 5.2.4 家居環(huán)境算法設(shè)計(jì) 每個(gè)門窗有兩組環(huán)境數(shù)據(jù),分別是門窗內(nèi)的數(shù)據(jù)和門窗外的數(shù)據(jù),通過(guò)這兩組數(shù)據(jù),系統(tǒng)計(jì)算出最優(yōu)的門窗開(kāi)啟程度,并發(fā)送到門窗控制器執(zhí)行。 環(huán)境數(shù)據(jù)包含6個(gè)參數(shù),天氣、溫度、濕度、光照、噪音、空氣質(zhì)量指數(shù)(AQI),每個(gè)參數(shù)對(duì)門窗開(kāi)啟程度的決策有不同的影響,如天氣為下雨,則應(yīng)該關(guān)閉門窗,如空氣質(zhì)量很差,則門窗開(kāi)啟程度應(yīng)盡可能小,系統(tǒng)分別對(duì)這6個(gè)參數(shù)進(jìn)行了計(jì)算,得出每個(gè)參數(shù)下門窗開(kāi)啟的程度(百分比表示),最后取最小值,決定門窗最優(yōu)的開(kāi)啟程度。6個(gè)參數(shù)中“天氣”具有最高優(yōu)先級(jí),若數(shù)據(jù)為“雨”,不管其他參數(shù)如何,都會(huì)得到關(guān)閉門窗的結(jié)果,如下表5_1 算法參數(shù)
62、演示表中的結(jié)果是在“天氣”為“晴”的前提下。 表5_1 算法參數(shù)演示表 參數(shù) 門窗外數(shù)據(jù) 門窗內(nèi)數(shù)據(jù) 公式 單參數(shù)門窗開(kāi)啟程度 最終程度值 溫度 30 20 100-|27-20|*10 30 門窗開(kāi)啟程度為12% 濕度 63 89 (63-50)*2 26 光照 66 無(wú) 100-66 34 噪音 47 3 100-(47-3)*2 12 AQI 33 56 33-56+50 27 5.3 系統(tǒng)測(cè)試 系統(tǒng)測(cè)試通過(guò)將開(kāi)發(fā)的系統(tǒng)與用戶的需求進(jìn)行比較,得出不相同的地方,并且根據(jù)這些差異來(lái)改善系統(tǒng)。這些行為的目的是將系統(tǒng)中存在
63、的問(wèn)題盡可能的檢查出來(lái),從而將系統(tǒng)的可靠性提高[10]。 除了開(kāi)發(fā)系統(tǒng)的軟件是系統(tǒng)的測(cè)試對(duì)象,包括的硬件、外部設(shè)備、數(shù)據(jù)、甚至其他的一些支持軟件和接口也是系統(tǒng)測(cè)試的對(duì)象。因此,我們需要組合軟件資源和各種系統(tǒng),在真實(shí)環(huán)境以測(cè)試系統(tǒng)的運(yùn)行。 5.3.1 測(cè)試方法 測(cè)試方法一般有兩種,一是白盒測(cè)試,二是黑盒測(cè)試[11]。白盒測(cè)試注重結(jié)構(gòu),是指測(cè)試程序內(nèi)部是否有根據(jù)需求正常運(yùn)行,當(dāng)然這需要建立在知道程序內(nèi)部的工作過(guò)程的前提下。黑盒測(cè)試注重功能,是指測(cè)試每個(gè)功能是否能夠正常運(yùn)行,但這需要建立在知道系統(tǒng)具體具有哪些功能的前提下。 黑盒測(cè)試是站在用戶的角度看程序,檢查接受輸入數(shù)據(jù)能否輸出正確信息。黑
64、盒測(cè)試時(shí),將程序比作為密封的不透明的黑盒,程序的內(nèi)部結(jié)構(gòu)和特征均不考慮在內(nèi),其只注重外部結(jié)構(gòu)。此系統(tǒng)測(cè)試用的是黑盒測(cè)試方法。 5.3.2 模塊單元測(cè)試 (1)登錄注冊(cè)模塊測(cè)試 輸入正確用戶名和密碼,成功登陸。輸入用戶名和任意錯(cuò)誤密碼或者輸入未注冊(cè)過(guò)的賬號(hào),頁(yè)面出現(xiàn)密碼錯(cuò)誤提示,如下圖5.13所示,會(huì)出現(xiàn)“用戶不存在或密碼錯(cuò)誤”字樣的提醒。點(diǎn)擊進(jìn)入注冊(cè)頁(yè)面,如下圖5.14所示。 圖5.13 登陸報(bào)錯(cuò)頁(yè)面 圖5.14 注冊(cè)頁(yè)面 輸入未注冊(cè)過(guò)的賬號(hào),會(huì)顯示“注冊(cè)成功,請(qǐng)登錄!”字樣,如下圖5.
65、15所示。輸入已經(jīng)注冊(cè)過(guò)的賬號(hào),頁(yè)面會(huì)出現(xiàn)“手機(jī)已存在!”字樣進(jìn)行報(bào)錯(cuò),如下圖5.16所示。 圖5.15 注冊(cè)成功頁(yè)面 圖5.16 注冊(cè)報(bào)錯(cuò)頁(yè)面 (2) 門窗管理模塊測(cè)試 進(jìn)入“設(shè)備”頁(yè)面,進(jìn)行門窗的增加和刪除操作測(cè)試。添加“臥室窗戶3”,頁(yè)面如下圖5.17所示,添加時(shí)會(huì)讓客戶設(shè)置所添加門窗的信息,如下圖5.18所示,是讓用戶選擇添加的設(shè)備類型。 圖5.17 門窗添加測(cè)試 圖5.18 設(shè)備類型選擇 添加完成后會(huì)直接在“設(shè)備”頁(yè)面顯示“添加成功”字樣,添加前后區(qū)別如下
66、圖5.19、下圖5.20所示,門窗列表中會(huì)多出新添加的設(shè)備名稱選項(xiàng)。 圖5.19 添加設(shè)備前頁(yè)面 圖5.20 添加設(shè)備成功頁(yè)面 刪除門窗設(shè)備測(cè)試,例如此次測(cè)試刪除“客廳窗戶”設(shè)備,刪除成功頁(yè)面如上圖5.20、下圖5.21所示,被刪除的設(shè)備選項(xiàng)會(huì)從門窗列表中去除。 圖5.21 門窗設(shè)備刪除成功頁(yè)面 (3)門窗控制模塊測(cè)試 進(jìn)入門窗詳細(xì)頁(yè)面,點(diǎn)擊“關(guān)閉門窗”后,頁(yè)面前后區(qū)別如下圖5.22、下圖5.23所示,動(dòng)態(tài)的畫面會(huì)顯示點(diǎn)擊“關(guān)閉門窗”前窗戶是開(kāi)啟的,之后則是關(guān)起的圖片。 圖5.22 點(diǎn)擊關(guān)窗前頁(yè)面 圖5.23 點(diǎn)擊關(guān)窗后頁(yè)面 拖動(dòng)門窗開(kāi)關(guān)程度條等行為進(jìn)行測(cè)試,拖動(dòng)前后區(qū)別如上圖5.23、下圖5.24所示。 圖5.24 開(kāi)/關(guān)程度條顯示 (3) 視頻監(jiān)控模塊測(cè)試 進(jìn)入門窗詳細(xì)頁(yè)面,點(diǎn)擊“打開(kāi)攝像頭”,測(cè)試是否轉(zhuǎn)入視頻監(jiān)測(cè)頁(yè)面,測(cè)試頁(yè)面如下圖5.25所示,有進(jìn)入視頻實(shí)時(shí)監(jiān)測(cè)頁(yè)面,測(cè)試結(jié)果符合需求。 圖5.25 視頻監(jiān)控測(cè)
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語(yǔ)文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語(yǔ)文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版