廣州工商學(xué)院工學(xué)院 范仰才 袁曉明
設(shè)計(jì)了一款以STM32單片機(jī)作微處理器,支持語音、藍(lán)牙和紅外遙控三種方式操控的智能家居系統(tǒng)。利用溫濕度和煙霧傳感器感知室內(nèi)信息,門禁識別和超聲波測距感知門口信息,經(jīng)由主控制器對參數(shù)進(jìn)行處理以達(dá)到控制燈、風(fēng)扇(空調(diào))、窗簾及門等的開關(guān),并利用OLED來顯示當(dāng)前的溫濕度和安防狀態(tài);系統(tǒng)的程序于KEIL5軟件上開發(fā)完成。經(jīng)測試,系統(tǒng)實(shí)現(xiàn)了預(yù)定功能,操作簡單,適用性強(qiáng)。
在現(xiàn)代通訊和物聯(lián)網(wǎng)技術(shù)的驅(qū)使下,市場上智能家居產(chǎn)品種類繁多,其控制方式也朝多元化發(fā)展。現(xiàn)代智能家居控制方式可以利用無線通信技術(shù),對家電設(shè)備進(jìn)行遠(yuǎn)程操控,無線通信的廣泛使用,令人類擺脫了以往單一、繁瑣的控制方式。近年來,語音識別技術(shù)在智能家居控制的應(yīng)用逐漸流行,語音識別技術(shù)的應(yīng)用在改變我們生活習(xí)慣的同時(shí),也為我們營造更便捷的居住環(huán)境和提升家居系統(tǒng)的舒適性、智能性。
本文旨在為用戶設(shè)計(jì)一款操作簡單,可控制多個(gè)家電設(shè)備的低成本控制系統(tǒng),實(shí)現(xiàn)控制系統(tǒng)的智能化和便捷化。
本系統(tǒng)以STM32單片機(jī)為主微控制器。設(shè)計(jì)功能包括:語音識別模塊檢測語音指令,或紅外遙控器通過按鍵發(fā)送信息,微控制器處理后將作出相應(yīng)的響應(yīng),實(shí)現(xiàn)對居家電器、窗簾及門等的控制;門禁模塊實(shí)現(xiàn)刷卡進(jìn)門,識別到陌生卡時(shí)蜂鳴器會(huì)長鳴;超聲波模塊測量門口是否有人經(jīng)過及人離探測器的距離;環(huán)境檢測模塊檢測室內(nèi)溫濕度及可燃或有害氣體是否超標(biāo),檢測的信息可以在顯示屏上顯示出來,當(dāng)室內(nèi)溫濕度達(dá)到設(shè)置的上限時(shí),系統(tǒng)會(huì)響鈴報(bào)警或啟動(dòng)室內(nèi)空調(diào)。為防止語音識別出現(xiàn)故障,系統(tǒng)增加了藍(lán)牙模塊,可實(shí)現(xiàn)無線遠(yuǎn)程控制,藍(lán)牙也可以修改開發(fā)板的系統(tǒng)時(shí)間,設(shè)置鬧鐘,設(shè)置超聲波檢測距離,錄入門禁卡信息等。系統(tǒng)總設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)總設(shè)計(jì)框圖
本系統(tǒng)采用主流芯片增強(qiáng)型中的STM32F407ZET6,是一款采用ARM32位Cortex-M4內(nèi)核的微控制器,具有高性能、高集成度、低功耗、低成本、豐富的外設(shè)資源等特點(diǎn)。芯片內(nèi)部采用哈佛結(jié)構(gòu),數(shù)據(jù)總線和指令總線分開工作,與馮諾依曼結(jié)構(gòu)相比工作速度更快;芯片內(nèi)置512KB的FLASH和192KB的SRAM,外圍有溫度傳感器串口和電機(jī)控制串口,選擇該芯片作為主控制器能滿足本控制系統(tǒng)的設(shè)計(jì)要求。
語音識別模塊選用LD3320,它集成了一些外部電路和語音處理器,包括ADC、DAC、MIC等,不需要任何的輔助芯片如閃存、只讀存儲(chǔ)器、加密芯片等,也不需要提前錄入語音,直接可以實(shí)現(xiàn)語音識別和人機(jī)交互,而識別的關(guān)鍵詞語列表可以由用戶自己設(shè)定。其工作流程采用輪詢形式進(jìn)行識別,當(dāng)MIC識別到聲音信號時(shí),單片機(jī)產(chǎn)生中斷信號,LD3320通過串口接受數(shù)據(jù),經(jīng)頻譜分析和特征提取,進(jìn)行關(guān)鍵詞列表配對,識別成功后返還識別碼,再向家居設(shè)備發(fā)送指令。
溫濕度傳感器選用DHT11數(shù)字溫濕度傳感器,它采用數(shù)字采集技術(shù)和溫濕度傳感技術(shù)。工作原理:根據(jù)信號輸出量計(jì)算出溫度和濕度值,環(huán)境濕度發(fā)生改變時(shí),濕度傳感器通過改變濕敏電容介電常數(shù)來改變其電容值。該傳感器具有響應(yīng)速度快、抗干擾能力強(qiáng)、傳輸距離遠(yuǎn)等優(yōu)點(diǎn),適合用于室內(nèi)溫濕度的測量。
煙霧傳感器選用MQ-2氣體傳感器,該傳感器的電導(dǎo)率會(huì)隨空氣中可燃?xì)怏w濃度的增加而增大,并將電導(dǎo)率的變化轉(zhuǎn)換成對應(yīng)的電信號輸出。它可以檢測多種可燃性氣體,特別適用于家居環(huán)境中一氧化碳、煤氣等的泄漏、煙霧的檢測等。
選用HC-SR04超聲波測距模塊,它可以測量2cm-400cm的非接觸式距離,測量精度可達(dá)3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。
本系統(tǒng)采用RFID-RC522來實(shí)現(xiàn)門禁安防,通過在存儲(chǔ)器上讀寫數(shù)據(jù),實(shí)現(xiàn)錄入卡和識別卡,進(jìn)而啟動(dòng)電機(jī)(模擬防盜門的開閉)。RC522是應(yīng)用于非接觸式通信中的讀寫卡芯片,它使用了先進(jìn)的調(diào)制和解調(diào)技術(shù),與主機(jī)間的通信采用SPI模式,通信速度極快。
選用L9110直流電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)直流電機(jī),實(shí)現(xiàn)對居家電器如風(fēng)扇的開、關(guān)和調(diào)速的操作。一個(gè)L9110模塊可驅(qū)動(dòng)兩個(gè)直流電機(jī),可實(shí)現(xiàn)對兩個(gè)家用電器的控制。利用步進(jìn)電機(jī)的正反轉(zhuǎn)來模擬門和窗簾的開和關(guān),所用的步進(jìn)電機(jī)是四相五線制,它可以將電脈沖信號轉(zhuǎn)化為角位移來驅(qū)動(dòng)設(shè)備,改變脈沖的順序可以方便地改變電動(dòng)機(jī)的旋轉(zhuǎn)方向。
本系統(tǒng)采用KEIL5軟件進(jìn)行編程,具有界面和使用簡單的特點(diǎn)。圖2為系統(tǒng)軟件控制流程圖?;赟TM32語音控制的編程設(shè)計(jì)主要分為四部分:語音識別控制、藍(lán)牙控制、紅外遙控和智能安防部分。各模塊將收到的信息或模塊發(fā)送的信息傳送給MCU,MCU對這些信息進(jìn)行處理,并控制系統(tǒng)對各模塊作出相應(yīng)的操作。
圖2 系統(tǒng)軟件控制流程圖
語音識別程序:每次的語音輸入需對設(shè)備進(jìn)行喚醒,喚醒先使用一級口令,成功喚醒時(shí),LD3320的指示燈(紅燈)亮起,喚醒后使用二級口令進(jìn)行下一步指令識別操作,當(dāng)二級口令配對成功后,相應(yīng)的設(shè)備會(huì)打開。程序設(shè)計(jì)是對語音識別代碼進(jìn)行編寫,通過while循環(huán)來控制程序,switch檢測ASR狀態(tài),如果識別正在進(jìn)行或LD3320內(nèi)部出現(xiàn)錯(cuò)誤都會(huì)退出識別流程,繼續(xù)等待下一個(gè)指令;如果指令識別有結(jié)果,繼續(xù)執(zhí)行用戶函數(shù),并對程序狀態(tài)初始化。
藍(lán)牙控制:無線控制采用HC-06藍(lán)牙控制,當(dāng)通過APP下達(dá)指令時(shí),HC-06接受數(shù)據(jù),對應(yīng)的引腳會(huì)有高低電平的變化,通過電平的變化實(shí)現(xiàn)對設(shè)備的控制。程序設(shè)計(jì)的實(shí)現(xiàn)通過if-else if函數(shù)判斷按鍵的輸入值,并通過中斷服務(wù)函數(shù)的接收數(shù)據(jù)判斷指令。
紅外控制:紅外接收頭接收到遙控器發(fā)出的指令,并把數(shù)據(jù)進(jìn)行拆分,識別出指令,開啟相應(yīng)的電機(jī)或LED燈。
溫濕度模塊:DHT11完整的數(shù)據(jù)輸出為40字節(jié),單片機(jī)完成下達(dá)開始信號指令時(shí),DHT11的工作模式會(huì)發(fā)生轉(zhuǎn)變,此時(shí)由休眠模式轉(zhuǎn)換為高速模式。而當(dāng)單片機(jī)開始信號結(jié)束時(shí),DHT11做出響應(yīng),將40字節(jié)數(shù)據(jù)送出,并觸發(fā)DHT11完成一次環(huán)境信息數(shù)據(jù)的采集。
煙霧傳感器模塊:若傳感器的引腳電壓值超過設(shè)定的警報(bào)值,藍(lán)牙會(huì)發(fā)送警報(bào)到手機(jī)。
門禁模塊:將門禁卡靠近識別模塊,識別成功后,步進(jìn)電機(jī)會(huì)轉(zhuǎn)動(dòng)一圈,表示門已打開,若識別的是陌生卡,則蜂鳴器會(huì)長鳴。
各部分編程完成后,利用JLink下載器將代碼燒錄到STM32上。給系統(tǒng)上電,然后對各模塊的功能進(jìn)行測試。語音輸入開燈、關(guān)燈,開風(fēng)扇、關(guān)風(fēng)扇,開門、關(guān)門等指令后(每個(gè)指令各進(jìn)行了10次測試),結(jié)果表明LD3320識別率在95%以上;超聲波模塊能實(shí)現(xiàn)防盜監(jiān)控;溫濕度傳感器、可燃?xì)怏w傳感器、RFID讀寫卡、OLED、藍(lán)牙模塊、紅外接收頭、步進(jìn)電機(jī)和直流電機(jī)都工作正常;當(dāng)系統(tǒng)獲取相應(yīng)信息后,對應(yīng)的模塊能做出正確的反應(yīng),設(shè)計(jì)和測試成功。
基于STM32的語音識別智能家居控制器實(shí)現(xiàn)了語音控制、藍(lán)牙遠(yuǎn)程和紅外遙控三種方式對室內(nèi)窗簾、燈光、風(fēng)扇以及溫濕度信息采集、火災(zāi)報(bào)警、門禁控制等智能化控制。設(shè)計(jì)思路簡單,功能較全面,操作簡單,成本低廉,有一定的實(shí)用推廣價(jià)值。