林學(xué)偉,嚴(yán)明忠
(福建技術(shù)師范學(xué)院,福建 福清 350300)
嵌入式技術(shù)與傳感器技術(shù)的發(fā)展,使得更多先進(jìn)的智能商品用于日常生活中,有效改善了人們的生活質(zhì)量,提高了工作效率[1]。智能家居控制系統(tǒng)是一種將自動化、一體化、物聯(lián)網(wǎng)化、智能化融為一體的系統(tǒng),以居家場所為平臺,將人們生活中息息相關(guān)的各類設(shè)備緊密地結(jié)合在一起,從而實(shí)現(xiàn)對室內(nèi)甚至室外的控制與監(jiān)測。一個(gè)相對完整的智能家居控制系統(tǒng)主要包括:照明控制系統(tǒng)[2]、家用電器控制系統(tǒng)、多媒體控制系統(tǒng)以及安全防盜控制系統(tǒng)等。當(dāng)前智能家居控制系統(tǒng)已經(jīng)可以實(shí)現(xiàn)對設(shè)備的更新及添加刪除,但目前的智能家居控制系統(tǒng)在實(shí)際應(yīng)用中存在成本高、行業(yè)標(biāo)準(zhǔn)不統(tǒng)一、跨產(chǎn)業(yè)合作困難等問題。
針對上述問題,為實(shí)現(xiàn)智能家居控制系統(tǒng)的價(jià)格合理化、標(biāo)準(zhǔn)化、易操作、注重用戶體驗(yàn)、多樣性等發(fā)展趨勢,本文設(shè)計(jì)了基于STM32 單片機(jī)的智能家居控制系統(tǒng)。
選用STM32 單片機(jī)作為智能家居控制系統(tǒng)的主控制中心,為實(shí)現(xiàn)系統(tǒng)的高性能、低功耗等應(yīng)用需要,本文選用意法半導(dǎo)體生產(chǎn)廠商生產(chǎn)的STM32K653F4210 單片機(jī)作為系統(tǒng)核心部分[3]。STM32K653F4210 型號單片機(jī)中電源供電、輸入和輸出接口的驅(qū)動電壓為2.0~3.6V,具備良好的電復(fù)位、掉電復(fù)位和可編程功能的電壓探測器,晶振為5~18MHz,內(nèi)嵌出廠前調(diào)校的8MHz RC 振蕩電路。同時(shí),STM32K653F4210 型號單片機(jī)采用嵌入式ARMCortex-T 內(nèi)核添加技術(shù),可實(shí)現(xiàn)最高128 MHz的工作頻率,算法包括周期乘法以及硬件除法。
STM32K653F4210 型號單片機(jī)當(dāng)中還集成了42-124KB 的Flash 動畫存儲器,支持低功耗休眠模式,最低功耗小于1μA,具備兩個(gè)PWM 輸出口和一個(gè)高頻信號輸出口(CLO),實(shí)現(xiàn)對電機(jī)進(jìn)行調(diào)速。并且,單片機(jī)內(nèi)置32*14 Bits 數(shù)據(jù)帶電可擦可編程只讀存儲器,可實(shí)現(xiàn)信號記憶;具備串行調(diào)試(SWD)和JTAG接口,具備最多同時(shí)安裝的112個(gè)快速輸入和輸出端口、最多可同時(shí)設(shè)置11 個(gè)定時(shí)器、最多達(dá)13 個(gè)通信接口;綠色友好的開發(fā)環(huán)境,支持四線制在線仿真和燒錄,支持C 語言和匯編語言開發(fā);具備1μs 的雙32 位模擬數(shù)字轉(zhuǎn)換器,以及8 兆位/秒的通用異步收發(fā)傳輸器以及18兆位/秒的SDH物理接口等外設(shè),在功耗以及集成度上具有良好的表現(xiàn)。
首先,設(shè)計(jì)了外圍電路,主要有復(fù)位電路、時(shí)鐘電路和晶振電路。其次,添加了語音識別電路、以太網(wǎng)通訊電路,使系統(tǒng)具備遠(yuǎn)程通信、控制以及語音識別的功能[4]。除此之外,還包括微控制器電路、串口電路、繼電器控制電路以及串口通信電路等多個(gè)電路。圖1為主電路結(jié)構(gòu)組成示意圖。
圖1 主電路結(jié)構(gòu)組成示意圖
選用型號為LD553的非特定人語音識別芯片,該型號芯片電路中集成了更高精度的語音識別處理器、輸入/輸出轉(zhuǎn)換器等,因此不需要其他外界輔助芯片的連接。LD553型號非特定人語音識別芯片的工作電壓為2.5V,輸入主控始終頻率為2.5MHz~35MHz,在省電模式狀態(tài)下的電流消耗為0.98μA。LD553型號非特定人語音識別芯片可以獨(dú)立完成對用戶語音的識別,并且具有MP3的播放功能,核心為數(shù)字信號處理和先入先出隊(duì)列緩沖器[5]。為進(jìn)一步實(shí)現(xiàn)用戶在室內(nèi)環(huán)境中通過語音質(zhì)量相應(yīng)控制實(shí)現(xiàn)對各類電子設(shè)備的控制,將語音識別電路與主控制器之間采用串行外設(shè)接口連接,其主要目的是節(jié)省主控制器中的計(jì)算機(jī)接口資源。在LD553型號非特定人語音識別芯片支持的最大時(shí)鐘頻率2.1MHz的條件下,系統(tǒng)可以實(shí)現(xiàn)對語音識別和控制的實(shí)時(shí)暢通[6]。將LD553 型號非特定人語音識別芯片MD引腳與邏輯高電平相互連接,SCK、MOSI 分別對應(yīng)時(shí)鐘信號、通信訊號。將LD-EDS 和LG-TRQ 接口對應(yīng)復(fù)位輸入信號以及中斷輸出信號,并保證在低電平條件下依然有效。
設(shè)計(jì)系統(tǒng)在實(shí)際應(yīng)用過程中,用戶要將自己的語音參考樣本存儲到系統(tǒng)當(dāng)中的資料庫中,利用該資料庫在系統(tǒng)運(yùn)作之前首先進(jìn)行特定的語音識別訓(xùn)練[7]。通常情況下,只需要按照相應(yīng)的訓(xùn)練指示完成兩遍語音的錄入即可開始正常使用。
針對用戶控制指令的語音識別是通過系統(tǒng)內(nèi)部的音素識別實(shí)現(xiàn)的。用戶說出的控制指令,由語音識別芯片將各類音素采集,并與系統(tǒng)中對應(yīng)的控制指令匹配,輸出相應(yīng)的信息,從而成功完成識別并將識別碼返回[8]。將語音識別關(guān)鍵詞列表實(shí)現(xiàn)寫好并存儲在SD卡當(dāng)中,SD卡中的關(guān)鍵詞包括:收到指令、開關(guān)燈指令、開關(guān)窗簾指令、開關(guān)房門指令等。不同關(guān)鍵詞指令對應(yīng)著不同的音頻編碼書寫方式,例如,收到指令為:“P0:A1 10 11 01:xiao zhi xiao zhi:收到.mp3”其中“P0”表示為序號;“A1 10 11 01”表示為識別碼;“xiao zhi xiao zhi”表示為關(guān)鍵詞;“收到”表示為識別用戶控制指令成功后返回的語音[9]。若用戶在這一階段說出“小智,小智”兩個(gè)字,則設(shè)計(jì)系統(tǒng)會將其與前一個(gè)關(guān)鍵詞進(jìn)行比較,在完成匹配后,得知關(guān)鍵詞“xiao zhi xiao zhi”仍然滿足相應(yīng)的要求詞語[10]。此時(shí),設(shè)計(jì)系統(tǒng)會自動將返回碼發(fā)出,并將內(nèi)容顯示為“A1 10 11 01”,此時(shí)設(shè)計(jì)系統(tǒng)會播放之前已經(jīng)完成加載并進(jìn)入到音頻編碼的片段,即“收到”,結(jié)束上述所有動作,設(shè)計(jì)系統(tǒng)就自動完成一次對用戶控制指令語音識別的過程。
當(dāng)設(shè)計(jì)系統(tǒng)成功完成對用戶控制指令的識別后,會返回一個(gè)相應(yīng)的識別編碼,并播放對應(yīng)的回復(fù)音頻編碼。該音頻編碼在上微機(jī)當(dāng)中是輸入漢字合成的發(fā)音,以此可以更加生動形象地反映系統(tǒng)是否成功識別了用戶的控制指令[11]??刂浦噶顚?yīng)的音頻編碼回復(fù)音內(nèi)容包括,“小智”:“收到,請說出指令”;“打開廚房燈”:“好的,廚房燈已為您打開”;“打開房門”:“好的,房門已為您打開”等等。涵蓋對應(yīng)控制指令的回復(fù)音頻編碼文件均存儲在SD卡根目錄下,當(dāng)相應(yīng)的一次控制指令語音成功識別后,設(shè)計(jì)系統(tǒng)將會自動播放與關(guān)鍵詞之后對應(yīng)的提示音頻編碼。
完成對用戶控制指令的識別后,設(shè)計(jì)系統(tǒng)在實(shí)現(xiàn)相應(yīng)控制動作時(shí),采用ZigBee 協(xié)議,在STM32 單片機(jī)當(dāng)中采用實(shí)際輪訓(xùn)機(jī)制,完成系統(tǒng)相應(yīng)的工作流程:在設(shè)計(jì)系統(tǒng)開始運(yùn)行后,首先進(jìn)行初始化硬件描述、媒介控制、網(wǎng)絡(luò)以及操作控制。其次,進(jìn)行操作任務(wù)輪詢,當(dāng)用戶提出相應(yīng)的控制指令時(shí),系統(tǒng)從休眠狀態(tài)迅速轉(zhuǎn)換為喚醒狀態(tài),并進(jìn)行中斷處理,本文設(shè)置了控制指令的優(yōu)先級[12]。因此,當(dāng)有優(yōu)先級極高的事件發(fā)生時(shí),優(yōu)先處理優(yōu)先事件。最后,當(dāng)設(shè)計(jì)系統(tǒng)完成對事件的處理后,繼續(xù)查看是否存在其他待辦事件,若沒有則繼續(xù)等待下一次事件的發(fā)生。通信方式主要采用通訊芯片與微處理器串口方式進(jìn)行連接,實(shí)現(xiàn)通過用戶語音識別控制[13]。語音控制在程序運(yùn)行的過程中需要對串口進(jìn)行處理,當(dāng)串口接收到相應(yīng)的語音控制指令時(shí),判斷緩沖區(qū)內(nèi)的字符是否為控制信息,若是則繼續(xù)判斷該語音是否為預(yù)設(shè)語音。同時(shí)啟動定時(shí)器中斷服務(wù)程序,并將定時(shí)器的時(shí)間設(shè)定為15s,在15s 內(nèi)識別語音控制指令,完成相應(yīng)的控制動作。
使用傳感器的數(shù)值作為實(shí)驗(yàn)測量數(shù)據(jù),利用無線局域網(wǎng)和Internet 網(wǎng)絡(luò)通過獲取傳感器數(shù)據(jù)以對比兩種系統(tǒng)的運(yùn)行情況[14]。
利用網(wǎng)線將設(shè)計(jì)系統(tǒng)或傳統(tǒng)系統(tǒng)與計(jì)算機(jī)連接,完成微處理器、以太網(wǎng)以及計(jì)算機(jī)三者的相互連接。兩種控制系統(tǒng)在通電后,進(jìn)行一系列的初始化,包括芯片初始化、申請內(nèi)存,同時(shí)添加并打開網(wǎng)卡等操作[15]。分別在安靜的實(shí)驗(yàn)室環(huán)境以及嘈雜的實(shí)驗(yàn)室環(huán)境中,利用設(shè)計(jì)系統(tǒng)與傳統(tǒng)系統(tǒng),由同一實(shí)驗(yàn)人員向多種家用設(shè)備發(fā)出相同的操作控制指令,例如開窗、關(guān)窗、開門、關(guān)門等。實(shí)驗(yàn)人員的語速設(shè)置為3 字/s,每一條關(guān)鍵詞讀取均為5 次,記錄兩種系統(tǒng)指令準(zhǔn)確識別次數(shù)。
由圖2 和圖3 對比可以看出,設(shè)計(jì)系統(tǒng)無論是在安靜的實(shí)驗(yàn)室環(huán)境還是在嘈雜的實(shí)驗(yàn)室環(huán)境,均可以保證對指令的準(zhǔn)確識別次數(shù)高于80次,而傳統(tǒng)系統(tǒng)均為50 次以下。同時(shí),在嘈雜實(shí)驗(yàn)室環(huán)境下,傳統(tǒng)系統(tǒng)的指令準(zhǔn)確識別次數(shù)又進(jìn)一步降低,與設(shè)計(jì)系統(tǒng)之間的差距更大。在實(shí)驗(yàn)過程中,設(shè)計(jì)系統(tǒng)運(yùn)用了相關(guān)的控制算法,能夠?qū)⒏黝愃惴ňC合運(yùn)用,并通過控制指令語音識別列表對用戶控制指令進(jìn)行識別,從而將用戶的控制指令轉(zhuǎn)換為對應(yīng)的指令信號,控制開窗、關(guān)窗、開門、關(guān)門等動作。利用SIM32單片機(jī)也可以有效地提高系統(tǒng)的可靠性和魯棒性,通過簡單的控制指令便可實(shí)現(xiàn)對系統(tǒng)的訓(xùn)練,達(dá)到改善用戶居家環(huán)境的效果,讓用戶感受到智能家居帶來的方便、快捷。實(shí)驗(yàn)證明,基于STM32 單片機(jī)的智能家居控制系統(tǒng)在實(shí)際應(yīng)用中具有更高的精確性,針對用戶的控制指令可實(shí)現(xiàn)高效的交互。
圖2 安靜實(shí)驗(yàn)室環(huán)境下兩種系統(tǒng)仿真實(shí)驗(yàn)結(jié)果圖
圖3 嘈雜實(shí)驗(yàn)室環(huán)境下兩種系統(tǒng)仿真實(shí)驗(yàn)結(jié)果圖
基于STM32 單片機(jī)的智能家居控制系統(tǒng)具有良好的交互性和精準(zhǔn)的識別指令功能,可以保證用戶在遠(yuǎn)距離對室內(nèi)甚至室外的家用電器進(jìn)行很好的控制。但由于研究水平有限,該系統(tǒng)在應(yīng)用中仍然存在一些問題需要進(jìn)一步優(yōu)化和改進(jìn),例如系統(tǒng)整體耗電量高、通訊傳遞網(wǎng)速較慢、上位機(jī)中的數(shù)據(jù)并未進(jìn)行加密處理等。針對上述問題還需進(jìn)行更加深入的研究,從而為智能家居控制系統(tǒng)的普及提供技術(shù)支撐。