翟佳琪,高智博,申耀輝,張 峰,薛佳誠,李愛寧
(河北水利電力學(xué)院電氣自動化系,河北 滄州 061001)
語音控制是人類最自然、最便捷的控制方式。對于智能家居而言,將語音控制技術(shù)規(guī)?;瘧?yīng)用于智能家居已成為未來市場發(fā)展的新趨勢之一。當(dāng)前智能家居系統(tǒng)的控制方式主要用物理按鈕控制和觸摸控制(包括手機(jī)),部分智能家居具備了語音控制功能,但是僅局限于室內(nèi)的近距離語音控制。針對智能家居現(xiàn)狀,本項(xiàng)目基于Android平臺,采用訊飛語音識別技術(shù)開發(fā)了一款基于Android平臺的音控遠(yuǎn)程智能家居系統(tǒng)。
基于Android平臺的音控遠(yuǎn)程智能家居系統(tǒng)以安卓系統(tǒng)為核心,通過使用訊飛語音識別技術(shù)、GPRS以及4G通信、藍(lán)牙通信以及Wi-Fi通信等相關(guān)技術(shù),實(shí)現(xiàn)系統(tǒng)通過語音對遠(yuǎn)程的家居設(shè)備(比如照明燈、電視機(jī)、空調(diào)、冰箱等)進(jìn)行實(shí)時的控制。系統(tǒng)主要分3個功能模塊:語音控制APP、通信模塊、家居控制模塊。系統(tǒng)組成結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
家居設(shè)備主要包括設(shè)備控制模塊和無線通信模塊2部分。其中,控制模塊的主要功能是控制設(shè)備的啟動/停止;無線通信模塊的主要功能是實(shí)現(xiàn)控制端與家居設(shè)備之間的指令傳輸,根據(jù)家居設(shè)備自身的特點(diǎn)及所處位置,選用藍(lán)牙模塊、GPRS模塊和Wi-Fi模塊3種通信方式。
控制端模塊主要包括移動控制端和遠(yuǎn)程控制平臺2個模塊。其中,移動控制端模塊主要是采用手機(jī)、平板等移動終端通過使用藍(lán)牙、GPRS以及Wi-Fi通信方式對控制指令進(jìn)行傳輸,實(shí)現(xiàn)對家居設(shè)備的實(shí)時控制;遠(yuǎn)程控制平臺的主要功能是用于遠(yuǎn)程顯示家居設(shè)備的實(shí)時運(yùn)行狀態(tài),并對家居設(shè)備進(jìn)行遠(yuǎn)程控制。
系統(tǒng)實(shí)現(xiàn)流程圖如圖2所示。
圖2 流程圖
藍(lán)牙模塊:本系統(tǒng)中藍(lán)牙通信模塊選用nRF52810,nRF52810基于Nordic成熟的nRF52系列架構(gòu),是nRF52系列中功耗最低的產(chǎn)品,nRF52810具有極高能效,并具備全面的自動系統(tǒng)和自適應(yīng)電源管理功能,同時具有2 Mbps以上吞吐量、更好的共存性和更大的廣播容量。
單片機(jī)選擇:本系統(tǒng)選用STC90C516RD單片機(jī),用于家居設(shè)備的控制。STC90C516RD單片機(jī)具有抗干擾強(qiáng)、功耗低、運(yùn)算速度高的特點(diǎn),指令代碼與8051單片機(jī)兼容。
Wi-Fi模塊:本系統(tǒng)中Wi-Fi模塊選用ESP8266,ESP8266模塊屬于串口轉(zhuǎn)無線芯片,內(nèi)部自帶固件,用戶無需編寫時序信號,操作簡單。
遠(yuǎn)程控制平臺:遠(yuǎn)程控制平臺采用B/S模式,基于C#.NET+SqlServer數(shù)據(jù)庫開發(fā)實(shí)現(xiàn),主要功能是實(shí)時顯示家居設(shè)備的運(yùn)行狀態(tài)。
移動控制端:移動控制端APP采用Android Studio開發(fā),通過移動端的Wi-Fi模塊、藍(lán)牙模塊以及GPRS卡實(shí)現(xiàn)和外景設(shè)備的通信。采用訊飛語音模塊實(shí)現(xiàn)語音識別[1-3],并將語音指令轉(zhuǎn)化為二進(jìn)制指令,通過通信模塊發(fā)送到家居設(shè)備端。移動控制端APP界面如圖3所示。
圖3 移動端APP界面
語音識別:課題中指令語音的識別基于訊飛語音開發(fā)包。具體實(shí)現(xiàn)步驟如下。
注冊訊飛開發(fā)者賬號。
下載訊飛語音Android SDK。
創(chuàng)建Android Studio工程。
配置資源文件,將jar包添加到在工程libs下。
打開AndroidManifest.xml,增加權(quán)限配置,具體代碼如下:
Wi-Fi編程實(shí)現(xiàn):本課題為實(shí)現(xiàn)Android平臺和家居設(shè)備的通信,采用ESP8266 Wi-Fi模塊。通過Wi-Fi模塊實(shí)現(xiàn)Android端和家居設(shè)備控制端硬件部分處于同一個局域網(wǎng),Android端和家居設(shè)備控制端通信通過socket編程實(shí)現(xiàn),數(shù)據(jù)的發(fā)送與接收基于IO流實(shí)現(xiàn)。
具體實(shí)現(xiàn)步驟如下。
打開AndroidManifest.xml,增加權(quán)限配置。
創(chuàng)建一個發(fā)送/接受類,內(nèi)容為發(fā)送和接收的代碼。包括IP值、端口port值、“控制指令”變量、套接字打開/關(guān)閉、多線程數(shù)據(jù)發(fā)送/接收等。
藍(lán)牙編程實(shí)現(xiàn):本課題為實(shí)現(xiàn)Android平臺和家居設(shè)備之間的通信,同時采用了藍(lán)牙模塊。Android平臺和家居設(shè)備之間通過BluetoothSocket實(shí)現(xiàn)網(wǎng)絡(luò)通信,主要用到BluetoothAdapter、BluetoothGatt、BluetoothDevice、BluetoothCattService以及Bluetooth CattCharacteristic幾個類。
具體實(shí)現(xiàn)步驟如下。
打開AndroidManifest.xml,增加權(quán)限配置。
由于采用的是Android9.0版本,權(quán)限增加過程為:
動態(tài)設(shè)置完權(quán)限后,打開GPS。掃描周圍藍(lán)牙設(shè)備。通過廣播的方式接收掃描結(jié)果。開啟配對藍(lán)牙,通過廣播的方式接收配對結(jié)果,連接藍(lán)牙,數(shù)據(jù)傳輸。
本論文基于Android平臺開發(fā)了一款基于語音的遠(yuǎn)程智能家居控制系統(tǒng)。系統(tǒng)使用語音對相關(guān)操作進(jìn)行控制,解放了人們的雙手,簡化了傳統(tǒng)使用按鍵控制的煩瑣操作,進(jìn)一步增加了終端設(shè)備控制家居的簡便性、互動性和實(shí)用性。