?

STM32的語音識別智能家居

2022-07-23 06:35廣州工商學院工學院范仰才袁曉明
電子世界 2022年1期

廣州工商學院工學院 范仰才 袁曉明

設計了一款以STM32單片機作微處理器,支持語音、藍牙和紅外遙控三種方式操控的智能家居系統。利用溫濕度和煙霧傳感器感知室內信息,門禁識別和超聲波測距感知門口信息,經由主控制器對參數進行處理以達到控制燈、風扇(空調)、窗簾及門等的開關,并利用OLED來顯示當前的溫濕度和安防狀態;系統的程序于KEIL5軟件上開發完成。經測試,系統實現了預定功能,操作簡單,適用性強。

在現代通訊和物聯網技術的驅使下,市場上智能家居產品種類繁多,其控制方式也朝多元化發展?,F代智能家居控制方式可以利用無線通信技術,對家電設備進行遠程操控,無線通信的廣泛使用,令人類擺脫了以往單一、繁瑣的控制方式。近年來,語音識別技術在智能家居控制的應用逐漸流行,語音識別技術的應用在改變我們生活習慣的同時,也為我們營造更便捷的居住環境和提升家居系統的舒適性、智能性。

本文旨在為用戶設計一款操作簡單,可控制多個家電設備的低成本控制系統,實現控制系統的智能化和便捷化。

1 系統總體設計方案

本系統以STM32單片機為主微控制器。設計功能包括:語音識別模塊檢測語音指令,或紅外遙控器通過按鍵發送信息,微控制器處理后將作出相應的響應,實現對居家電器、窗簾及門等的控制;門禁模塊實現刷卡進門,識別到陌生卡時蜂鳴器會長鳴;超聲波模塊測量門口是否有人經過及人離探測器的距離;環境檢測模塊檢測室內溫濕度及可燃或有害氣體是否超標,檢測的信息可以在顯示屏上顯示出來,當室內溫濕度達到設置的上限時,系統會響鈴報警或啟動室內空調。為防止語音識別出現故障,系統增加了藍牙模塊,可實現無線遠程控制,藍牙也可以修改開發板的系統時間,設置鬧鐘,設置超聲波檢測距離,錄入門禁卡信息等。系統總設計框圖如圖1所示。

圖1 系統總設計框圖

2 系統硬件設計

本系統采用主流芯片增強型中的STM32F407ZET6,是一款采用ARM32位Cortex-M4內核的微控制器,具有高性能、高集成度、低功耗、低成本、豐富的外設資源等特點。芯片內部采用哈佛結構,數據總線和指令總線分開工作,與馮諾依曼結構相比工作速度更快;芯片內置512KB的FLASH和192KB的SRAM,外圍有溫度傳感器串口和電機控制串口,選擇該芯片作為主控制器能滿足本控制系統的設計要求。

2.1 語音識別模塊

語音識別模塊選用LD3320,它集成了一些外部電路和語音處理器,包括ADC、DAC、MIC等,不需要任何的輔助芯片如閃存、只讀存儲器、加密芯片等,也不需要提前錄入語音,直接可以實現語音識別和人機交互,而識別的關鍵詞語列表可以由用戶自己設定。其工作流程采用輪詢形式進行識別,當MIC識別到聲音信號時,單片機產生中斷信號,LD3320通過串口接受數據,經頻譜分析和特征提取,進行關鍵詞列表配對,識別成功后返還識別碼,再向家居設備發送指令。

2.2 環境檢測模塊

溫濕度傳感器選用DHT11數字溫濕度傳感器,它采用數字采集技術和溫濕度傳感技術。工作原理:根據信號輸出量計算出溫度和濕度值,環境濕度發生改變時,濕度傳感器通過改變濕敏電容介電常數來改變其電容值。該傳感器具有響應速度快、抗干擾能力強、傳輸距離遠等優點,適合用于室內溫濕度的測量。

煙霧傳感器選用MQ-2氣體傳感器,該傳感器的電導率會隨空氣中可燃氣體濃度的增加而增大,并將電導率的變化轉換成對應的電信號輸出。它可以檢測多種可燃性氣體,特別適用于家居環境中一氧化碳、煤氣等的泄漏、煙霧的檢測等。

2.3 超聲波模塊

選用HC-SR04超聲波測距模塊,它可以測量2cm-400cm的非接觸式距離,測量精度可達3mm;模塊包括超聲波發射器、接收器與控制電路。

2.4 門禁識別模塊

本系統采用RFID-RC522來實現門禁安防,通過在存儲器上讀寫數據,實現錄入卡和識別卡,進而啟動電機(模擬防盜門的開閉)。RC522是應用于非接觸式通信中的讀寫卡芯片,它使用了先進的調制和解調技術,與主機間的通信采用SPI模式,通信速度極快。

2.5 電機驅動模塊

選用L9110直流電機驅動模塊驅動直流電機,實現對居家電器如風扇的開、關和調速的操作。一個L9110模塊可驅動兩個直流電機,可實現對兩個家用電器的控制。利用步進電機的正反轉來模擬門和窗簾的開和關,所用的步進電機是四相五線制,它可以將電脈沖信號轉化為角位移來驅動設備,改變脈沖的順序可以方便地改變電動機的旋轉方向。

3 系統軟件設計

3.1 系統主程序流程

本系統采用KEIL5軟件進行編程,具有界面和使用簡單的特點。圖2為系統軟件控制流程圖?;赟TM32語音控制的編程設計主要分為四部分:語音識別控制、藍牙控制、紅外遙控和智能安防部分。各模塊將收到的信息或模塊發送的信息傳送給MCU,MCU對這些信息進行處理,并控制系統對各模塊作出相應的操作。

圖2 系統軟件控制流程圖

3.2 各控制模塊程序

語音識別程序:每次的語音輸入需對設備進行喚醒,喚醒先使用一級口令,成功喚醒時,LD3320的指示燈(紅燈)亮起,喚醒后使用二級口令進行下一步指令識別操作,當二級口令配對成功后,相應的設備會打開。程序設計是對語音識別代碼進行編寫,通過while循環來控制程序,switch檢測ASR狀態,如果識別正在進行或LD3320內部出現錯誤都會退出識別流程,繼續等待下一個指令;如果指令識別有結果,繼續執行用戶函數,并對程序狀態初始化。

藍牙控制:無線控制采用HC-06藍牙控制,當通過APP下達指令時,HC-06接受數據,對應的引腳會有高低電平的變化,通過電平的變化實現對設備的控制。程序設計的實現通過if-else if函數判斷按鍵的輸入值,并通過中斷服務函數的接收數據判斷指令。

紅外控制:紅外接收頭接收到遙控器發出的指令,并把數據進行拆分,識別出指令,開啟相應的電機或LED燈。

溫濕度模塊:DHT11完整的數據輸出為40字節,單片機完成下達開始信號指令時,DHT11的工作模式會發生轉變,此時由休眠模式轉換為高速模式。而當單片機開始信號結束時,DHT11做出響應,將40字節數據送出,并觸發DHT11完成一次環境信息數據的采集。

煙霧傳感器模塊:若傳感器的引腳電壓值超過設定的警報值,藍牙會發送警報到手機。

門禁模塊:將門禁卡靠近識別模塊,識別成功后,步進電機會轉動一圈,表示門已打開,若識別的是陌生卡,則蜂鳴器會長鳴。

4 系統實現與功能測試

各部分編程完成后,利用JLink下載器將代碼燒錄到STM32上。給系統上電,然后對各模塊的功能進行測試。語音輸入開燈、關燈,開風扇、關風扇,開門、關門等指令后(每個指令各進行了10次測試),結果表明LD3320識別率在95%以上;超聲波模塊能實現防盜監控;溫濕度傳感器、可燃氣體傳感器、RFID讀寫卡、OLED、藍牙模塊、紅外接收頭、步進電機和直流電機都工作正常;當系統獲取相應信息后,對應的模塊能做出正確的反應,設計和測試成功。

基于STM32的語音識別智能家居控制器實現了語音控制、藍牙遠程和紅外遙控三種方式對室內窗簾、燈光、風扇以及溫濕度信息采集、火災報警、門禁控制等智能化控制。設計思路簡單,功能較全面,操作簡單,成本低廉,有一定的實用推廣價值。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合