翁利俠
(福建無線電設備有限公司,福建三明 365001)
隨著科技的飛速發展,人類在向文明邁進,人們的生活質量有著很大的提高,不同時代對居住空間和環境的要求不同,越來越多的人們不拘于舊式居住環境,而提出了更高的要求[1]。人們生活質量的穩步提高是生活水平進步的必然發展過程,其中科技技術的發展更是給生活帶來舒適、環保和安全的同時也讓居住環境越發舒服和便捷[2]。窗簾充當著家庭生活中的門衛,是家居生活不可缺少的產品,它讓室內與外界隔絕,保持居室的私密性,同時又是家裝不可或缺的裝飾品,使得人們居住環境越發舒適和安全[3]。現在傳統窗簾必須人為地去手動拉動,為了滿足光線強度的舒適度和居住環境的隱私性,每天手動拉動窗簾也越發頻繁,尤其是在占地較大的別墅或復式公寓手動拉動窗簾比較麻煩[4]。基于以上原因,本文以單片機STM32F103作為系統的核心處理平臺,設計了一款具有多功能、穩定、安全、成本低等特點的智能窗簾控制系統。解決了人們每天手動拉動窗簾的問題,也可以通過外界的溫度和光照強度來控制窗簾的開關,使得室內光線和溫度智能化,讓人們處于一種較為舒適的生活環境,不僅提高了家居生活的私密性又能突顯生活的檔次,進一步滿足了人們的享受需要,提高了人們的生活質量和效率[5]。
本文以STM32F103單片機為開發平臺,根據智能窗簾控制系統需要實現的功能,進行硬件電路的設計[6]。主要由3大部分組成,分別為數據采集、控制中心和執行結構。其中數據采集是由各類電子器件構成的電路組成,通過各種傳感器,分別對室內環境溫度、室內光照強度、室內聲音、紅外線信號和定時區間進行采集。經過單片機控制中心一系列分析處理后轉化外相應的數據信號,與產品設定的各種數據閾值進行比較,根據比較的結果,控制ULN2003A步進電機進行相關操作,通過電機的正轉或者反轉,從而控制窗簾的自動升降,并將處理后的數據信號在LCD1602液晶屏上顯示,可以清晰看到各種傳感器采集的數據,也可以判斷數據采集的準確性。該產品可以在顯示屏上準確獲得當時的時間、溫度、窗簾的動作狀態以及系統的工作模式等數據。圖1所示為智能窗簾系統總體框圖。

圖1 系統總體框圖
為實現方便可行的智能窗簾控制系統策略,本系統硬件電路以STM32F103為核心、由電源設計電路、數據采集電路、電機控制電路、液晶顯示電路等模塊組成,控制系統采用閉環控制[7]。
控制系統采用5 V電壓供電。但STM32F103C8T6芯片拓展電路需要3.3 V供電,故設計一個降壓電路,把5 V電壓降壓到3.3 V,以滿足整個控制系統穩定運行。圖2所示為供電電源電路。選用輸出電壓為3.3 V的正向低壓降穩壓器AMS1117-3.3,圖3所示為AMS1117-3.3降壓電路圖,圖中為保證工作穩定性,接入一個10μF/16 V的鉭電容,兩個輸入電容C5和C7,C14和C8是輸出濾波電容[8]。

圖2 供電電源電路

圖3 AMS1117-3.3降壓電路
系統數據參數采集包括溫度、光照強度、語音、紅外信號、定時時間區間等,并通過各類傳感器進行采集,并把采集到的數據發給控制中心處理[9]。
2.2.1 溫度采集電路的設計
采用單線數字溫度傳感器DS18B20。為一種新的“一線器件”,圖4所示為傳感器接線原理圖,DQ為主要通訊線路,主機可以通過控制DQ線路DQ高低電平時間來對DS進行讀取和寫入,外加一個上拉電阻,DS的總線采樣是在總線拉低后15μs開始的,其工作流程為:開始、DS18B20復位、跳過ROM匹配指令、輸入讀取溫度指令、讀取溫度值、顯示溫度值、結束[10]。

圖4 DS18B20接線原理
2.2.2 光照強度采集電路的設計
光照強度采集電路選用光敏電阻進行光照強度采集。只需要2個電極,工作原理是基于內光電效應。阻值與光照強度成反比即光照愈強,阻值就愈低,并且它對光線十分敏感,當它處于無光照條件下時,呈高阻值狀態,一般可到達1.5 MΩ,如圖5所示為光照采集電路原理圖,取電阻R8上的電壓差值即可判斷光強變化。因為檢測的是一個電壓信號,單片機不能直接處理,32單片機內部自帶AD,故直接接入AD輸入口即可。將接收到的所測光照強度信號,在數模轉換模塊的處理后,得到光線值[11]。

圖5 光照采集電路原理
2.2.3 語音識別電路的設計
采用非特定語音識別LD3320芯片,通過話筒收集聲音數據,經濾波、放大處理后發送到LD3320進行語音識別,把處理結果輸出到控制中心中。控制中心通過接收從語音識別芯片輸出的處理結果數據,進行解析,對ULN2003A步進電機發送相應的操作指令,完成窗簾的開和關動作[12]。
為了確認系統是否識別到聲音,設計中加入一個LED發光二極管,當LD3320收集到語音信號“小白”時,LED點亮,以此來提示有聲音發送。在指示燈亮時說對應的關鍵詞可以讓窗簾進行打開或者關閉,比如當指示燈亮時,說“開窗”時,系統檢測到會驅動電機進行正轉即窗簾打開,當指示燈亮時,說“關窗”時,系統檢測到時會驅動電機進行翻轉,即窗簾關閉,圖6所示為LD3320語音識別原理圖。

圖6 LD3320接線原理
2.2.4 紅外接收電路的設計
采用HX1838紅外接收頭為一體化紅外接收頭,解調信號輸出端接在單片機P3.2引腳上。紅外遙控系統主要分為3部分,分別為調制、發射和接收。利用外部中斷進行數據的接收[13]。圖7所示為紅外接收電路原理。

圖7 紅外接收電路原理
采用ULN2003A芯片用于步進電機驅動電路中。圖8所示為ULN2003A的電路原理。

圖8 ULN2003A電路原理
采用LCD1602液晶顯示屏。進行初始化,然后設置顯示的字符串即可控制顯示屏顯示想要的結果。該顯示器內部設有存儲器,其存儲器中存儲了英文字母、數字以及圖形等,這些數據共同構成了一個數據庫,當顯示器工作時,只需調用庫中的數據,即可實現對顯示屏的編輯[14]。圖9所示為LCD1602的電路原理。

圖9 LCD1602電路原理
對整個系統進行測試,檢驗系統實現的功能是否達標,各個硬件電路,各種軟件設計以及軟件和硬件設計是否存在沖突,使得設計的控制系統更具有現實性。
在顯示屏左下角可以看到系統當前模式,可以通過K4鍵位調節模式,在手動模式下主要通過手動、紅外線遙控、語音識別來關窗簾,開窗簾。其中,通過手動按鍵位K2可以實現開窗簾,按K3可以實現關窗簾;紅外遙控器上對應的1~4按鍵和實物上的K1~K4一一對應,遙控器可以通過對準HX1838紅外接收一體頭來實現紅外遙控控制;當我們說關鍵詞“小白”,語音對應的LED會亮,指示燈亮時需要再說“開窗”或“關窗”,就可以實現窗簾的開關。系統窗簾的開關狀態可以在顯示屏右下角看,ON表示系統窗簾打開,OFF則表示系統窗簾關閉。圖10所示為手動模式下實物測試下窗簾的打開。

圖10 手動模式下實物
自動模式下主要通過溫度和光照強度控制窗簾的開和關。在檢測溫度功能前,需要提前設置溫度值,以確保功工作能正常運行。實物檢測溫度功能時,當外界溫度達不到設置的溫度值時,可以拿手指去捏DS18B20溫度傳感器,人為的去改變系統溫度,讓溫度到達系統要求,從而控制窗簾的關閉,以檢測該功能是否能正常運行。圖11所示為自動系統下,設定溫度值為30℃時系統關閉窗簾的實物圖。當圖中左上角的光敏電阻檢測到有光照時,電機會反轉即窗簾會關閉,當檢測到無光照時,電機會正轉即窗簾會打開。當出現設定的溫度和光照強度在都滿足系統控制窗簾條件下時,溫度的優先級會高于光照強度,

圖11 自動模式下實物
在反復測試20次后,自動模式下各種操作都無異常,而在手動模式下的語言識別卻不太靈敏,在測試的20次中有8次出現異常,在更換手機充電器(5V 2A)后恢復正常,原使用手機充電器(5V 1.5A),推測原因是電壓供給系統各模塊電壓不穩定,導致語音識別以及溫度檢測出現不精確現象。
本文基于STM32F103設計了一款智能窗簾控制系統。設計硬件電路與軟件程序,其中硬件電路設計了系統電源電路、數據采集電路、最小組成系統電路以及系統外圍電機控制電路的設計。通過多種傳感器收集各種數據,控制電機正反轉以達到控制窗簾的自動升降。通過LCD1602顯示當前窗簾的時間、溫度、工作模式、工作狀態等信息。搭建系統實物測試平臺,測試硬件設計和軟件設計是否出現沖突的現象。根據測試到的數據結果,對本次課題設計進行調試、分析及改進。從實驗結果可以得出該系統性價比高、可靠性強。