(江西理工大學(xué) 電氣工程與自動化學(xué)院,江西 贛州 341000)
智能家居與傳統(tǒng)意義的樓房相比,它更為舒適、便利、安全。除去建筑物原本的居住功能,它還具有遠(yuǎn)程通信、設(shè)備自動化等特點(diǎn)。智能家居管理系統(tǒng)能夠?qū)⒓彝ブ械脑O(shè)備進(jìn)行相互連接,并連上互聯(lián)網(wǎng)[1]。本文基于TCP/IP協(xié)議結(jié)合Socket通信、微控制器驅(qū)動等技術(shù)設(shè)計了一個智能云管家系統(tǒng)。
系統(tǒng)功能包括控制端對家居周圍環(huán)境參數(shù)的檢測和設(shè)備的控制;客戶端顯示環(huán)境參數(shù)以及遠(yuǎn)距離調(diào)控家居設(shè)備;服務(wù)端利用數(shù)據(jù)庫管理用戶信息以及傳遞控制端與客戶端的信息[2]。系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)總體框架
系統(tǒng)選用STM32F103ZET6芯片作為控制核心,負(fù)責(zé)控制硬件部分的各個模塊以及家居設(shè)備,并將溫濕度傳感器采集的數(shù)據(jù)發(fā)送至服務(wù)器,同時接收從服務(wù)器發(fā)來的指令來對家居設(shè)備發(fā)出控制指令[3]??蛻舳耸褂冒沧繎?yīng)用向服務(wù)器發(fā)送指令并獲得反饋信息。服務(wù)器作為系統(tǒng)主體的一個過渡站,操作數(shù)據(jù)庫存儲和處理客戶端和控制端的信息。
控制端的MCU以及各種模塊初始化完成后向服務(wù)端發(fā)起連接請求,連接成功后等待服務(wù)端發(fā)出指令。若接收到的指令是控制指令則對家居設(shè)備進(jìn)行相應(yīng)控制,若接收到的指令是查詢指令則采集溫濕度參數(shù)。
溫濕度傳感器DHT11輸出是數(shù)字信號,可以直接連接到STM32的引腳上。DHT11采用單個引腳完成數(shù)據(jù)傳輸,它傳送的數(shù)據(jù)為二進(jìn)制格式,長度為5 B即40 bit,低8位為校驗(yàn)和,其值為前4個字節(jié)相加。前4個字節(jié)則分別表示濕度整數(shù)部分、濕度小數(shù)部分、溫度整數(shù)部分和溫度小數(shù)部分,則可計算出溫度和濕度的參數(shù)大小[4]。
ESP8266模塊所有數(shù)據(jù)通過串口傳輸,和控制器在共地的前提下連接串口進(jìn)行指令傳輸??刂破魍ㄟ^向網(wǎng)絡(luò)模塊發(fā)送AT指令將其設(shè)置為STA模式下的TCP客戶端,當(dāng)接收到設(shè)置成功的反饋信息后,就能夠發(fā)送連接服務(wù)端的AT指令進(jìn)行連接的建立及信息的傳輸。
服務(wù)端是整個系統(tǒng)中的消息處理中心,負(fù)責(zé)接收控制器端發(fā)送的數(shù)據(jù)并傳送至客戶端,接收客戶端發(fā)送的指令發(fā)送至控制端,以及對數(shù)據(jù)庫進(jìn)行操作。
服務(wù)端選擇一個空閑端口建立服務(wù)端套接字ServerSocket,等待其他設(shè)備連接。連接建立成功后開始收發(fā)消息,并通過訪問數(shù)據(jù)庫存儲進(jìn)行數(shù)據(jù)管理。設(shè)計選用MySQL關(guān)系型數(shù)據(jù)庫管理系統(tǒng)來存儲、管理用戶信息等數(shù)據(jù)[5]。服務(wù)端流程如圖2所示。
圖2 服務(wù)端程序設(shè)計流程
用戶需成功注冊并登錄后方可對家居設(shè)備進(jìn)行控制以及對家居環(huán)境參數(shù)進(jìn)行查詢[6]??蛻舳斯δ軐?shí)現(xiàn)包括注冊、登錄、請求、發(fā)送及其對應(yīng)返回的用戶信息反饋、控制請求發(fā)送及其對應(yīng)的家居設(shè)備狀態(tài)顯示、查詢請求發(fā)送及其對應(yīng)參數(shù)顯示。
根據(jù)界面設(shè)計要求,客戶端實(shí)現(xiàn)功能見表1所列。
表1 客戶端功能設(shè)計表
界面布局采用操作靈活的RelativeLayout[7]。布局中進(jìn)行位置設(shè)置時用到三類參數(shù):margin、padding和align。三者的區(qū)別是:margin表示當(dāng)前組件距離其父組件在某方向上的邊的距離;padding表示當(dāng)前組件內(nèi)的文本距離當(dāng)前組件某邊的距離;align表示當(dāng)前組件與指定組件的某邊對齊。
首先確保硬件部分包括控制器、溫濕度傳感器、WiFi模塊引腳連接無誤且各模塊通信正常,隨后確認(rèn)手機(jī)APP處于正常網(wǎng)絡(luò)連接狀態(tài)且與硬件部分保持相應(yīng)的測試距離。啟動硬件系統(tǒng),運(yùn)行服務(wù)器通信程序,打開手機(jī)APP連接服務(wù)器[8]。用戶登錄成功后,即可對家居設(shè)備進(jìn)行管理,客戶端(手機(jī))設(shè)備控制情況如圖3所示。
圖3 設(shè)備控制界面
手機(jī)控制界面包含各類被控設(shè)備的開關(guān)控制、數(shù)值設(shè)定、工作時長設(shè)置,以及火警提示圖標(biāo)。當(dāng)火警提示圖標(biāo)變紅時,用戶確認(rèn)火警信息無誤后可直接點(diǎn)擊頁面下方的紅色電話按鈕緊急撥打火警電話。
經(jīng)過多次從客戶端發(fā)起注冊登錄、設(shè)備控制和查詢參數(shù)請求進(jìn)行測試[9],對成功次數(shù)進(jìn)行統(tǒng)計,比對用戶界面顯示數(shù)據(jù)和實(shí)際數(shù)據(jù),得到系統(tǒng)測試結(jié)果,見表2所列。測試結(jié)果表明,系統(tǒng)運(yùn)行狀態(tài)可靠。
表2 APP測試結(jié)果
本文通過三端系統(tǒng)設(shè)計,制作了一套智能云管家系統(tǒng)。控制端采集室內(nèi)環(huán)境參數(shù),并通過WiFi模塊發(fā)送至服務(wù)器,實(shí)現(xiàn)數(shù)據(jù)上傳。服務(wù)器使用MySQL系統(tǒng)管理數(shù)據(jù)??蛻舳送瓿稍乒芗彝ㄐ懦绦虻拈_發(fā)和用戶軟件的設(shè)計,實(shí)現(xiàn)了指令下達(dá)。經(jīng)測試,云管家系統(tǒng)運(yùn)行狀態(tài)良好、性能穩(wěn)定。