翟佳琪,高智博,申耀輝,張 峰,薛佳誠,李愛寧
(河北水利電力學院電氣自動化系,河北 滄州 061001)
語音控制是人類最自然、最便捷的控制方式。對于智能家居而言,將語音控制技術規模化應用于智能家居已成為未來市場發展的新趨勢之一。當前智能家居系統的控制方式主要用物理按鈕控制和觸摸控制(包括手機),部分智能家居具備了語音控制功能,但是僅局限于室內的近距離語音控制。針對智能家居現狀,本項目基于Android平臺,采用訊飛語音識別技術開發了一款基于Android平臺的音控遠程智能家居系統。
基于Android平臺的音控遠程智能家居系統以安卓系統為核心,通過使用訊飛語音識別技術、GPRS以及4G通信、藍牙通信以及Wi-Fi通信等相關技術,實現系統通過語音對遠程的家居設備(比如照明燈、電視機、空調、冰箱等)進行實時的控制。系統主要分3個功能模塊:語音控制APP、通信模塊、家居控制模塊。系統組成結構如圖1所示。

圖1 系統結構
家居設備主要包括設備控制模塊和無線通信模塊2部分。其中,控制模塊的主要功能是控制設備的啟動/停止;無線通信模塊的主要功能是實現控制端與家居設備之間的指令傳輸,根據家居設備自身的特點及所處位置,選用藍牙模塊、GPRS模塊和Wi-Fi模塊3種通信方式。
控制端模塊主要包括移動控制端和遠程控制平臺2個模塊。其中,移動控制端模塊主要是采用手機、平板等移動終端通過使用藍牙、GPRS以及Wi-Fi通信方式對控制指令進行傳輸,實現對家居設備的實時控制;遠程控制平臺的主要功能是用于遠程顯示家居設備的實時運行狀態,并對家居設備進行遠程控制。
系統實現流程圖如圖2所示。

圖2 流程圖
藍牙模塊:本系統中藍牙通信模塊選用nRF52810,nRF52810基于Nordic成熟的nRF52系列架構,是nRF52系列中功耗最低的產品,nRF52810具有極高能效,并具備全面的自動系統和自適應電源管理功能,同時具有2 Mbps以上吞吐量、更好的共存性和更大的廣播容量。
單片機選擇:本系統選用STC90C516RD單片機,用于家居設備的控制。STC90C516RD單片機具有抗干擾強、功耗低、運算速度高的特點,指令代碼與8051單片機兼容。
Wi-Fi模塊:本系統中Wi-Fi模塊選用ESP8266,ESP8266模塊屬于串口轉無線芯片,內部自帶固件,用戶無需編寫時序信號,操作簡單。
遠程控制平臺:遠程控制平臺采用B/S模式,基于C#.NET+SqlServer數據庫開發實現,主要功能是實時顯示家居設備的運行狀態。
移動控制端:移動控制端APP采用Android Studio開發,通過移動端的Wi-Fi模塊、藍牙模塊以及GPRS卡實現和外景設備的通信。采用訊飛語音模塊實現語音識別[1-3],并將語音指令轉化為二進制指令,通過通信模塊發送到家居設備端。移動控制端APP界面如圖3所示。

圖3 移動端APP界面
語音識別:課題中指令語音的識別基于訊飛語音開發包。具體實現步驟如下。
注冊訊飛開發者賬號。
下載訊飛語音Android SDK。
創建Android Studio工程。
配置資源文件,將jar包添加到在工程libs下。
打開AndroidManifest.xml,增加權限配置,具體代碼如下:


Wi-Fi編程實現:本課題為實現Android平臺和家居設備的通信,采用ESP8266 Wi-Fi模塊。通過Wi-Fi模塊實現Android端和家居設備控制端硬件部分處于同一個局域網,Android端和家居設備控制端通信通過socket編程實現,數據的發送與接收基于IO流實現。
具體實現步驟如下。
打開AndroidManifest.xml,增加權限配置。

創建一個發送/接受類,內容為發送和接收的代碼。包括IP值、端口port值、“控制指令”變量、套接字打開/關閉、多線程數據發送/接收等。
藍牙編程實現:本課題為實現Android平臺和家居設備之間的通信,同時采用了藍牙模塊。Android平臺和家居設備之間通過BluetoothSocket實現網絡通信,主要用到BluetoothAdapter、BluetoothGatt、BluetoothDevice、BluetoothCattService以及Bluetooth CattCharacteristic幾個類。
具體實現步驟如下。
打開AndroidManifest.xml,增加權限配置。
由于采用的是Android9.0版本,權限增加過程為:


動態設置完權限后,打開GPS。掃描周圍藍牙設備。通過廣播的方式接收掃描結果。開啟配對藍牙,通過廣播的方式接收配對結果,連接藍牙,數據傳輸。
本論文基于Android平臺開發了一款基于語音的遠程智能家居控制系統。系統使用語音對相關操作進行控制,解放了人們的雙手,簡化了傳統使用按鍵控制的煩瑣操作,進一步增加了終端設備控制家居的簡便性、互動性和實用性。