林學偉,嚴明忠
(福建技術師范學院,福建 福清 350300)
嵌入式技術與傳感器技術的發展,使得更多先進的智能商品用于日常生活中,有效改善了人們的生活質量,提高了工作效率[1]。智能家居控制系統是一種將自動化、一體化、物聯網化、智能化融為一體的系統,以居家場所為平臺,將人們生活中息息相關的各類設備緊密地結合在一起,從而實現對室內甚至室外的控制與監測。一個相對完整的智能家居控制系統主要包括:照明控制系統[2]、家用電器控制系統、多媒體控制系統以及安全防盜控制系統等。當前智能家居控制系統已經可以實現對設備的更新及添加刪除,但目前的智能家居控制系統在實際應用中存在成本高、行業標準不統一、跨產業合作困難等問題。
針對上述問題,為實現智能家居控制系統的價格合理化、標準化、易操作、注重用戶體驗、多樣性等發展趨勢,本文設計了基于STM32 單片機的智能家居控制系統。
選用STM32 單片機作為智能家居控制系統的主控制中心,為實現系統的高性能、低功耗等應用需要,本文選用意法半導體生產廠商生產的STM32K653F4210 單片機作為系統核心部分[3]。STM32K653F4210 型號單片機中電源供電、輸入和輸出接口的驅動電壓為2.0~3.6V,具備良好的電復位、掉電復位和可編程功能的電壓探測器,晶振為5~18MHz,內嵌出廠前調校的8MHz RC 振蕩電路。同時,STM32K653F4210 型號單片機采用嵌入式ARMCortex-T 內核添加技術,可實現最高128 MHz的工作頻率,算法包括周期乘法以及硬件除法。
STM32K653F4210 型號單片機當中還集成了42-124KB 的Flash 動畫存儲器,支持低功耗休眠模式,最低功耗小于1μA,具備兩個PWM 輸出口和一個高頻信號輸出口(CLO),實現對電機進行調速。并且,單片機內置32*14 Bits 數據帶電可擦可編程只讀存儲器,可實現信號記憶;具備串行調試(SWD)和JTAG接口,具備最多同時安裝的112個快速輸入和輸出端口、最多可同時設置11 個定時器、最多達13 個通信接口;綠色友好的開發環境,支持四線制在線仿真和燒錄,支持C 語言和匯編語言開發;具備1μs 的雙32 位模擬數字轉換器,以及8 兆位/秒的通用異步收發傳輸器以及18兆位/秒的SDH物理接口等外設,在功耗以及集成度上具有良好的表現。
首先,設計了外圍電路,主要有復位電路、時鐘電路和晶振電路。其次,添加了語音識別電路、以太網通訊電路,使系統具備遠程通信、控制以及語音識別的功能[4]。除此之外,還包括微控制器電路、串口電路、繼電器控制電路以及串口通信電路等多個電路。圖1為主電路結構組成示意圖。

圖1 主電路結構組成示意圖
選用型號為LD553的非特定人語音識別芯片,該型號芯片電路中集成了更高精度的語音識別處理器、輸入/輸出轉換器等,因此不需要其他外界輔助芯片的連接。LD553型號非特定人語音識別芯片的工作電壓為2.5V,輸入主控始終頻率為2.5MHz~35MHz,在省電模式狀態下的電流消耗為0.98μA。LD553型號非特定人語音識別芯片可以獨立完成對用戶語音的識別,并且具有MP3的播放功能,核心為數字信號處理和先入先出隊列緩沖器[5]。為進一步實現用戶在室內環境中通過語音質量相應控制實現對各類電子設備的控制,將語音識別電路與主控制器之間采用串行外設接口連接,其主要目的是節省主控制器中的計算機接口資源。在LD553型號非特定人語音識別芯片支持的最大時鐘頻率2.1MHz的條件下,系統可以實現對語音識別和控制的實時暢通[6]。將LD553 型號非特定人語音識別芯片MD引腳與邏輯高電平相互連接,SCK、MOSI 分別對應時鐘信號、通信訊號。將LD-EDS 和LG-TRQ 接口對應復位輸入信號以及中斷輸出信號,并保證在低電平條件下依然有效。
設計系統在實際應用過程中,用戶要將自己的語音參考樣本存儲到系統當中的資料庫中,利用該資料庫在系統運作之前首先進行特定的語音識別訓練[7]。通常情況下,只需要按照相應的訓練指示完成兩遍語音的錄入即可開始正常使用。
針對用戶控制指令的語音識別是通過系統內部的音素識別實現的。用戶說出的控制指令,由語音識別芯片將各類音素采集,并與系統中對應的控制指令匹配,輸出相應的信息,從而成功完成識別并將識別碼返回[8]。將語音識別關鍵詞列表實現寫好并存儲在SD卡當中,SD卡中的關鍵詞包括:收到指令、開關燈指令、開關窗簾指令、開關房門指令等。不同關鍵詞指令對應著不同的音頻編碼書寫方式,例如,收到指令為:“P0:A1 10 11 01:xiao zhi xiao zhi:收到.mp3”其中“P0”表示為序號;“A1 10 11 01”表示為識別碼;“xiao zhi xiao zhi”表示為關鍵詞;“收到”表示為識別用戶控制指令成功后返回的語音[9]。若用戶在這一階段說出“小智,小智”兩個字,則設計系統會將其與前一個關鍵詞進行比較,在完成匹配后,得知關鍵詞“xiao zhi xiao zhi”仍然滿足相應的要求詞語[10]。此時,設計系統會自動將返回碼發出,并將內容顯示為“A1 10 11 01”,此時設計系統會播放之前已經完成加載并進入到音頻編碼的片段,即“收到”,結束上述所有動作,設計系統就自動完成一次對用戶控制指令語音識別的過程。
當設計系統成功完成對用戶控制指令的識別后,會返回一個相應的識別編碼,并播放對應的回復音頻編碼。該音頻編碼在上微機當中是輸入漢字合成的發音,以此可以更加生動形象地反映系統是否成功識別了用戶的控制指令[11]??刂浦噶顚囊纛l編碼回復音內容包括,“小智”:“收到,請說出指令”;“打開廚房燈”:“好的,廚房燈已為您打開”;“打開房門”:“好的,房門已為您打開”等等。涵蓋對應控制指令的回復音頻編碼文件均存儲在SD卡根目錄下,當相應的一次控制指令語音成功識別后,設計系統將會自動播放與關鍵詞之后對應的提示音頻編碼。
完成對用戶控制指令的識別后,設計系統在實現相應控制動作時,采用ZigBee 協議,在STM32 單片機當中采用實際輪訓機制,完成系統相應的工作流程:在設計系統開始運行后,首先進行初始化硬件描述、媒介控制、網絡以及操作控制。其次,進行操作任務輪詢,當用戶提出相應的控制指令時,系統從休眠狀態迅速轉換為喚醒狀態,并進行中斷處理,本文設置了控制指令的優先級[12]。因此,當有優先級極高的事件發生時,優先處理優先事件。最后,當設計系統完成對事件的處理后,繼續查看是否存在其他待辦事件,若沒有則繼續等待下一次事件的發生。通信方式主要采用通訊芯片與微處理器串口方式進行連接,實現通過用戶語音識別控制[13]。語音控制在程序運行的過程中需要對串口進行處理,當串口接收到相應的語音控制指令時,判斷緩沖區內的字符是否為控制信息,若是則繼續判斷該語音是否為預設語音。同時啟動定時器中斷服務程序,并將定時器的時間設定為15s,在15s 內識別語音控制指令,完成相應的控制動作。
使用傳感器的數值作為實驗測量數據,利用無線局域網和Internet 網絡通過獲取傳感器數據以對比兩種系統的運行情況[14]。
利用網線將設計系統或傳統系統與計算機連接,完成微處理器、以太網以及計算機三者的相互連接。兩種控制系統在通電后,進行一系列的初始化,包括芯片初始化、申請內存,同時添加并打開網卡等操作[15]。分別在安靜的實驗室環境以及嘈雜的實驗室環境中,利用設計系統與傳統系統,由同一實驗人員向多種家用設備發出相同的操作控制指令,例如開窗、關窗、開門、關門等。實驗人員的語速設置為3 字/s,每一條關鍵詞讀取均為5 次,記錄兩種系統指令準確識別次數。
由圖2 和圖3 對比可以看出,設計系統無論是在安靜的實驗室環境還是在嘈雜的實驗室環境,均可以保證對指令的準確識別次數高于80次,而傳統系統均為50 次以下。同時,在嘈雜實驗室環境下,傳統系統的指令準確識別次數又進一步降低,與設計系統之間的差距更大。在實驗過程中,設計系統運用了相關的控制算法,能夠將各類算法綜合運用,并通過控制指令語音識別列表對用戶控制指令進行識別,從而將用戶的控制指令轉換為對應的指令信號,控制開窗、關窗、開門、關門等動作。利用SIM32單片機也可以有效地提高系統的可靠性和魯棒性,通過簡單的控制指令便可實現對系統的訓練,達到改善用戶居家環境的效果,讓用戶感受到智能家居帶來的方便、快捷。實驗證明,基于STM32 單片機的智能家居控制系統在實際應用中具有更高的精確性,針對用戶的控制指令可實現高效的交互。

圖2 安靜實驗室環境下兩種系統仿真實驗結果圖

圖3 嘈雜實驗室環境下兩種系統仿真實驗結果圖
基于STM32 單片機的智能家居控制系統具有良好的交互性和精準的識別指令功能,可以保證用戶在遠距離對室內甚至室外的家用電器進行很好的控制。但由于研究水平有限,該系統在應用中仍然存在一些問題需要進一步優化和改進,例如系統整體耗電量高、通訊傳遞網速較慢、上位機中的數據并未進行加密處理等。針對上述問題還需進行更加深入的研究,從而為智能家居控制系統的普及提供技術支撐。