王二飛
摘要:隨著國(guó)家經(jīng)濟(jì)發(fā)展水平的不斷進(jìn)步,我國(guó)社會(huì)基本矛盾已發(fā)生變化,人民群眾對(duì)生活質(zhì)量提出了更高要求。“家”是人們生活的港灣,在信息技術(shù)急速發(fā)展的今天,智能家居已經(jīng)成為大部分家庭的家居選擇。目前,市面上比較先進(jìn)的智能家居軟件以Qt為技術(shù)基礎(chǔ),軟件技術(shù)架構(gòu)為C/S模式,通過(guò)Linux平臺(tái),實(shí)現(xiàn)了編程、通信、服務(wù)器建設(shè)及數(shù)據(jù)庫(kù)構(gòu)建等一系列目標(biāo),滿足了人們對(duì)于智能家居管理的控制及人機(jī)互動(dòng)等需求。文章圍繞“基于Qt的智能家居管理軟件設(shè)計(jì)”這一話題進(jìn)行了研究和探討.
關(guān)鍵詞:Qt;智能家居:管理軟件:設(shè)計(jì)
中圖分類號(hào):TP39
文獻(xiàn)標(biāo)志碼:A
0 引言
智能家居是近年來(lái)家居行業(yè)發(fā)展的主要趨勢(shì),這一現(xiàn)象出現(xiàn)的原因一方面是信息技術(shù)當(dāng)前已經(jīng)滲透到社會(huì)發(fā)展的各個(gè)行業(yè)之中,成為各個(gè)行業(yè)發(fā)展的“指向標(biāo)”:另一方面是人們已經(jīng)感受到了信息技術(shù)在生活中的便捷性,生活質(zhì)量越來(lái)越高,簡(jiǎn)單的智能家居已經(jīng)難以滿足人們對(duì)于家居的需求。進(jìn)行家居管理軟件設(shè)計(jì)是未來(lái)行業(yè)謀求發(fā)展,滿足消費(fèi)者需求,拓寬市場(chǎng)的主要方式,Qt是實(shí)現(xiàn)這一目標(biāo)的技術(shù)基礎(chǔ)。
1 Qt簡(jiǎn)介
Qt指的是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架,其中有不少白定義的C++類庫(kù),使用者使用帶UI界面的QWidget能夠在短時(shí)間內(nèi)編寫可視化圖形界面用戶端,使用QTcpSocket類能夠進(jìn)行網(wǎng)絡(luò)通信[1]。Linux系統(tǒng)是網(wǎng)絡(luò)得以運(yùn)行的關(guān)鍵,線程池thread-pool模式是服務(wù)器正常運(yùn)行的基礎(chǔ),之所以這樣說(shuō),是因?yàn)樯鲜鱿到y(tǒng)和模式能夠避免網(wǎng)絡(luò)進(jìn)行新請(qǐng)求接收的時(shí)候服務(wù)器出現(xiàn)持續(xù)線程構(gòu)建、進(jìn)程銷毀的問(wèn)題,使得CPU的使用效率不斷提高?,F(xiàn)下發(fā)展勢(shì)頭比較猛的無(wú)線通信技術(shù)是ZigBee技術(shù),作為一種短距離無(wú)線通信技術(shù),其耗能低的同時(shí)還能夠在工控場(chǎng)合被應(yīng)用,技術(shù)波段為2.4 GHz,應(yīng)用了跳頻及擴(kuò)頻技術(shù)[2]。
2 系統(tǒng)設(shè)計(jì)需求及整體構(gòu)建
2.1 系統(tǒng)設(shè)計(jì)需求
智能家居系統(tǒng)作為一個(gè)整體系統(tǒng),首先要對(duì)空氣中的溫濕度、光照強(qiáng)度、氣體濃度等重要環(huán)境因素進(jìn)行準(zhǔn)確感知,感知工具為傳感器,之后系統(tǒng)需要依據(jù)傳感器提供的環(huán)境因素對(duì)家中的家居設(shè)備如電燈、空調(diào)、冰箱等進(jìn)行控制,這是系統(tǒng)自身運(yùn)行的需求[3]。對(duì)于使用者而言,其需求為對(duì)系統(tǒng)進(jìn)行良好控制,需要通過(guò)一個(gè)專門的控制App客戶端解決,App客戶端的功能設(shè)計(jì)不用過(guò)于復(fù)雜,用戶登錄之后用攝像頭遠(yuǎn)程監(jiān)控并實(shí)現(xiàn)對(duì)家居設(shè)計(jì)的控制[4]。
2.2基于Ot的智能家居管理軟件系統(tǒng)整體構(gòu)建
2.2.1 整體設(shè)計(jì)
智能家居系統(tǒng)結(jié)構(gòu)包含遠(yuǎn)程控制、網(wǎng)絡(luò)通信、家庭網(wǎng)關(guān)及網(wǎng)絡(luò)4部分組成。系統(tǒng)核心以家庭網(wǎng)關(guān)為中心,橫跨ZigBee、GPRS/GSM及WiFi網(wǎng)絡(luò),組成一個(gè)在PC、智能手機(jī)及電腦等智能設(shè)備上皆可以實(shí)現(xiàn)遠(yuǎn)程控制的智能家居網(wǎng)絡(luò)系統(tǒng)[5]。智能家居系統(tǒng)的功能主要包括遠(yuǎn)程控制和家庭電器信息采集兩方面,實(shí)現(xiàn)這兩項(xiàng)功能都需要用到智能家居管理App客戶端,用戶需要先在App客戶端完成注冊(cè),登錄之后進(jìn)入家居設(shè)備操作界面,界面中的信息為電器丁作情況(主要依靠家庭網(wǎng)關(guān))。用戶能夠在界面中看到家中電器設(shè)備具體情況、攝像頭監(jiān)控畫面等,還能夠看到當(dāng)?shù)靥鞖馇闆r。App客戶端會(huì)向家庭網(wǎng)關(guān)發(fā)送JSON格式的白定義通信協(xié)議,家庭網(wǎng)關(guān)服務(wù)器在接收到信息之后會(huì)向App客戶端進(jìn)行反饋[6]。
2.2.2 設(shè)計(jì)重點(diǎn)
(1)家庭網(wǎng)關(guān)。
家庭網(wǎng)關(guān)在智能家居系統(tǒng)設(shè)計(jì)中占據(jù)著十分關(guān)鍵的地位,是系統(tǒng)的整體控制核心,是家庭網(wǎng)絡(luò)連接外部網(wǎng)絡(luò)重要程序,家庭網(wǎng)關(guān)軟件需要應(yīng)用分層結(jié)構(gòu),結(jié)構(gòu)由底層驅(qū)動(dòng)、Embedded系統(tǒng)、庫(kù)和應(yīng)用程序4部分組成,庫(kù)及應(yīng)用程序的移植是設(shè)計(jì)重點(diǎn)[7]。服務(wù)器應(yīng)用Qt開(kāi)發(fā),同時(shí)在Linux平臺(tái)上運(yùn)行。系統(tǒng)不僅要運(yùn)行,還要讀取和存儲(chǔ)數(shù)據(jù),因此還需要數(shù)據(jù)庫(kù)進(jìn)行支撐,系統(tǒng)中的數(shù)據(jù)庫(kù)為SQlice,這是一種專用于Linux平臺(tái)的輕型數(shù)據(jù)庫(kù)[8]。
solite是一種專用于Linux平臺(tái)的小型數(shù)據(jù)庫(kù),其與一般數(shù)據(jù)庫(kù)最大的區(qū)別在于這種數(shù)據(jù)庫(kù)的尺寸更小,操作起來(lái)也更為簡(jiǎn)便,但是其他方面與一般數(shù)據(jù)庫(kù)并沒(méi)有太大區(qū)別,系統(tǒng)需要獲取采集的數(shù)據(jù)以及家中電器的運(yùn)行情況[9]。Qt中的QSql模塊能夠?qū)?shù)據(jù)庫(kù)進(jìn)行支持,技術(shù)人員要發(fā)揮QSql模塊中類的作用,需要在pro文件中插入“Qt+= sql”代碼[10]。
Qt對(duì)QSqlQuery類進(jìn)行應(yīng)用需要對(duì)soL語(yǔ)句或是SQL模型類QSqITableModel執(zhí)行完成增刪改查數(shù)據(jù)庫(kù)這個(gè)過(guò)程。技術(shù)人員在最開(kāi)始的時(shí)候需要應(yīng)用SQLite database hrowser工具對(duì)數(shù)據(jù)庫(kù)(smarthome.db)進(jìn)行構(gòu)建,在smarlhome.db構(gòu)建完成之后建立用戶信息、傳感器以及傳感器情況實(shí)時(shí)獲知程序[11]。
家庭網(wǎng)關(guān)軟件設(shè)計(jì)主要包含以下5點(diǎn):
①SQlice數(shù)據(jù)庫(kù)移植,確保Linux平臺(tái)為數(shù)據(jù)庫(kù)提供支持。
②Qt/Embedded軟件支持庫(kù)移植,確保Linux平臺(tái)為Qt運(yùn)行提供支持。
③SYSZUXpinyin移植.SYSZUXpinyin是一類輸入法。
④Hostapd( Host Ac.cess Point)移植,為無(wú)線路由器進(jìn)行網(wǎng)卡配置。
⑤服務(wù)器軟件設(shè)計(jì),這是本文工作的重點(diǎn)。
由于智能家居管理App客戶端與服務(wù)器控制界面差別不大,這里主要對(duì)服務(wù)器軟件設(shè)計(jì)進(jìn)行介紹。軟件功能主要對(duì)App客戶端請(qǐng)求進(jìn)行響應(yīng)、對(duì)數(shù)據(jù)進(jìn)行收集、存儲(chǔ)及反饋,命令操作能夠完成各類復(fù)雜功能。App客戶端運(yùn)行完成之后會(huì)轉(zhuǎn)到用戶登錄界面,用戶登錄完成之后,可以在主界面看到“設(shè)備情況”“設(shè)備控制”“監(jiān)控查詢”等功能[12]。
(2)基于Qt的智能家居管理軟件架構(gòu)。
智能家居管理軟件設(shè)計(jì)的結(jié)構(gòu)為C/S結(jié)構(gòu),這一結(jié)構(gòu)是目前最先進(jìn)也是軟件設(shè)計(jì)企業(yè)最常用的一種結(jié)構(gòu)。這種結(jié)構(gòu)的優(yōu)勢(shì)在于能夠使App客戶端和服務(wù)器一同進(jìn)行計(jì)算機(jī)任務(wù),這樣不僅能夠確保對(duì)資源進(jìn)行最大程度利用,還能夠最大幅度提高系統(tǒng)運(yùn)行速度。系統(tǒng)程序包含App客戶端及服務(wù)器,服務(wù)器對(duì)家庭網(wǎng)關(guān)進(jìn)行連接,App客戶端在幫助系統(tǒng)對(duì)服務(wù)器進(jìn)行訪問(wèn)同時(shí)讀取家庭網(wǎng)絡(luò)數(shù)據(jù)并對(duì)服務(wù)器進(jìn)行反饋,完成控制。服務(wù)器在接到命令之后會(huì)將數(shù)據(jù)存儲(chǔ)同時(shí)轉(zhuǎn)發(fā)App客戶端命令。
服務(wù)器和App客戶端的技術(shù)依據(jù)為TCP( Transmission Control Prolocol)中的socket通信,這種通信方式傳播速度快,可靠性高,無(wú)需獲取復(fù)雜信息,只需獲取固定的IP地址和端口號(hào),即可使用C/S模式構(gòu)建TCP協(xié)議,實(shí)現(xiàn)不同通信進(jìn)程間之間的連接。Transmlssion Control Protocol本質(zhì)是一種傳輸協(xié)議,這種傳輸協(xié)議的作用是進(jìn)行數(shù)據(jù)連接。Qt用于連接TCP客戶端及服務(wù)器的程序?yàn)镼TcpSocket類及QTcpServer類。QTcpSocket類的作用是為TCP協(xié)議提供通用接口,用以完成其他標(biāo)準(zhǔn)協(xié)議。
(3)槽編程。
Qt信號(hào)——槽機(jī)制的作用是實(shí)現(xiàn)不同對(duì)象通信,槽機(jī)制的作用在Qt編程全程中都可以看到。對(duì)象情況轉(zhuǎn)變之后會(huì)發(fā)出信號(hào),槽一般情況下屬于類中函數(shù),作用是對(duì)信號(hào)進(jìn)行接收,各個(gè)程序之間依靠connect函數(shù)進(jìn)行連接,在接收到相關(guān)信號(hào)之時(shí)啟動(dòng)對(duì)應(yīng)的槽函數(shù)。系統(tǒng)軟件設(shè)計(jì)中包含非常多的信號(hào)槽編程。
3基于Qt的智能家居管理軟件運(yùn)行流程
3.1 登錄
客戶端App會(huì)應(yīng)用到Windows系統(tǒng)中的Qt4.6軟件。Qt程序中,軟件應(yīng)用最開(kāi)始需要用到mam.cpp,在其中創(chuàng)設(shè)QWidget對(duì)象,普通窗口用QWidget類表示,其中還包含QObect及QPaintDevice類,其余窗口繼承于QWidget類,Login.UI文件能夠?qū)崿F(xiàn)對(duì)智能家居管理軟件的可視化編輯,具體表現(xiàn)為智能家居管理軟件登錄界面(見(jiàn)圖1)。之后UI界面按鈕會(huì)跳轉(zhuǎn)至槽,同時(shí)在系統(tǒng)中加上QAbstractButton類對(duì)象中的clicked()事件,Qt軟件此時(shí)會(huì)白動(dòng)將槽函數(shù)聲明和相應(yīng)的信號(hào)函數(shù)生成并在之后的運(yùn)行過(guò)程中展示出來(lái)。若系統(tǒng)需要UI界面進(jìn)行跳轉(zhuǎn),需要提前在主界面的相關(guān)文件中增加子界面運(yùn)行要求,之后在主界面的cpp文件中構(gòu)建子界面類對(duì)象,同時(shí)對(duì)子對(duì)象進(jìn)行調(diào)用,此外還需要將主界面UI關(guān)閉。
3.2 注冊(cè)
新用戶將軟件打開(kāi)之后需要進(jìn)行注冊(cè),用戶在進(jìn)入到注冊(cè)界面之后先需要輸入賬號(hào)、手機(jī)號(hào)進(jìn)行注冊(cè)(注冊(cè)需要手機(jī)接收驗(yàn)證碼并設(shè)置密碼)??蛻敉瓿蛇@一系列操作之后,客戶端App將新用戶的信息依靠socket請(qǐng)求傳輸給服務(wù)器,用戶若注冊(cè)成功,服務(wù)器同樣會(huì)依靠socket返回注冊(cè)成功標(biāo)識(shí)信息給客戶端App。如果客戶在再次登錄的時(shí)候忘記密碼,只需要進(jìn)入到找回密碼界面即可(見(jiàn)圖2).在“找回密碼”這一界面,用戶只要正確填寫注冊(cè)時(shí)的賬號(hào)及手機(jī)號(hào)就能夠成功修改密碼。用戶在這個(gè)過(guò)程中可以接著使用原用戶名,應(yīng)用新密碼。在用戶正確輸入自己要用的賬號(hào)密碼之后,就可以進(jìn)入智能家居管理系統(tǒng)的主界面。
3.3 控制
智能家居管理軟件控制主要分為手動(dòng)控制和自動(dòng)控制兩種,具體控制方式如下所示。
3.3.1 手動(dòng)控制
用戶在智能家居管理軟件主界面能夠?qū)彝ED、風(fēng)扇、空調(diào)及冰箱等家居設(shè)備進(jìn)行手動(dòng)控制,系統(tǒng)會(huì)對(duì)溫濕度傳感器提取到的溫濕度數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示。用戶只要連接網(wǎng)絡(luò)并打開(kāi)定位,便能夠從App中獲知所在城市的天氣狀況。智能家居管理軟件查詢天氣依靠的是瀏覽器中的開(kāi)發(fā)者工具,在獲知當(dāng)?shù)靥鞖忸A(yù)報(bào)中的天氣情況的同時(shí)還需要讀取Body、Header信息,應(yīng)用在線HTTP接口測(cè)試T具測(cè)試可以得到JSON格式天氣數(shù)據(jù),利用weacher.cpp解析JSON數(shù)據(jù)之后依靠QWidget類對(duì)象在UI界面中顯示相關(guān)數(shù)據(jù)。
3.3.2 自動(dòng)控制
智能家居管理軟件處在自動(dòng)控制模式狀態(tài)下,系統(tǒng)能夠依據(jù)當(dāng)下環(huán)境對(duì)家中電氣設(shè)備進(jìn)行智能化控制。若溫濕度傳感器感知到的室內(nèi)溫度在30℃時(shí),控制系統(tǒng)會(huì)自動(dòng)將空調(diào)打開(kāi)。若溫濕度傳感器感知到的室內(nèi)溫度比26℃低時(shí),控制系統(tǒng)會(huì)自動(dòng)將空調(diào)關(guān)閉。同理,傳感器在測(cè)試到室內(nèi)一氧化碳濃度過(guò)高的時(shí)候,系統(tǒng)會(huì)立即向用戶進(jìn)行反饋。
4 結(jié)語(yǔ)
總而言之,在當(dāng)下我國(guó)已經(jīng)實(shí)現(xiàn)全面小康,向社會(huì)主義現(xiàn)代化邁進(jìn)的背景下,群眾生活水平出現(xiàn)了大幅度提升,對(duì)于生活質(zhì)量提出了自動(dòng)化及智能化要求,這一點(diǎn)在家居行業(yè)中體現(xiàn)得尤為明顯。家居行業(yè)要滿足消費(fèi)者需求,必須提高對(duì)智能家居管理軟件設(shè)計(jì)工作的重視,以Qt為技術(shù)框架,通過(guò)Linux平臺(tái),為消費(fèi)者提供一個(gè)良好的智能家居控制管理體驗(yàn)。
參考文獻(xiàn)
[1]張純楊,張昊德,笪慶,等.一種基于Qt界面的多圖像拼接軟件的實(shí)現(xiàn)方法及其系統(tǒng):202010480639.[P].2020-05 -30.
[2]潘志安,高知林,秦華旺,等.基于Qt的地鐵站智能照明系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2020( 10):113 -115.
[3]何勇,王曉麗,肖海飛,等.基于物聯(lián)網(wǎng)的非侵入式用電器在線監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].智能計(jì)算機(jī)與應(yīng)用,2021(12):158-170.
[4]侯健明,靜國(guó)剛,吳松洋,等.基于QT的網(wǎng)絡(luò)設(shè)備拓?fù)涔芾砥脚_(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2022(1):87-88.
[5]邵春雨,李春輝.基于PLC的智能家居控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].沈陽(yáng)工程學(xué)院學(xué)報(bào)(自然科學(xué)版),2022(2):86-89.
[6]渠吉慶,陳禹,劉玉琪,等.基于語(yǔ)音識(shí)別智能家居系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2020( 12):148-152.
[7]王超.基于s3c2410和Qt/Embedded嵌入式實(shí)驗(yàn)演示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].文山學(xué)院學(xué)報(bào),2022(2):65-67.
[8]李繼紅,安迎建.基于51單片機(jī)的智能家居火災(zāi)報(bào)警的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2021(12):60-61.
[9]楊蝶,王銀玲,張伊洛.基于SVM-Qt的廢舊織物顏色識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦,2020(14):122-125.
[10]王斌,宋樹(shù)祥,王宜瑜,等.基于Qt與ArmNN的嵌入式噴碼檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算技術(shù)與自動(dòng)化,2020(1):54-60。
[11]高昕悅,趙宇鴻,李達(dá),等.基于ANSYS的亥姆霍茲線圈磁場(chǎng)分布研究實(shí)驗(yàn)[J].實(shí)驗(yàn)技術(shù)與管理,2021(5):175-179,186.
[12]路云靜,唐海萍.生態(tài)系統(tǒng)文化服務(wù)研究進(jìn)展——基于CiteSpace的可視化分析[J].北京師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2021( 4):524-532.
(編輯李春燕)