江蘇職業(yè)技術(shù)學(xué)院無(wú)錫機(jī)電分院的研究人員張超敏、王雪嬌,在2019年第3期《電氣技術(shù)》雜志上撰文(論文標(biāo)題為“基于單片機(jī)的語(yǔ)音識(shí)別智能窗簾控制器的設(shè)計(jì)”),系統(tǒng)以單片機(jī)STC89C52芯片作為主控模塊,可以對(duì)窗簾實(shí)現(xiàn)光照度檢測(cè)、語(yǔ)音識(shí)別、按鍵手動(dòng)等智能控制功能。
光照度模塊采集室外光照度數(shù)據(jù)上傳至單片機(jī),單片機(jī)發(fā)送控制指令驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊,控制步進(jìn)電動(dòng)機(jī)轉(zhuǎn)動(dòng)實(shí)現(xiàn)窗簾的自動(dòng)開合,LCD顯示屏顯示實(shí)時(shí)的溫度和時(shí)間。同時(shí),系統(tǒng)還具備手動(dòng)控制功能,通過(guò)語(yǔ)音識(shí)別模塊或按鍵控制窗簾的開合。通過(guò)仿真驗(yàn)證該系統(tǒng)性能穩(wěn)定、結(jié)構(gòu)簡(jiǎn)單、抗干擾能力強(qiáng)、成本低廉、能夠滿足智能家居的需求。
隨著物聯(lián)網(wǎng)技術(shù)的高速發(fā)展,智能化建筑悄然興起,傳統(tǒng)窗簾操作不方便,智能窗簾為人們提供了一個(gè)舒適的家居環(huán)境。在智能家居領(lǐng)域,電動(dòng)智能窗簾克服了傳統(tǒng)窗簾操作不便的缺點(diǎn),可以在設(shè)定的光線和溫度下,自動(dòng)開啟窗簾和關(guān)閉窗簾,為人們提供了更方便、舒適的居住環(huán)境。因此,研究與設(shè)計(jì)智能窗簾控制系統(tǒng)具有深遠(yuǎn)的現(xiàn)實(shí)意義。
一些學(xué)者在智能窗簾的設(shè)計(jì)方面進(jìn)行了研究,比如孫勇等通過(guò)紅外遙控控制系統(tǒng)可實(shí)現(xiàn)窗簾的自動(dòng)開合;孫勤設(shè)計(jì)窗簾光控智能控制系統(tǒng);揚(yáng)亞讓通過(guò)主從式多機(jī)通信協(xié)議可實(shí)現(xiàn)窗簾控制信號(hào)的遠(yuǎn)距離傳輸。陳曉燕等通過(guò)串口多機(jī)通信實(shí)現(xiàn)了窗簾開合的遠(yuǎn)程控制。市場(chǎng)上現(xiàn)有的智能窗簾控制器價(jià)格較昂貴且尚不具備語(yǔ)音功能,而基于單片機(jī)的語(yǔ)音智能窗簾控制器具有更好的穩(wěn)定性、更適中的價(jià)格、功耗更低、更實(shí)用,就這也為智能窗簾系統(tǒng)的研發(fā)提供了市場(chǎng)價(jià)值。
單片機(jī)STC89C52作為系統(tǒng)的核心芯片,由光控模塊、按鍵模塊、步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊、語(yǔ)音識(shí)別模塊、和LCD顯示模塊等組成。光控模塊就是利用光照度傳感器實(shí)時(shí)檢測(cè)室外光照度的變化,從而控制窗簾自動(dòng)開合,使室內(nèi)保持恒照度控制。
當(dāng)單片機(jī)接收到手動(dòng)控制、自動(dòng)控制、遠(yuǎn)程控制信號(hào)后驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊控制步進(jìn)電動(dòng)機(jī)的正反轉(zhuǎn),從而實(shí)現(xiàn)窗簾的開合。語(yǔ)音識(shí)別模塊具有語(yǔ)言記憶功能,把語(yǔ)音“開關(guān)窗”的指令預(yù)先寫入程序中,程序植入語(yǔ)音識(shí)別模塊中,當(dāng)有人發(fā)出相應(yīng)語(yǔ)音指令時(shí),通過(guò)與程序中原有指令比較,相符即控制窗簾開關(guān)。
系統(tǒng)硬件為模塊化設(shè)計(jì),包括語(yǔ)音識(shí)別模塊、光控模塊、按鍵模塊、步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊,LCD液晶顯示模塊。整個(gè)系統(tǒng)硬件框圖如圖1所示。溫度檢測(cè)模塊和光照度檢測(cè)模塊主要完成溫度和光照度數(shù)據(jù)的采集,并且通過(guò)液晶LCD顯示屏顯示; 按鍵模塊主要完成人工手動(dòng)控制功能;步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊通過(guò)控制步進(jìn)電動(dòng)機(jī)的正反轉(zhuǎn)來(lái)模擬窗簾的開合;采用單片機(jī)STC89C52作為主控芯片,完成對(duì)接收到的光照度、語(yǔ)音、按鍵輸入等數(shù)據(jù)進(jìn)行處理,并通過(guò)驅(qū)動(dòng)模塊實(shí)現(xiàn)窗簾的開合。
圖1 系統(tǒng)硬件框圖
2.1 語(yǔ)音識(shí)別模塊
語(yǔ)音識(shí)別模塊核心芯片采用LD3320芯片,是一種非特定人“語(yǔ)音識(shí)別”專用芯片。語(yǔ)音信號(hào)為模擬量信號(hào),需嵌入在芯片內(nèi)部A/D和D/A接口將語(yǔ)音模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),操作者無(wú)需提前經(jīng)過(guò)語(yǔ)音訓(xùn)練,識(shí)別的關(guān)鍵語(yǔ)句如“開窗”指令以字符串的形式存入芯片中,識(shí)別的過(guò)程就是將操作者的語(yǔ)音與關(guān)鍵語(yǔ)句進(jìn)行比較,若匹配,則執(zhí)行相應(yīng)控制功能。LD3320語(yǔ)音識(shí)別模塊硬件電路如圖2所示。
圖2 語(yǔ)音識(shí)別模塊電路
2.2 光控模塊
利用光控模塊,用戶可以根據(jù)日常需求自行設(shè)定室內(nèi)光照度,通過(guò)光敏電阻實(shí)時(shí)監(jiān)測(cè)室外光照度,單片機(jī)控制窗簾開合實(shí)現(xiàn)室內(nèi)恒照度控制。窗簾實(shí)現(xiàn)光照度自動(dòng)控制,天亮窗簾自動(dòng)打開,室外光照度超過(guò)3000lx自動(dòng)關(guān)閉,天黑窗簾自動(dòng)關(guān)閉。光敏電阻監(jiān)測(cè)到的光照度數(shù)據(jù)為4~20mA電流模擬量信號(hào),需經(jīng)過(guò)A/D模數(shù)轉(zhuǎn)換后輸出數(shù)字量信號(hào)給單片機(jī)。
A/D轉(zhuǎn)換器的功能是進(jìn)行模數(shù)轉(zhuǎn)換,把LD3320語(yǔ)音芯片接收到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)輸出至ST89C52。為確保A/D轉(zhuǎn)換的精度和速度,A/D轉(zhuǎn)換位數(shù)與整個(gè)智能窗簾控制系統(tǒng)測(cè)量控制的范圍和精度有關(guān)。本系統(tǒng)中采用8位A/D轉(zhuǎn)換器ADC0832芯片。整個(gè)光控模塊硬件電路如圖3所示。
圖3 光控模塊電路
2.3 步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊
系統(tǒng)采用28BYJ-48型四相八拍步進(jìn)電動(dòng)機(jī)控制窗簾的開合,力矩較大、帶負(fù)載能力強(qiáng)、控制精度高。單片機(jī)控制步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊給電動(dòng)機(jī)輸入一系列脈沖信號(hào),控制電動(dòng)機(jī)連續(xù)轉(zhuǎn)動(dòng),帶動(dòng)窗簾在軌道上移動(dòng)。
步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)速、停止的位置取決于輸入脈沖信號(hào)的頻率和脈沖數(shù),單片機(jī)控制發(fā)送一系列脈沖至步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊,當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào)時(shí),它就驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)“步距角”0.62°,通過(guò)輸出連續(xù)脈沖信號(hào)控制窗簾的連續(xù)移動(dòng)。
步進(jìn)電動(dòng)機(jī)的工作峰值電流大范圍為2.6~7A,若通過(guò)下拉電阻或三極管驅(qū)動(dòng)產(chǎn)生的轉(zhuǎn)矩小難以帶動(dòng)窗簾開合,通常需要專用驅(qū)動(dòng)芯片驅(qū)動(dòng)才能正常工作,本系統(tǒng)采用ULN2003專用驅(qū)動(dòng)芯片驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)。步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊硬件電路如圖4所示。
圖4 步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊電路
2.4 LCD顯示模塊
LCD顯示模塊采用LCD1602芯片,該模塊用來(lái)實(shí)時(shí)顯示室外光照度數(shù)據(jù)及窗簾工作狀態(tài)。由于STC89C52單片機(jī)P0口帶負(fù)載能力較差,故需先接10K上拉電阻排,再連接芯片LCD1602的DB1—DB7口作為數(shù)據(jù)輸入輸出端,傳輸光照度數(shù)據(jù)及窗簾開合狀態(tài)指令。單片機(jī)P2.7數(shù)據(jù)端口接顯示屏芯片LCD1602的使能端EN,P2.5口接液晶顯示的RS數(shù)據(jù)指令選通端,LCD1602的5腳R/W讀寫選通接單片機(jī)P2.6。并用電位器RV2用來(lái)調(diào)節(jié)LCD1602的亮度,LCD顯示模塊硬件電路如圖5所示。
圖5 LCD顯示模塊電路
3.1 主控模塊流程設(shè)計(jì)
軟件程序采用C語(yǔ)言編寫,為了便于修改和調(diào)試,采用模塊化設(shè)計(jì),編程語(yǔ)言的開發(fā)工具用Keil C編程軟件。系統(tǒng)主程序的流程圖如圖6所示。
系統(tǒng)首先上電復(fù)位完成對(duì)單片機(jī)、傳感器、各端口模塊初始化和Y值及Y值優(yōu)先級(jí)設(shè)置,其中Y=3的優(yōu)先級(jí)小于Y=1或Y=2。然后單片機(jī)根據(jù)接收到的外界信息的類型,進(jìn)行相應(yīng)的數(shù)據(jù)分析和處理后,通過(guò)電動(dòng)機(jī)控制器控制步進(jìn)電動(dòng)機(jī)完成對(duì)窗簾的控制。
圖6 主程序流程圖
若Y=2有開合窗簾語(yǔ)音信號(hào)輸入,則子程序驅(qū)動(dòng)LD3320非特定人“語(yǔ)音識(shí)別”專用芯片,執(zhí)行語(yǔ)音識(shí)別子程序,等待控制窗簾開合的語(yǔ)的輸入。當(dāng)LD3320接收到“開關(guān)窗”語(yǔ)音信號(hào)時(shí),先對(duì)語(yǔ)音信號(hào)進(jìn)行分析提取語(yǔ)音特征值,并與芯片中預(yù)存的開關(guān)窗控制關(guān)鍵字符比較,若匹配,則驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)控制窗簾的開合。
若Y=3需執(zhí)行光控子程序,則光敏電阻實(shí)時(shí)監(jiān)測(cè)室外光照強(qiáng)度是否大于3000lx,若條件符合,則步進(jìn)電動(dòng)機(jī)正向轉(zhuǎn)動(dòng),控制窗簾開起,直至碰到限位開關(guān)停止轉(zhuǎn)動(dòng)。在條件要求不符合時(shí),返回到子程序入口重新初始化。檢測(cè)窗簾開合狀態(tài),在打開狀態(tài)下,光敏電阻檢測(cè)到室外光照強(qiáng)度小于500lx時(shí),控制步進(jìn)電動(dòng)機(jī)反轉(zhuǎn)實(shí)現(xiàn)窗簾閉合。
顯示子程序,當(dāng)LCD1602芯片的讀寫選通端RW為低電平時(shí),執(zhí)行寫操作;當(dāng)數(shù)據(jù)指令選通端RS端工作狀態(tài)為高電平時(shí),選擇指令寄存器;使能端EN為下降沿信號(hào),顯示數(shù)據(jù)被送到ST89C52單片機(jī)P2.0-P2.7口,LCD執(zhí)行數(shù)據(jù)指令,判斷數(shù)據(jù)指令是否執(zhí)行完畢,若完畢,則在液晶屏顯示光照度數(shù)據(jù)及窗簾開合狀態(tài),子程序退出。否則,返回到數(shù)據(jù)指令選擇寄存器繼續(xù)循環(huán)重復(fù)執(zhí)行之前步驟。
3.2 系統(tǒng)仿真
利用Proteus軟件進(jìn)行系統(tǒng)仿真,根據(jù)智能窗簾控制系統(tǒng)的原理圖,把相應(yīng)的元件在庫(kù)編輯器中找出來(lái),然后進(jìn)行繪制。電路圖畫好后再選擇KEIL中已經(jīng)編譯好的*.hex文件,點(diǎn)擊運(yùn)行按鈕,仿真結(jié)果如圖7所示。
圖7 系統(tǒng)仿真圖
在整個(gè)系統(tǒng)設(shè)計(jì)過(guò)程中,光控模塊實(shí)時(shí)檢測(cè)室外光照度數(shù)據(jù)傳送至單片機(jī),STC89C52作為主控芯片通過(guò)步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊控制步進(jìn)電動(dòng)機(jī)正反轉(zhuǎn)從而實(shí)現(xiàn)窗簾的開合,并通過(guò)LCD液晶顯示屏顯示光照度和溫度。在實(shí)現(xiàn)光照度自動(dòng)控制基礎(chǔ)上,同時(shí)又添加了語(yǔ)音控制和按鍵控制功能,使智能窗簾的控制更加完善,更加人性化。