(江西理工大學 電氣工程與自動化學院,江西 贛州 341000)
智能家居與傳統意義的樓房相比,它更為舒適、便利、安全。除去建筑物原本的居住功能,它還具有遠程通信、設備自動化等特點。智能家居管理系統能夠將家庭中的設備進行相互連接,并連上互聯網[1]。本文基于TCP/IP協議結合Socket通信、微控制器驅動等技術設計了一個智能云管家系統。
系統功能包括控制端對家居周圍環境參數的檢測和設備的控制;客戶端顯示環境參數以及遠距離調控家居設備;服務端利用數據庫管理用戶信息以及傳遞控制端與客戶端的信息[2]。系統框架如圖1所示。

圖1 系統總體框架
系統選用STM32F103ZET6芯片作為控制核心,負責控制硬件部分的各個模塊以及家居設備,并將溫濕度傳感器采集的數據發送至服務器,同時接收從服務器發來的指令來對家居設備發出控制指令[3]。客戶端使用安卓應用向服務器發送指令并獲得反饋信息。服務器作為系統主體的一個過渡站,操作數據庫存儲和處理客戶端和控制端的信息。
控制端的MCU以及各種模塊初始化完成后向服務端發起連接請求,連接成功后等待服務端發出指令。若接收到的指令是控制指令則對家居設備進行相應控制,若接收到的指令是查詢指令則采集溫濕度參數。
溫濕度傳感器DHT11輸出是數字信號,可以直接連接到STM32的引腳上。DHT11采用單個引腳完成數據傳輸,它傳送的數據為二進制格式,長度為5 B即40 bit,低8位為校驗和,其值為前4個字節相加。前4個字節則分別表示濕度整數部分、濕度小數部分、溫度整數部分和溫度小數部分,則可計算出溫度和濕度的參數大小[4]。
ESP8266模塊所有數據通過串口傳輸,和控制器在共地的前提下連接串口進行指令傳輸。控制器通過向網絡模塊發送AT指令將其設置為STA模式下的TCP客戶端,當接收到設置成功的反饋信息后,就能夠發送連接服務端的AT指令進行連接的建立及信息的傳輸。
服務端是整個系統中的消息處理中心,負責接收控制器端發送的數據并傳送至客戶端,接收客戶端發送的指令發送至控制端,以及對數據庫進行操作。
服務端選擇一個空閑端口建立服務端套接字ServerSocket,等待其他設備連接。連接建立成功后開始收發消息,并通過訪問數據庫存儲進行數據管理。設計選用MySQL關系型數據庫管理系統來存儲、管理用戶信息等數據[5]。服務端流程如圖2所示。

圖2 服務端程序設計流程
用戶需成功注冊并登錄后方可對家居設備進行控制以及對家居環境參數進行查詢[6]。客戶端功能實現包括注冊、登錄、請求、發送及其對應返回的用戶信息反饋、控制請求發送及其對應的家居設備狀態顯示、查詢請求發送及其對應參數顯示。
根據界面設計要求,客戶端實現功能見表1所列。

表1 客戶端功能設計表
界面布局采用操作靈活的RelativeLayout[7]。布局中進行位置設置時用到三類參數:margin、padding和align。三者的區別是:margin表示當前組件距離其父組件在某方向上的邊的距離;padding表示當前組件內的文本距離當前組件某邊的距離;align表示當前組件與指定組件的某邊對齊。
首先確保硬件部分包括控制器、溫濕度傳感器、WiFi模塊引腳連接無誤且各模塊通信正常,隨后確認手機APP處于正常網絡連接狀態且與硬件部分保持相應的測試距離。啟動硬件系統,運行服務器通信程序,打開手機APP連接服務器[8]。用戶登錄成功后,即可對家居設備進行管理,客戶端(手機)設備控制情況如圖3所示。

圖3 設備控制界面
手機控制界面包含各類被控設備的開關控制、數值設定、工作時長設置,以及火警提示圖標。當火警提示圖標變紅時,用戶確認火警信息無誤后可直接點擊頁面下方的紅色電話按鈕緊急撥打火警電話。
經過多次從客戶端發起注冊登錄、設備控制和查詢參數請求進行測試[9],對成功次數進行統計,比對用戶界面顯示數據和實際數據,得到系統測試結果,見表2所列。測試結果表明,系統運行狀態可靠。

表2 APP測試結果
本文通過三端系統設計,制作了一套智能云管家系統。控制端采集室內環境參數,并通過WiFi模塊發送至服務器,實現數據上傳。服務器使用MySQL系統管理數據。客戶端完成云管家通信程序的開發和用戶軟件的設計,實現了指令下達。經測試,云管家系統運行狀態良好、性能穩定。