謝振宇 劉 偉
(桂林理工大學(xué),廣西 桂林 541006)
在國(guó)家最近加速部署5G 網(wǎng)絡(luò)的社會(huì)大背景下,適應(yīng)5G 網(wǎng)絡(luò)結(jié)構(gòu)的傳送網(wǎng)規(guī)劃及建設(shè)已經(jīng)成為目前任務(wù)的重中之重[1]。智能家居正是在信息化影響之下物聯(lián)網(wǎng)技術(shù)的一種應(yīng)用,智能家居通過物聯(lián)網(wǎng)技術(shù)將家中的各種設(shè)備(電燈、風(fēng)扇、空調(diào)和窗簾等)連接到一起,提供照明控制、風(fēng)扇控制、空調(diào)控制、窗簾控制等多種功能。
本設(shè)計(jì)預(yù)期目標(biāo)有五點(diǎn),一是實(shí)現(xiàn)非特定人語(yǔ)音控制電燈,風(fēng)扇,空調(diào)和窗簾的啟動(dòng)和關(guān)閉;二是實(shí)現(xiàn)非特定人語(yǔ)音控制風(fēng)扇的轉(zhuǎn)速,使得風(fēng)速可以進(jìn)行調(diào)節(jié),既可以提高風(fēng)速也可以降低風(fēng)速;三是實(shí)現(xiàn)非特定人語(yǔ)音控制窗簾的運(yùn)行狀態(tài),使得窗簾可以在開啟或關(guān)閉的過程中主動(dòng)停止;四是實(shí)現(xiàn)非特定人語(yǔ)音關(guān)閉所有啟動(dòng)的家居設(shè)備,使得關(guān)閉的過程得以簡(jiǎn)化;五是利用指示燈和液晶屏幕分別指示各個(gè)家居設(shè)備的運(yùn)行狀態(tài)。
本次單片機(jī)選用STC12C5A60S2 芯片作智能家居語(yǔ)音控制系統(tǒng)設(shè)計(jì)的核心控制處理單元。系統(tǒng)的供電使用USB 數(shù)據(jù)線與電源連接。系統(tǒng)的語(yǔ)音識(shí)別使用語(yǔ)音識(shí)別芯片LD3320,通過分別編寫需要進(jìn)行識(shí)別的語(yǔ)音模塊程序和語(yǔ)音控制程序并分別對(duì)語(yǔ)音識(shí)別芯片和單片機(jī)進(jìn)行燒錄來(lái)實(shí)現(xiàn)語(yǔ)音識(shí)別。單片機(jī)工作時(shí)需要時(shí)鐘頻率,系統(tǒng)晶振電路模塊負(fù)責(zé)給單片機(jī)提供穩(wěn)定的時(shí)鐘頻率,使得單片機(jī)正常工作。復(fù)位電路模塊負(fù)責(zé)給單片機(jī)進(jìn)行復(fù)位,系統(tǒng)設(shè)計(jì)上選擇利用復(fù)位按鍵進(jìn)行手動(dòng)復(fù)位。液晶顯示模塊負(fù)責(zé)將單片機(jī)傳輸過來(lái)的系統(tǒng)數(shù)據(jù)顯示在液晶屏上,直觀顯示不同設(shè)備的開關(guān)狀態(tài)。繼電器電路模塊負(fù)責(zé)模擬空調(diào)的啟動(dòng)和關(guān)閉;步進(jìn)電機(jī)驅(qū)動(dòng)模塊負(fù)責(zé)模擬窗簾的開啟和關(guān)閉,還能實(shí)現(xiàn)停止(暫停)窗簾的功能;直流電機(jī)驅(qū)動(dòng)模塊負(fù)責(zé)模擬風(fēng)扇的轉(zhuǎn)動(dòng),可以實(shí)現(xiàn)提高和降低風(fēng)速的功能;LED 指示燈模塊負(fù)責(zé)模擬電燈的開啟和關(guān)閉以及充當(dāng)各個(gè)設(shè)備運(yùn)行時(shí)的指示燈。系統(tǒng)總體設(shè)計(jì)框圖如圖1 所示。
圖1 智能家居語(yǔ)音控制系統(tǒng)框圖
本次系統(tǒng)電路設(shè)計(jì)的核心單片機(jī)型號(hào)是STC12C5A60S2 單片機(jī)芯片,相較于傳統(tǒng)51 單片機(jī),其擁有加強(qiáng)版CPU 芯片,并且兼容傳統(tǒng)8051 單片機(jī)的系統(tǒng)結(jié)構(gòu)。該單片機(jī)芯片擁有8 位P0,P1 口和P2 口,其獨(dú)特的2 路PWM 接口是此次設(shè)計(jì)將其選為核心單片機(jī)的原因之一。
本次在單片機(jī)的最小系統(tǒng)中使用了復(fù)位電路模塊,用以復(fù)位單片機(jī)的數(shù)據(jù);使用了晶振電路模塊,用以給單片機(jī)提供時(shí)鐘。復(fù)位的主要作用是把特殊功能寄存器的數(shù)據(jù)初始化為默認(rèn)數(shù)據(jù),以使程序重新開始運(yùn)行。單片機(jī)的正常工作離不開時(shí)鐘信號(hào)的驅(qū)動(dòng),時(shí)鐘的本質(zhì)就是提供穩(wěn)定頻率。單片機(jī)最小系統(tǒng)原理圖如圖2 所示。
圖2 單片機(jī)最小系統(tǒng)原理圖
語(yǔ)音識(shí)別芯片LD3320 是語(yǔ)音識(shí)別模塊的核心,系統(tǒng)通過語(yǔ)音識(shí)別模塊可以接收非特定人語(yǔ)音,語(yǔ)音識(shí)別模塊原理圖如圖3 所示。
圖3 語(yǔ)音識(shí)別模塊原理圖
語(yǔ)音識(shí)別模塊通過對(duì)語(yǔ)音識(shí)別芯片LD3320 進(jìn)行編程和燒錄,可以實(shí)現(xiàn)對(duì)非特定人的語(yǔ)音進(jìn)行識(shí)別,將工作指令傳達(dá)給單片機(jī)的INPUT 輸入端,作為擔(dān)任智能家居語(yǔ)音控制系統(tǒng)設(shè)計(jì)中語(yǔ)音識(shí)別任務(wù)的模塊,其重要程度可見一斑。
本次系統(tǒng)設(shè)計(jì)選用LCD1602 液晶顯示器,它可以顯示字符、字母和數(shù)字,該液晶顯示器通過讀取單片機(jī)在OUTPUT 輸出端的數(shù)據(jù),可以清楚地在液晶屏幕中顯示系統(tǒng)電路中各個(gè)家居設(shè)備的運(yùn)行狀態(tài)。液晶顯示模塊原理圖如圖4 所示。
圖4 液晶顯示模塊電路圖
本次系統(tǒng)電路中選用多個(gè)不同單色LED 燈作為各個(gè)家居設(shè)備的響應(yīng)指示燈,實(shí)現(xiàn)LED 燈的多顏色指示功能。不同的家居設(shè)備其對(duì)應(yīng)響應(yīng)的LED 指示燈將顯示不同的顏色,便于區(qū)分不同的家居設(shè)備。LED 指示燈模塊原理圖如圖5 所示。
圖5 LED 指示燈模塊原理圖
本次系統(tǒng)電路設(shè)計(jì)了繼電器電路模塊用以模擬智能空調(diào)的開啟和關(guān)閉[2]??照{(diào)繼電器是空調(diào)的一個(gè)核心電器元件,繼電器電路模塊在設(shè)計(jì)時(shí)使用了一個(gè)三極管來(lái)驅(qū)動(dòng)電路進(jìn)行工作,還使用了一個(gè)LED 燈來(lái)充當(dāng)指示燈指示模塊工作。當(dāng)空調(diào)繼電器工作時(shí),電路中的LED 燈就會(huì)亮起。繼電器的作用是可以使用較小的電力來(lái)驅(qū)動(dòng)電磁鐵帶動(dòng)接觸片去承載大電流,這也是選擇繼電器來(lái)模擬智能空調(diào)的原因。繼電器電路模塊原理圖如圖6 所示。
圖6 繼電器電路模塊原理圖
步進(jìn)電機(jī)驅(qū)動(dòng)模塊是模擬智能窗簾工作的模塊,電機(jī)的轉(zhuǎn)軸可以模擬窗簾的啟動(dòng),停止和關(guān)閉功能。由于單獨(dú)一個(gè)步進(jìn)電機(jī)無(wú)法工作,在系統(tǒng)電路的設(shè)計(jì)中,我們需要加入步進(jìn)電機(jī)驅(qū)動(dòng)芯片ULN2003 對(duì)步進(jìn)電機(jī)進(jìn)行驅(qū)動(dòng),使其得以正常工作。采用ULN2003 驅(qū)動(dòng)芯片來(lái)驅(qū)動(dòng)步進(jìn)電機(jī),啟動(dòng)模式時(shí),進(jìn)入電機(jī)驅(qū)動(dòng)程序,P1 口的低4 位對(duì)應(yīng)步進(jìn)電機(jī)的4 相的線,每輸出一個(gè)脈沖中間間隔1 個(gè)延時(shí),等待第二個(gè)脈沖輸出,每個(gè)脈沖代表一個(gè)步距角,電機(jī)運(yùn)行的時(shí)候,累計(jì)計(jì)算輸出脈沖個(gè)數(shù),就可以計(jì)算出當(dāng)前轉(zhuǎn)動(dòng)的角度[3]。
直流電機(jī)驅(qū)動(dòng)模塊是模擬智能風(fēng)扇工作的模塊。在系統(tǒng)設(shè)計(jì)的要求中,智能風(fēng)扇在可以開啟和關(guān)閉的同時(shí)還需要可以調(diào)節(jié)風(fēng)速,即提高與降低風(fēng)速。直流電機(jī)采用帶有USB 接口的小風(fēng)扇,想要驅(qū)動(dòng)風(fēng)扇工作,需要加入電機(jī)驅(qū)動(dòng)芯片L9110H。L9110H 是控制驅(qū)動(dòng)電機(jī)的專用電機(jī)驅(qū)動(dòng)芯片,它可以直接驅(qū)動(dòng)電機(jī)的正反向運(yùn)動(dòng),具有較大的電流驅(qū)動(dòng)能力。使用PWM(脈沖寬度調(diào)制)調(diào)節(jié)電機(jī)占空比的方法來(lái)實(shí)現(xiàn)風(fēng)扇調(diào)節(jié)風(fēng)速的功能[4]。直流電機(jī)驅(qū)動(dòng)模塊原理圖如圖7 所示。
圖7 直流電機(jī)驅(qū)動(dòng)模塊原理圖
語(yǔ)音識(shí)別模塊成功通過語(yǔ)音觸發(fā)口令處于激活狀態(tài)時(shí),語(yǔ)音輸入的關(guān)鍵字與預(yù)先在程序中寫入的關(guān)鍵字相符合的時(shí)候,此時(shí)語(yǔ)音識(shí)別模塊就會(huì)將識(shí)別的結(jié)果傳輸給單片機(jī),單片機(jī)會(huì)根據(jù)傳輸過來(lái)的語(yǔ)音指令控制相應(yīng)的智能家居設(shè)備進(jìn)行工作。在語(yǔ)音識(shí)別程序的編寫上,可以通過程序預(yù)先設(shè)置相應(yīng)語(yǔ)音代碼指令所對(duì)應(yīng)的智能家居設(shè)備此時(shí)的工作狀態(tài)。
單片機(jī)控制主函數(shù)是直接控制整個(gè)系統(tǒng)電路的智能家居設(shè)備工作與運(yùn)行狀態(tài)的主程序。在主函數(shù)中,需要先定義各個(gè)智能家居設(shè)備與單片機(jī)的引腳連接,然后定義控制函數(shù),控制函數(shù)的作用是單片機(jī)接收語(yǔ)音識(shí)別的指令代碼并在對(duì)應(yīng)的代碼下設(shè)置此時(shí)相應(yīng)的智能家居設(shè)備工作狀態(tài)。
該設(shè)計(jì)將智能家居的概念和語(yǔ)音識(shí)別技術(shù)進(jìn)行了結(jié)合,提供了一種利用單片機(jī)進(jìn)行簡(jiǎn)易的語(yǔ)音控制智能家居的方案。系統(tǒng)電路的的硬件設(shè)計(jì)包括STC12C5A60S2 單片機(jī)、USB 供電電路模塊、晶振電路模塊、復(fù)位電路模塊、語(yǔ)音識(shí)別模塊。液晶顯示模塊、繼電器電路模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、直流電機(jī)驅(qū)動(dòng)模塊、LED 指示燈模塊。系統(tǒng)電路的軟件設(shè)計(jì)有兩大部分,分別是語(yǔ)音識(shí)別模塊程序設(shè)計(jì)和單片機(jī)控制模塊程序設(shè)計(jì)。