近年來,智能家居行業(yè)迅速發(fā)展,但許多市場上的風(fēng)扇功能依然簡單。我們的智能風(fēng)扇以STM32單片機為核心,提供三種工作模式:自動模式通過溫度傳感器檢測環(huán)境溫度變化,自動調(diào)整風(fēng)扇轉(zhuǎn)速以優(yōu)化效果;手動模式允許通過按鍵或語音控制調(diào)整風(fēng)扇設(shè)置;人體識別模式則在檢測到人靠近時自動啟動。額外的定時功能支持設(shè)置自動關(guān)閉時間,為用戶帶來更智能和便捷的使用體驗。
引言
本文設(shè)計的智能風(fēng)扇具備以下功能:自動控制,根據(jù)外界溫度調(diào)整風(fēng)扇轉(zhuǎn)速;人體檢測,靠近時自動開啟,離開時自動關(guān)閉;聲音控制,利用LD3320語音芯片識別命令控制風(fēng)扇;燈光控制,通過語音或按鍵控制燈光;睡眠定時,設(shè)置定時時間后自動關(guān)閉風(fēng)扇。
系統(tǒng)設(shè)計
該設(shè)計選用的核心控制芯片是基于Cortex-M3內(nèi)核的STM32F103C8T6,它是一款高性能、高兼容、易開發(fā)、低功耗、低工作電壓以及具有實時數(shù)字信號處理的32位閃存微控制器產(chǎn)品。智能風(fēng)扇系統(tǒng)是由單片機、語音識別模塊、溫度傳感器模塊、紅外傳感器模塊等組成,系統(tǒng)的結(jié)構(gòu)圖如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)圖
語音識別模塊
語音識別模塊內(nèi)部包含LD3320芯片和STC11L08XE單片機,LD3320芯片由ICRoute公司設(shè)計,語音識別模塊集成麥克風(fēng)口、聲音輸出接口等外部電路,該芯片通過特別的算法可以完成非特定的語音識別,語音識別無需事先訓(xùn)練和錄音,只要說出相應(yīng)關(guān)鍵字,語音識別就可以完成,使用起來非常方便。
語音識別開始時,模塊的麥克風(fēng)接收周圍的聲音,這些聲音不一定是帶有關(guān)鍵字的聲音,也可能是一段沒有意義的聲音,語音識別芯片對接收的聲音進行頻譜分解,根據(jù)聲音特征提取相應(yīng)的頻率,然后與芯片數(shù)據(jù)庫中進行關(guān)鍵字的匹配,將會對不同關(guān)鍵詞進行打分,哪個分數(shù)高就選擇相應(yīng)的結(jié)果作為輸出。
DS18B20溫度傳感器
為了實現(xiàn)對周圍溫度的檢測該系統(tǒng)選用的是DS18B20可編程數(shù)字溫度傳感器,它具有抗干擾能力強、價格便宜、使用方便等優(yōu)勢[5]。傳感器測溫結(jié)果是通過其內(nèi)部精密晶振振動頻率隨溫度變化的特性得到的。傳感器內(nèi)部獨立包含一個獨立的測量芯片,芯片內(nèi)置存儲單元,包含64位的ROM和9字節(jié)的RAM,64位ROM用于存放產(chǎn)品編碼,9字節(jié)RAM的前兩字節(jié)用于保存溫度信息。
溫度傳感器DS18B20的高度集成化,大大降低了外接放大轉(zhuǎn)換等電路的誤差因素,測量出的溫度誤差很小[6]。檢測到的溫度數(shù)值可以在器件內(nèi)部轉(zhuǎn)換成數(shù)字量直接輸出,這樣方便了系統(tǒng)程序設(shè)計。溫度傳感器的詳細參數(shù)如下:
(1) DS18B20溫度傳感器與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。
(2) 工作電壓范圍1.8V~5.5 V。
(3) 測溫范圍:-55~+125°C,默認測溫分辨率為0.5°C。
(4) 可實現(xiàn)9~12位的數(shù)字讀數(shù)方式。
(5) 可以將多個傳感器并聯(lián)在一條總線上,測量多個地方的溫度。
(6) 傳感器不會因為電源反接而損壞。
OLED顯示屏
屏幕選用的是4針9.6寸OLED屏幕,這是一種新型的屏幕技術(shù),擁有自發(fā)光的特性,具有可視角度大、功耗低、對比度高等優(yōu)勢。對比lcd屏屏幕,OLED顯示效果更好、功耗更低、適合小系統(tǒng)。OLED屏幕支持3.3V~5V供電,所以不用修改模塊電路。OLED屏幕包含4個引腳分別是GND、VCC、SCL和SDA。GND和VCC接地和電源,SCL連接PA0,SDA連接PA1。OLED屏幕可以根據(jù)需要顯示出字符、數(shù)字、漢字等,使用起來簡單方便。
紅外傳感器模塊
該系統(tǒng)選用紅外對管傳感器檢測人體,該傳感器具有干擾小、便于裝配、使用方便等特點。紅外對管傳感器是由紅外發(fā)射管與光敏接收管等構(gòu)成,紅外對管傳感器工作時發(fā)射管會發(fā)出人眼不可見的紅外線,當檢測方向遇到障礙物時,紅外線就會反射回來被接收管接收,經(jīng)過LM393比較器電路處理之后,輸出指示燈會亮起,OUT口輸出低電平數(shù)字信號[7]。
傳感器的工作電壓為3.3V~5V,傳感器模塊輸出端口可以與單片機IO口直接相連,傳感器模塊檢測到人體時會持續(xù)輸出低電平信息。
直流風(fēng)扇
目前,市面上的220V風(fēng)扇使用起來不安全且不容易控制,所以該系統(tǒng)選用的是一個5V供電的直流風(fēng)扇,這是一種小型風(fēng)扇,使用起來更加安全,并且容易被單片機所控制。
因為是使用PWM波控制風(fēng)扇速度,所以直流風(fēng)扇可以有多種擋位選擇,可以根據(jù)自己需要調(diào)整合適的速度。直流風(fēng)扇的噪音很小,使用的時候不會影響到工作和休息,而且使得語音識別更加的可靠準確。
燈光模塊
該系統(tǒng)選用一個5V供電的LED燈光用于照明,LED學(xué)名叫做發(fā)光二極管,這種發(fā)光材料由N、P、As等多種化合物制成,當電子與空穴相遇就能夠產(chǎn)生光。這種燈光可以有多種顏色,本設(shè)計選用的是白色LED燈。
設(shè)計選用的燈光可以用于在晚上閱讀時候照明,也可以用來裝飾家居環(huán)境等等,可以滿足大部分的照明需要。將照明功能加入智能風(fēng)扇當中豐富了產(chǎn)品功能,還能夠節(jié)省臺燈占用的空間。智能風(fēng)扇中含有一個專門用于控制燈光的按鍵,除了按鍵之外,也可以用語音控制燈光,只要說出打開燈光、關(guān)閉燈光等關(guān)鍵詞就可以控制燈光運行。
按鍵模塊
該系統(tǒng)選用的是輕觸式開關(guān),該按鍵內(nèi)部有彈簧,這種按鍵只需要施加一個很小的力就能夠使開關(guān)閉合,松手時按鍵會自動彈起,手感很好,有段落感,發(fā)出清脆的聲音,容易辨別。
輕觸開關(guān)應(yīng)用于遙控器、玩具、家用電器等等,使用方面非常廣。影響輕觸按鍵使用的因素有很多,主要在于開關(guān)的防腐蝕性、壽命、按壓手感,一般開關(guān)為了降低接觸電阻,采用鍍銀方式,將按鍵引腳的基材進行鍍銀。
彈簧的好壞取決了按鍵的手感,目前使用最多的是日本的沖壓技術(shù),采用這種技術(shù)的按鍵可承受數(shù)萬次的按壓,非常耐用手感也非常好。設(shè)計采用7個按鍵組成獨立式按鍵,每個按鍵直接用IO口線組成單個鍵盤電路,配置靈活,軟件設(shè)計非常方便。
電源控制模塊
該系統(tǒng)采用的5V的micro usb向stm32最小系統(tǒng)板供電,因為stm32f芯片需要3.3V的電壓才能正常工作,所以利用單片系統(tǒng)板上的線性穩(wěn)壓器將5V電壓轉(zhuǎn)化為3.3V。這種線性穩(wěn)壓器成本非常低,只需要幾分錢就可以買到,體積非常小,可以非常方便地安裝在其他器件上,工作的時候噪音很小,輸出電流可靠穩(wěn)定,因此十分適合在單片機系統(tǒng)上使用。
系統(tǒng)電路設(shè)計
單片機供電電路
單片機的正常工作的電壓是2.0~3.6V,斷電時VBAT引腳為RTC和備份寄存器提供電源。穩(wěn)定良好的電源供應(yīng)是實現(xiàn)各種功能的基礎(chǔ),設(shè)計采用micro usb為系統(tǒng)板供電,供電電壓為5V,最小系統(tǒng)板內(nèi)部包含ME6211穩(wěn)壓芯片,該芯片可以將5V電壓轉(zhuǎn)化置3.3V,輸出電流為100MA,C1、C2、C3、C4均為濾波電容,過濾掉電流的交流部分,從而使得電流更加平滑。穩(wěn)壓芯片如圖2所示:
圖2 電源穩(wěn)壓芯片
單片機復(fù)位電路
復(fù)位電路可以實現(xiàn)單片機的初始化,系統(tǒng)穩(wěn)定運行需要上電復(fù)位和按鍵復(fù)位,圖中電路為低電平復(fù)位電路,通電時,由于電容兩端電壓無法突變,所以NRST為低電平復(fù)位,然后電容在緩慢充電,NRST端電壓緩慢升高,當上升到一定的高電平時,單片機開始正常工作。
當按下RST時NRST又變?yōu)榈碗娖綇?fù)位,復(fù)位電路是系統(tǒng)中不可或缺的一部分。單片機的復(fù)位電路如圖3所示:
圖3 單片機復(fù)位電路
燈光控制模塊電路
圖4 燈光控制電路
燈光需要5V的電壓供電,單片機最多輸出3.3V的電壓,所以需要一個繼電器和三極管來控制電路,由此可以實現(xiàn)弱電控制強電。一般動觸點K1和常閉引腳閉合,電燈不工作。當單片機IO口輸出信號時,繼電器產(chǎn)生磁效應(yīng)吸合銜鐵,動觸點K1和常開觸點閉合,電燈亮起。
當燈光停止工作時,為了防止繼電器的反電動勢對繼電器造成損害,所以并聯(lián)一個續(xù)流二極管保護繼電器。燈光控制電路如圖4所示。
溫度傳感器模塊電路
DS18B20智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,全部傳感器原件及轉(zhuǎn)換電路集成在形如一只三極管集成電路內(nèi),可以直接讀出數(shù)據(jù),溫度傳感器的DQ口連接單片機PB6引腳。溫度傳感器電路如圖5所示:
圖5 溫度傳感器電路
紅外對管傳感器電路
紅外對管傳感器采用3.3V供電,輸出端口連接單片機的PA6。紅外對管傳感器模塊電路如圖6所示:
圖6 紅外對管傳感器模塊電路
OLED屏幕電路
本設(shè)計采用4腳的0.96寸OLED屏幕作為顯示屏,它的分辨率為128x64,意思就是它有這么多的像素點,所有像素點都可以自發(fā)光,然后通過程序?qū)?yīng)像素點點亮就組成了自己想要的文字或圖案。
OLED的屏幕采用I2C通信方式,stm32作為主機輸入,OLED作為從機接收信息,采用軟件模擬I2C通信方式,將PA0設(shè)置為時鐘線,PA1設(shè)置為數(shù)據(jù)線。數(shù)據(jù)傳輸是根據(jù)時鐘線的電平信息進行相應(yīng)的操作,數(shù)據(jù)線用于傳輸信息。OLED顯示電路如圖7所示:
圖7 OLED顯示模塊電路
系統(tǒng)軟件設(shè)計
主程序設(shè)計
風(fēng)扇系統(tǒng)的程序設(shè)計使用的是C語言編程。除主程序外,還有多種子程序,分別執(zhí)行溫度讀取,電機控制,定時設(shè)置等,風(fēng)扇一共有人體識別模式、手動模式和自動模式三種模式。系統(tǒng)的程序流程圖如圖8所示:
圖8 系統(tǒng)流程圖
電機驅(qū)動程序設(shè)計
電機設(shè)置由定時器TIM4產(chǎn)生的PWM波控制,首先利用Timer4_Init(0,7200)初始化的TIM4定時器,設(shè)置定時器,使TIM4_CH4輸出PWM波,TIM_Set Compare4(TIM_Type Def*TIMx,uint16_t Compare4)函數(shù)可以調(diào)整輸出PWM波的占空比達到控制風(fēng)扇擋位的效果。
自動模式程序設(shè)計
自動模式下風(fēng)扇的擋位是根據(jù)溫度傳感器檢測到的周圍溫度變化而變化,并且傳感器檢測到周圍溫度低于20℃時,風(fēng)扇不會工作。溫度的讀取程序中,首先使用DS18B20_Init()初始化DS18B20,使能IO時鐘,設(shè)置IO口并根據(jù)時序檢測傳感器是否存在,若傳感器存在則通過DS18B20_Get_Temp()輸出溫度數(shù)值。單片機主函數(shù)中會一直讀取感器檢測到的溫度數(shù)值,并根據(jù)相應(yīng)的溫度數(shù)值改變風(fēng)扇至相應(yīng)的擋位,擋位選擇程序流程圖9所示:
圖9 擋位選擇流程圖
按鍵模塊程序
風(fēng)扇啟動時默認為手動模式,手動模式下可以通過語音和按鍵來控制風(fēng)扇。使用按鍵前先利用Init_Key_Pin()初始化按鍵IO,將IO設(shè)置為上拉輸入模式。主函數(shù)中通過循環(huán)While(1)執(zhí)行按鍵輸入判斷,當一個按鍵按下時,按鍵所處引腳接地,單片機通過讀取IO口處于電平變化判斷哪個按鍵被按下并執(zhí)行相應(yīng)的操作。為了消除按鍵機械抖動對判斷的影響,當檢測到按鍵被按下后會使用delay_ms(10)函數(shù)延時10ms后再對IO口的電平進行一次判斷。
語音識別模式程序
語音識別模塊的LD3320芯片與51單片機采用SPI通信,語音識別模塊的程序是在其模塊內(nèi)部編譯的,使用前在51單片機程序中設(shè)置LD3320語音識別芯片寄存器,將關(guān)鍵字以字符串的形式保存在一個二維數(shù)組之中,并對每一個關(guān)鍵字設(shè)置相應(yīng)的識別碼。
主函數(shù)首先初始化系統(tǒng),初始化51單片機,對LD3320芯片做復(fù)位操作激活其內(nèi)部DSP,51單片機反復(fù)啟動語音識別模塊的ASR(非特定人語音識別技術(shù))識別,當識別到聲音時使用Process Int0()函數(shù)發(fā)生中斷,讀取LD3320寄存器中的識別碼并返回到LD_Get Result()函數(shù)中,根據(jù)語音識別碼選擇語音識別結(jié)果,并在對應(yīng)引腳輸出低電平信息,stm32根據(jù)接收到不同引腳的電平信息對風(fēng)扇系統(tǒng)做出相應(yīng)的操作。
5系統(tǒng)測試
智能風(fēng)扇的組成包括stm32最小系統(tǒng)板,語音識別模塊,PWM調(diào)速風(fēng)扇,led燈光等。
運行測試
智能風(fēng)扇包含三種工作模式,手動模式下通過按鍵和語音控制風(fēng)扇,自動模式下,風(fēng)扇擋位根據(jù)周圍溫度高低做出變化,人體識別模式是檢測到人出現(xiàn)在風(fēng)扇前就會啟動,當人離開時風(fēng)扇會自動關(guān)閉。本章主要對自動模式和人體識別模式進行測試。
自動模式測試
風(fēng)扇切換成自動模式時,風(fēng)扇開始自動轉(zhuǎn)動,OLED屏幕顯示擋位為1,周圍溫度為21℃。實物圖如圖10所示:
圖10 自動模式測試
用手將溫度傳感器捂熱,OLED屏幕顯示的溫度數(shù)值逐漸升高,當溫度到達25℃,擋位升至2檔,實物如圖11所示:
圖11 自動模式測試
將手松開后,OLED顯示的溫度在慢慢下降,最終回到21℃,風(fēng)扇擋位為1。
人體識別模式測試
風(fēng)扇切換成人體識別模式,OLED屏幕顯示模式為Introduction。沒有人體靠近時,風(fēng)扇默認為待機狀態(tài),輸出信號指示燈為熄滅狀態(tài),電源指示燈長亮,紅外傳感器運行實物如圖12所示:
圖12 人體識別模式測試
當用手靠近紅外傳感器時,傳感器輸出指示燈亮起,風(fēng)扇開始轉(zhuǎn)動,把手遠離紅外傳感器時,經(jīng)過5s后,風(fēng)扇停止轉(zhuǎn)動。傳感器響應(yīng)時實物如圖13所示:
圖13 人體識別模式測試
該智能風(fēng)扇系統(tǒng)不僅支持傳統(tǒng)的手動模式下通過按鍵控制燈光、風(fēng)扇開關(guān)、風(fēng)扇擋位和定時功能,還提供了更先進的功能。語音識別系統(tǒng)可以準確識別指令,控制風(fēng)扇和燈光的運行。
在自動模式下,風(fēng)扇根據(jù)溫度傳感器檢測到的溫度自動調(diào)整擋位:溫度升高時增加擋位,溫度降低時減少擋位。人體識別模式通過紅外傳感器檢測到人體時啟動風(fēng)扇,若5秒內(nèi)未檢測到人體,則風(fēng)扇自動關(guān)閉。
-
傳感器
+關(guān)注
關(guān)注
2551文章
51097瀏覽量
753527 -
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
355981 -
智能風(fēng)扇
+關(guān)注
關(guān)注
1文章
46瀏覽量
18300
發(fā)布評論請先 登錄
相關(guān)推薦
評論