楊文濤,龔 韋,鄭天成,湯志謙
(1.華中科技大學 光學與電子信息學院,武漢 430074;2.武漢智鼎云網絡科技有限公司,武漢 430070)
現(xiàn)代智能家居是以家庭住宅為依托,將計算機網絡通信技術、傳感器技術和自動控制技術等多項技術進行了一體化整合,使人們的家居生活更加舒適、安全、便捷[1-2]。 智能家居系統(tǒng)需要將多種智能家電設備、智能傳感器以及智能網關,按照物聯(lián)網(Internet of Thing,IoT)協(xié)議,實現(xiàn)數(shù)據(jù)共享與控制聯(lián)動工作[3],并且通過因特網使智能家居系統(tǒng)與外部世界相連接,實現(xiàn)用戶對智能家居系統(tǒng)的遠程控制。
傳統(tǒng)智能家居系統(tǒng)的交互通常采用基于程序窗體控件的點觸方式來操控家居設備。 文獻[4]設計了基于QT 智能網關的智能家居系統(tǒng),用戶控制家居設備需要在直接網關應用程序的控制界面進行手動操作。 文獻[5]設計了基于無線藍牙的智能家居系統(tǒng),用戶通過移動終端的APP 界面與家居設備進行交互。 這些智能家居系統(tǒng)存在一些問題:①采用點觸界面控件的人機交互方式顯得低效呆板、缺乏智能;②由于不同廠商提供的智能家居系統(tǒng)實施的標準和方案不統(tǒng)一,對應的用戶客戶端應用程序也互不相同,這不利于智能家居應用的普及和推廣。
微信作為當今最流行的大眾化即時通訊工具[6],擁有極其龐大的用戶群體。 聊天機器人能夠賦予機器設備進行語音或文字交流、 模擬人類對話的能力,從而提供了一種便捷的、智能化的人機交互方式[7]。 微信聊天機器人將微信即時通訊技術與聊天機器人技術2 種應用技術的優(yōu)勢充分融合在一起[8],為一些服務行業(yè)提供了自動客服、自動聊天等新型交互應用功能。
由此,針對傳統(tǒng)智能家居系統(tǒng)不足,本文提出了一種基于微信聊天機器人的智能家居控制系統(tǒng),用戶無需安裝各類客戶端應用程序,只需通過微信聊天的方式就可以對智能家居系統(tǒng)進行高效、智能化的控制和管理,這將很大程度上提升用戶的便捷性,從而提高用戶對智能家居系統(tǒng)的親和度和粘度。
智能家居系統(tǒng)通常采用基本的物聯(lián)網架構,劃分為感知控制層、網絡通信層和應用服務層[9-10],如圖1 所示。
圖1 基于物聯(lián)網的智能家居系統(tǒng)結構Fig.1 Smart home system structure based on IoT
在感知層中,智能家電和各類傳感器等前端感知設備用于采集和上傳數(shù)據(jù),響應智能網關的操控指令。 智能家居系統(tǒng)常規(guī)的功能主要包括安全防盜、火災報警、家用電器等。 溫、濕度傳感器分別采集室內溫度和濕度數(shù)據(jù)。 安全部分主要包含煙霧和紅外探測。 煙霧數(shù)據(jù)通過煙霧傳感器采集。 紅外探測用于紅外傳感器檢測人體紅外輻射,攝像頭主要用于室內視頻監(jiān)控。
在網絡層中,智能家居網關是家居智能化的核心,其主要任務是組建家居網絡環(huán)境、數(shù)據(jù)協(xié)議轉換和傳輸,以便集中實現(xiàn)對家居設備的網絡化、智能化管理控制[11]。 智能網關對前端感知設備的傳感器數(shù)據(jù)進行處理,進而實現(xiàn)系統(tǒng)的各種控制功能。
在應用層中,由云端提供各種應用服務,家庭成員用戶可以利用智能手機、智能平板等終端設備接入智能家居節(jié)點,通過客戶端應用程序向前端感知設備發(fā)送操控命令,實現(xiàn)對家居設備進行遠程操控和管理。
智能網關是整個智能家居的核心[12],除了網關通用功能如設備控制、物聯(lián)網協(xié)議轉換及網絡通訊外,還集成了微信聊天機器人對智能家居系統(tǒng)的聊天控制。
本智能家居系統(tǒng)的智能網關設備采用天啟智能AIO-3399J 核心板開發(fā)設計。 該平臺具有性能優(yōu)越,外設硬件資源豐富的特點,在其內部集成了多種外設接口。 另外,該板卡支持2.4 GHz/5 GHz 雙頻WiFi 網絡接口,通過外接集成AP6356 WiFi 通信模塊實現(xiàn)WiFi 網絡通信。
在系統(tǒng)軟件方面,網關設備采用開發(fā)板自帶的Linux 操作系統(tǒng)和硬件驅動軟件。運行于Linux 系統(tǒng)之上的智能家居系統(tǒng)應用層軟件主要有MQTT 服務器、設備控制器、微信聊天機器人、主控應用程序和云服務客戶端等。 智能家居網關設備的軟硬件系統(tǒng)的設計總體結構如圖2 所示。
圖2 智能網關軟硬件系統(tǒng)設計Fig.2 Design of software and hardware system of intelligent gateway
1.3.1 智能傳感器
對于溫濕度傳感器和煙霧傳感器、安防系統(tǒng)中的紅外傳感器和監(jiān)控攝像頭等都屬于小型功能性的傳感器,可以靈活地部署客廳、臥室、廚房陽臺等處。 這些傳感器通過無線網絡,按照物聯(lián)網協(xié)議將傳感數(shù)據(jù)傳送至網關[13]。 為此,本文選用NodeMCU模塊設計和制作各類傳感器節(jié)點。 NodeMCU 支持MQTT 物聯(lián)網協(xié)議,同時搭載有ESP8266 WiFi 模塊[14],能夠將傳感數(shù)據(jù)直接傳送給智能網關。
具體來說,NodeMCU 開發(fā)板的GPIO 口連接傳感器即可組成相應的各類智能傳感器如DHT11 溫濕度傳感器、MQ-2 煙霧傳感器,紅外傳感器HC-SR501等。此外,監(jiān)控攝像頭考慮采用RT-IoT Camera 可編程物聯(lián)網攝像頭,可以將視頻直接通過WiFi 傳輸給智能網關。
1.3.2 智能家電設備
為了實現(xiàn)對家電設備統(tǒng)一管理, 本文采用NodeMCU+紅外控制器組成的控制板實現(xiàn)對智能家電設備控制。其中,外接紅外發(fā)射器SIR333,紅外接收器VS1838 構成紅外收發(fā)器,它們通過GPIO 端口連接至NodeMCU,組成了NodeMCU 紅外控制板。NodeMCU 接收來自網關的控制指令,將指令轉化為的紅外編碼格式數(shù)據(jù)發(fā)送至家電設備實現(xiàn)對其控制;反之,家電設備將工作狀態(tài)信息也通過紅外接口發(fā)送至控制板和網關。
智能家居控制系統(tǒng)軟件主要包括4 個部分:MQTT 服務器、設備控制器、微信聊天機器人、主控應用程序,各軟件模塊的相互關系如圖3 所示。
圖3 智能網關軟件模塊組成Fig.3 Software modules of intelligent gateway
針對前端各類感知設備,通過MQTT 服務器構建了完整的消息轉發(fā)系統(tǒng),對傳感數(shù)據(jù)進行實時發(fā)布和訂閱主題消息[15]。 采用MQTT 物聯(lián)網協(xié)議組建智能家居系統(tǒng)內部通訊網,有利于降低各個軟件模塊的耦合性,提高了系統(tǒng)的可靠性和擴展性。
為了簡化開發(fā)過程,本文直接選用開源框架Mosquitto 搭建MQTT 服務器。 Mosquito 是一款實現(xiàn)了消息推送協(xié)議MQTT v3.1 的開源消息代理軟件,提供輕量級的, 支持可發(fā)布/可訂閱的消息推送模式。如圖3 左上虛線框對應的MQTT 通訊部分所示,Mosquitto 作為MQTT 服務器實現(xiàn)消息代理。
設備控制器是智能網關的核心組件,負責管理前端感知設備,同時實現(xiàn)設備操作指令與MQTT 消息的相互轉換和傳輸。 如圖3 中左上虛線框對應的MQTT 通訊部分所示, 設備控制器作為MQTT 客戶端,將聊天機器人或主控應用發(fā)送來的控制指令請求轉化為MQTT 消息,通過MQTT 服務器發(fā)布給前端感知設備,前端感知設備接收到此訂閱消息后執(zhí)行對應的硬件操作;反之,前端感知設備將指令執(zhí)行的結果轉化為MQTT 消息推送給設備控制器,并最終傳送給聊天機器人或主控應用。
聊天機器人是家庭成員與前端感知設備溝通的橋梁,它能夠將文字、語音、表情等聊天信息翻譯成控制指令發(fā)送給設備控制器執(zhí)行相應的操作。 聊天機器人主要包括微信接口、聊天引擎兩個部分。
微信接口:采用ItChat-UOS 微信接口,它繼承了ItChat 框架的優(yōu)秀特性, 提供了實現(xiàn)微信聊天的各種接口方法。
聊天引擎:負責聊天任務調度、參數(shù)配置、指令解析與消息回傳等。
家庭成員可利用智能手機的微信程序與智能網關中的微信聊天機器人聊天通訊,進而實現(xiàn)對智能家居的感知設備進行人-人交互, 取代了傳統(tǒng)的基于窗體控件觸控式的人-機交互方式。
主控應用程序是基于Linux 的QT 開發(fā)的桌面應用程序,用戶可以直接在智能網關設備顯示屏上管理和操控各個前端感知設備,同時便于配置智能家居節(jié)點的系統(tǒng)參數(shù),完成初始化工作。 主控應用程序基于HAL 固件庫開發(fā),程序主要包含驅動各模塊運行、顯示操作界面、配置WiFi 網絡、操控和查看傳感器設備工作狀態(tài)。
主控應用程序是直接運行于網關設備上的對智能家居節(jié)點內的前端感知設備進行管理和操控的主程序。 啟動后進入導航主界面, 顯示臥室、客廳、廚房、陽臺等生活場景區(qū)域等,如圖4(a)所示。選擇某個場景區(qū)域,可以顯示對應的智能傳感器或設備的運行狀態(tài)。 如圖4(b)所示,在客廳控制界面中顯示空調的運行狀態(tài)和模式, 監(jiān)控冰箱的溫度、對燈光照明進行控制操作。
圖4 智能網關主控應用程序操作界面Fig.4 Main application operation interface of intelligent gateway
聊天機器人綁定一個微信賬號,該帳號與其他用戶構成一個智能家居節(jié)點家庭群。 當聊天機器人啟動后,登錄微信平臺,獲取家庭群中的聊天信息。聊天引擎將群內聊天信息進行解析成設備控制指令發(fā)送給設備控制器執(zhí)行。 反之,聊天引擎將前端感知設備的傳感數(shù)據(jù)或指令執(zhí)行結果轉換成聊天消息,推送至聊天群內。 下面以打開客廳智能空調為例, 分析基于微信機器人聊天的控制實現(xiàn)過程,流程如圖5 所示,對應的步驟如下:
圖5 微信聊天智能家居控制系統(tǒng)流程Fig.5 Flow chart of smart home control system based on Wechat
(1)家庭成員用戶、微信聊天機器人(設定的一個微信賬號)通過好友設置,組建一個“智能家居節(jié)點微信群”。
(2)運行聊天機器人程序,聊天機器人(名稱為“小雨”)自動登錄微信平臺,上線后在微信群中發(fā)送問候語“Hi,我是小雨”。
(3)家庭成員用戶User1 打開手機端的微信程序,登錄上線后,在微信群中輸入消息:“@ 小雨,打開客廳空調”, 該消息發(fā)送至包括聊天機器人在內的所有群用戶。
(4)聊天引擎對一條消息進行指令解析。 解析成功,提取消息中的關鍵字“打開”、“客廳”、“空調”,將其翻譯成一條控制指令KT_Open,并發(fā)送給設備控制器;如果解析失敗,回到步驟3。
(5)設備控制器程序通過進程通訊方式,接收來自聊天機器人的控制指令后,將控制指令KT_ Open封裝成MQTT 消息MT_ReqMsg,發(fā)送至Mosquitto服務器。
(6)Mosquitto 服務器將MT_Msg 消息轉發(fā)出去,客廳空調控制器通過消息訂閱方式獲取本消息,并解析轉化為客廳空調的操控指令KT_Open 執(zhí)行。
(7)客廳空調控制器將指令KT_Open 執(zhí)行結果KT_Status 數(shù)據(jù)封裝成MQTT 消息MT_ResMsg 發(fā)送至Mosquitto 服務器發(fā)布。
(8)設備控制器利用訂閱方式獲取MT_ResMsg消息,解析得到KT_Status 數(shù)據(jù)。
(9)通過進程通訊方式,聊天機器人接收來自設備控制器的KT_Status 數(shù)據(jù), 聊天引擎將其翻譯轉化為類似 “@User1 客廳空調打開成功”的聊天信息發(fā)送微信群中。
圖6 顯示了用戶通過與微信機器人進行微信聊天,實現(xiàn)了“打開客廳空調”操作過程。
圖6 在微信中打開客廳空調Fig.6 Switch operation to air conditioner on the living room in Wechat app
針對傳統(tǒng)智能家居系統(tǒng)控制方式采用點觸操控界面存在繁瑣、呆板、缺乏智能等問題,本文設計了基于微信聊天機器人的智能家居控制系統(tǒng)。 采用以自然語言為基礎的人-人對話操控方式的智能家居系統(tǒng)具有智慧、高效、人性化的特點。 它不僅克服了傳統(tǒng)智能家居系統(tǒng)在控制方式上的種種弊端,并且給用戶帶來了新奇的體驗感受。