肖陽陽 黃憲通
摘要:該設(shè)計(jì)選用STM32作為主控單元,采用LD3320語音識別芯片接收指令并與數(shù)據(jù)庫中已存數(shù)據(jù)比對,將處理結(jié)果發(fā)送到主控單元,其發(fā)送指令控制相應(yīng)模塊,通過溫度傳感器測量水溫并選用超聲波傳感器測量水位高度,采用ESP8266無線通信模塊訪問阿里云服務(wù)器,實(shí)現(xiàn)與手機(jī)App之間的數(shù)據(jù)通信。在手機(jī)界面顯示測量值和設(shè)置閾值,根據(jù)測量值控制加熱棒加熱和水泵加水,也可點(diǎn)擊手機(jī)界面功能按鈕實(shí)現(xiàn)相應(yīng)功能操作。該設(shè)計(jì)經(jīng)過多次測試,針對影響因素進(jìn)行分析,可以實(shí)現(xiàn)預(yù)期功能。
關(guān)鍵詞:無線通信;單片機(jī);語音識別;傳感器;智能家居;語音控制
中圖分類號:TN921? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2023)34-0108-04
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)
0 引言
近年來伴隨5G技術(shù)的出現(xiàn),使得物聯(lián)網(wǎng)和互聯(lián)網(wǎng)的聯(lián)系變得更加緊密,其中智能家居系統(tǒng)更是顯著代表。市場上常見的傳統(tǒng)浴缸只具備沐浴功能,使用時(shí)需要用戶自己放水,不能保持恒定水溫,也不具備按摩和播放音樂功能,用戶的體驗(yàn)僅僅在于躺下沐浴,因此對于浴缸的智能化需求迫在眉睫。一些發(fā)達(dá)國家在智能家居領(lǐng)域的發(fā)展前景突出,早在20世紀(jì)80年代,美國就已經(jīng)開始研制智能住宅系統(tǒng)并且取得了一定成果。目前美國的家庭對于智能家居的使用率達(dá)到了一半以上,同時(shí)日本也緊跟其后,推出了一系列具有代表性的智能家居產(chǎn)品。盡管我國智能浴缸產(chǎn)業(yè)發(fā)展呈現(xiàn)上升趨勢,但實(shí)際的市場分布并不廣泛,和智能馬桶、智能淋浴房相比,在日常家庭中的應(yīng)用不多,人們對于智能浴缸的需求在增加,但是真正達(dá)到智能化的浴缸在市場中所占的數(shù)量并不多,總之,技術(shù)的提升仍是值得關(guān)注的問題。
1 系統(tǒng)總體方案設(shè)計(jì)
基于語音控制的智能浴缸設(shè)計(jì),分為硬件設(shè)計(jì)和軟件設(shè)計(jì)2部分。硬件設(shè)計(jì)部分包括主控模塊、語音識別模塊、無線通信模塊、水溫檢測模塊、水位檢測模塊、按摩模塊、加熱模塊、加水模塊和音樂播放模塊。軟件設(shè)計(jì)部分包括主程序設(shè)計(jì)、無線通信系統(tǒng)設(shè)計(jì)和手機(jī)程序開發(fā),系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
該智能浴缸選用了STM32作為最小核心系統(tǒng),可以實(shí)現(xiàn)本地語音控制和手機(jī)遠(yuǎn)程控制2種方式。用戶喚醒語音助手,說出目標(biāo)指令,語音識別芯片接收來自用戶的指令并與數(shù)據(jù)庫中的信息進(jìn)行分析對比,將識別結(jié)果發(fā)送給STM32,STM32對指令解碼后,發(fā)出控制指令來控制相應(yīng)模塊實(shí)現(xiàn)加熱、加水、按摩、音樂播放等功能[1]。無線通信模塊用于連接網(wǎng)絡(luò),通過網(wǎng)絡(luò)訪問阿里云服務(wù)器,實(shí)現(xiàn)與手機(jī)終端之間的數(shù)據(jù)通信。STM32接收到來自溫度傳感器和超聲波傳感器采集到的水溫和水位數(shù)據(jù),并將采集的數(shù)據(jù)通過ESP8266Wi-Fi模塊送達(dá)用戶手機(jī)終端,在手機(jī)界面上顯示測得的數(shù)據(jù),由用戶選擇自動模式或者手動模式。自動模式下,系統(tǒng)比較測量值和設(shè)置值發(fā)送控制指令給繼電器,繼電器控制水泵加水、控制加熱棒加熱,直到水溫水位達(dá)到設(shè)置值。手動模式下,通過功能按鈕選擇浴缸具備的各種功能。
2 硬件設(shè)計(jì)
以STM32F103C8T6為基礎(chǔ),結(jié)合LD3320芯片和ESP8266芯片,構(gòu)建一套具有語音識別功能和手機(jī)遠(yuǎn)程控制功能的智能浴缸控制電路。硬件設(shè)計(jì)部分包括主控模塊、語音識別模塊、無線通信模塊、水溫檢測模塊、水位檢測模塊、按摩模塊、加熱模塊、加水模塊和音樂播放模塊。
2.1 主控模塊
STM32F103C8T6芯片是一款基于ARM Cortex-M3內(nèi)核的32位微控制器,采用LQFP48封裝,由意法半導(dǎo)體公司推出,具有高性能、低功耗的特點(diǎn)。STM32主控芯片引腳及外接圖如圖2所示。引腳功能如下:PC13連接指示燈,PA4~PA7是SPI1,PB12~PB15是SPI2,PA9、PA10是串口1,PA2、PA3是串口2,PB10、PB11是串口3,PB6~PB9一般可以用于PWM輸出,對應(yīng)TIM4。PC13~15用于時(shí)鐘相關(guān)。
2.2 語音識別模塊
使用LD3320芯片能夠提供更先進(jìn)的語音識別技術(shù),采用了先進(jìn)的處理模塊,并且具有AD/DA轉(zhuǎn)換器,可以實(shí)現(xiàn)更有效的語音識別[2]、達(dá)到更精準(zhǔn)的聲音控制,從而更好地滿足人們的日常交流需求。通過采集用戶的語音指令,對接收到的語音指令進(jìn)行頻譜分析,提取關(guān)鍵詞特征,與已存儲的數(shù)據(jù)進(jìn)行比對,然后輸出對應(yīng)的返回?cái)?shù)據(jù)。
2.3 無線通信模塊
使用ESP8266芯片,內(nèi)部集成了完整的Wi-Fi網(wǎng)絡(luò)解決方案,擁有SDIO、SPI等多種通信接口,通過訪問阿里云服務(wù)器建立手機(jī)終端與主控模塊之間的數(shù)據(jù)通信,主控模塊采集的數(shù)據(jù)可以通過無線通信模塊發(fā)送到手機(jī),并在手機(jī)界面上顯示,也可以在手機(jī)上遠(yuǎn)程控制系統(tǒng)工作[3]。
2.4 水溫檢測模塊
使用DS18B20溫度傳感器,實(shí)現(xiàn)對水溫的實(shí)時(shí)檢測,并將測量數(shù)據(jù)傳遞給STM32。DS18B20溫度傳感器的優(yōu)點(diǎn)在于體積小,使用時(shí)能夠得到較快響應(yīng)。可以通過單線接口將溫度信息傳輸?shù)街骺刂破?,也可以通過這條總線將主控制器發(fā)送的控制指令發(fā)送到DS18B20[4]。
2.5 水位檢測模塊
使用HC-SR04超聲波傳感器,實(shí)現(xiàn)對水位的實(shí)時(shí)檢測,并將測量數(shù)據(jù)傳遞給STM32。HC-SR04是一種先進(jìn)的超聲波傳感器,可以準(zhǔn)確地檢測出浴缸邊緣與水面之間的距離,由兩個(gè)獨(dú)立的傳感器組成,一個(gè)負(fù)責(zé)接收和傳輸40KHz的超聲波脈沖,另一個(gè)則負(fù)責(zé)處理和傳輸[5]。
2.6 按摩模塊
使用驅(qū)動連接一個(gè)小電機(jī),電機(jī)震動模擬按摩功能實(shí)現(xiàn)。用戶喚醒智慧助手說出“打開按摩”“關(guān)閉按摩”的指令,主控模塊接收到指令,控制電機(jī)震動或者關(guān)閉。
2.7 加熱模塊
HF46F12-HS1是一種超小型中功率繼電器,觸電是繼電器中的重要結(jié)構(gòu)件,該繼電器擁有5A觸點(diǎn)切換能力,觸點(diǎn)形式為1H(常開類型),觸點(diǎn)材料選擇使用具有優(yōu)秀抗粘接性的AgSnO2和具有高燒蝕性的AgNi。而且該繼電器很小,可以在密度較小的情況下安裝。
使用HF46F12-HS1,通過連接一個(gè)加熱棒對水溫進(jìn)行加熱,當(dāng)測量數(shù)據(jù)低于設(shè)定值時(shí),傳輸數(shù)據(jù)到主控模塊,其控制加熱模塊進(jìn)行水溫加熱操作,當(dāng)水溫達(dá)到閾值時(shí),該模塊停止工作。
2.8 加水模塊
使用HF46F12-HS1,通過連接一個(gè)水泵實(shí)現(xiàn)加水,當(dāng)測量數(shù)據(jù)低于設(shè)定值時(shí),傳輸數(shù)據(jù)到主控模塊,其控制加水模塊進(jìn)行加水操作,當(dāng)水位達(dá)到閾值時(shí),該模塊停止工作。
2.9 音樂播放模塊
JQ8400-FL擁有強(qiáng)大的信息查詢功能,隨時(shí)可以得到語音芯片的狀態(tài)信息,并且支持歌曲切換、播放選擇、曲目選擇等功能,與日常音樂播放軟件功能完全一致。使用JQ8400-FL芯片,通過連接一個(gè)喇叭實(shí)現(xiàn)音樂播放,用戶喚醒智慧助手說出“打開音樂”“關(guān)閉按摩”的指令,主控模塊接收到指令,控制音樂播放或者關(guān)閉。
3 軟件設(shè)計(jì)
軟件部分包括主程序設(shè)計(jì)、無線通信系統(tǒng)設(shè)計(jì)和手機(jī)程序開發(fā)。
3.1 開發(fā)所需軟件
本系統(tǒng)采用Keil作為主要編程工具,使用Eclipse作為一個(gè)跨平臺的自由集成開發(fā)環(huán)境。
3.2 主程序設(shè)計(jì)
STM32F103C8T6開發(fā)環(huán)境的搭建,需要先對STM32和各個(gè)功能模塊進(jìn)行初始化,目的在于對時(shí)鐘和GPIO等進(jìn)行配置,符合系統(tǒng)需要的狀態(tài)。等待Wi-Fi連接成功,在存儲器中讀取水位閾值和水溫閾值,由水溫傳感器和超聲波傳感器檢測水位和水溫?cái)?shù)據(jù),若用戶說出語音識別喚醒指令,進(jìn)入語音識別模塊,通過語音控制開關(guān)燈、開關(guān)按摩、開關(guān)音樂的操作。數(shù)據(jù)上報(bào)手機(jī)App時(shí)間到達(dá),系統(tǒng)將數(shù)據(jù)包通過Wi-Fi發(fā)送給服務(wù)器,然后發(fā)送給手機(jī)。手機(jī)接收到數(shù)據(jù),獲取數(shù)據(jù)長度,對數(shù)據(jù)包進(jìn)行驗(yàn)證。判斷選擇自動模式還是手動模式,并對水位閾值、水溫閾值和燈光進(jìn)行設(shè)置,將測量數(shù)據(jù)與設(shè)置值比較判斷是否對水泵控制、加熱控制,主程序流程圖如圖3所示。
語音識別模塊開始工作時(shí),用戶可以說出不同的指令,該模塊將語音指令進(jìn)行解碼分析,輸出結(jié)果給主控模塊。在主程序中識別語音發(fā)送的命令,執(zhí)行不同的判斷。如打開音樂的指令判斷,在識別到用戶說出該指令時(shí),STM32控制音樂播放模塊工作,沒有識別到該指令時(shí),執(zhí)行下一項(xiàng)。
3.3 無線通信系統(tǒng)設(shè)計(jì)
無線通信系統(tǒng)配置需要對串口進(jìn)行初始化,建立數(shù)據(jù)同步,設(shè)置合適的波特率,然后對函數(shù)進(jìn)行初始化,通過發(fā)送AT指令建立與服務(wù)器之間的TCP連接。返回連接成功時(shí),說明主控制系統(tǒng)與手機(jī)終端之間已經(jīng)建立聯(lián)系。無線通信系統(tǒng)配置流程圖如圖4所示。
ESP8266和網(wǎng)絡(luò)調(diào)試助手之間通過服務(wù)器建立聯(lián)系。觀察串口調(diào)試助手發(fā)送窗口,每條指令成功后會返回OK,看到OK后再點(diǎn)擊下一條指令,當(dāng)發(fā)送AT+CIPSEND指令后,收到OK回復(fù),表明接下來開始通過ESP8266向外發(fā)送數(shù)據(jù)。
3.4 手機(jī)程序開發(fā)
手機(jī)程序開發(fā)設(shè)計(jì),首先對主界面顯示進(jìn)行規(guī)劃,結(jié)合硬件模塊的功能對代碼部分進(jìn)行總結(jié)規(guī)劃,開始代碼編寫。手機(jī)App的開發(fā)使用Eclipse作為開發(fā)環(huán)境,使用Java語言進(jìn)行代碼編寫,并創(chuàng)建了一個(gè)手機(jī)遠(yuǎn)程控制界面的模擬器。
當(dāng)用戶打開設(shè)置好的熱點(diǎn)時(shí),設(shè)置點(diǎn)擊連接按鈕,界面顯示W(wǎng)i-Fi是否連接成功,連接成功時(shí),手機(jī)界面顯示“已連接”,反之顯示“未連接”,系統(tǒng)重新啟動Wi-Fi線程。接收來自主控制系統(tǒng)的數(shù)據(jù),并對測試值進(jìn)行判斷,當(dāng)水位測試值小于閾值時(shí),手機(jī)界面上顯示“水位低”,反之不顯示。當(dāng)水溫測試值小于閾值時(shí),手機(jī)界面上顯示“水溫低”,反之不顯示。設(shè)置模式按鈕,分別為“自動模式”和“手動模式”,自動模式下設(shè)置:對比測量水溫水位值與設(shè)置閾值大小,發(fā)送數(shù)據(jù)給主程序,控制水泵和加熱棒的自動打開操作,手動模式下設(shè)置:點(diǎn)擊手機(jī)下方功能按鈕,可以得到相應(yīng)回復(fù)。
4 系統(tǒng)測試及結(jié)果分析
通過一根電源線,將電路板和5V穩(wěn)定電壓的充電寶連接起來,打開電路板上的電源開關(guān),此時(shí)STM32上的指示燈亮起,紅色是電源指示燈,藍(lán)色是Wi-Fi指示燈。打開手機(jī)熱點(diǎn)進(jìn)行連接,當(dāng)表示W(wǎng)i-Fi狀態(tài)的指示燈滅表示兩者連接成功。此時(shí)會聽到繼電器響一聲,由于模擬浴缸環(huán)境內(nèi)水溫較低,加熱棒開始加熱操作,測試結(jié)果表明系統(tǒng)連接電源成功,且連接Wi-Fi正常。
4.1 手機(jī)App測試
在手機(jī)App界面上可以實(shí)時(shí)檢測水溫水位情況,此時(shí)連接狀態(tài)為已連接。點(diǎn)擊模式按鈕的自動模式,觀察電路板上加熱棒和水泵工作。選擇模式按鈕的手動模式,當(dāng)點(diǎn)擊頁面最下方的6個(gè)功能按鈕時(shí),觀察電路板做出回應(yīng)。多次測試結(jié)果表明,手機(jī)App可以實(shí)現(xiàn)穩(wěn)定遠(yuǎn)程控制。
4.2 語音識別功能測試
設(shè)備連接5V穩(wěn)定電壓后,語音識別模塊紅色燈亮起,幾秒后熄滅,表明語音識別模塊進(jìn)入工作狀態(tài)。說出喚醒詞“你好,小益”,聽到“在呀”的回復(fù),用戶發(fā)出不同的指令,觀察系統(tǒng)給出不同回應(yīng)。
4.3 系統(tǒng)總測試
使用輸出5V穩(wěn)定電壓的充電寶連接電路板,觀察指示燈的亮滅情況,打開手機(jī)設(shè)置好的熱點(diǎn),此時(shí)指示燈改變。喚醒智慧助手“你好,小益”聽到“在呀”的回復(fù)。說出希望實(shí)現(xiàn)的功能,設(shè)備分別給出回應(yīng)。使用安卓手機(jī)App連接電路板,對設(shè)備進(jìn)行控制。設(shè)備同樣會給出相應(yīng)回應(yīng)。實(shí)驗(yàn)結(jié)果表明,基于語音控制的智能浴缸功能可實(shí)現(xiàn),并且具備本地語音控制和手機(jī)遠(yuǎn)程控制兩種方式。
5 結(jié)束語
基于語音控制的智能浴缸的設(shè)計(jì),前期根據(jù)課題進(jìn)行市場調(diào)研和背景調(diào)查,分析系統(tǒng)所具備的功能,滿足本地語音控制和遠(yuǎn)程手機(jī)控制兩種方式。
實(shí)驗(yàn)結(jié)果顯示,系統(tǒng)可以正常運(yùn)行,但語音識別會存在誤觸發(fā)現(xiàn)象,與關(guān)鍵詞相似會誤識別為關(guān)鍵詞,在說出喚醒詞時(shí),會發(fā)生因?yàn)橐魳凡シ呕蛘唠姍C(jī)振動聲音過大而無法識別的情況,今后需要對比進(jìn)行改正。另外受到無法模擬真實(shí)浴缸環(huán)境條件的影響,一些水溫水位的檢測值不準(zhǔn)確,無法排除其他因素的影響。
參考文獻(xiàn):
[1] 崔浩斌,劉偉.基于STM32單片機(jī)的智能家居控制系統(tǒng)設(shè)計(jì)研究[J].微處理機(jī),2020,41(1):61-64.
[2] 陳喜春.基于LD3320語音識別專用芯片實(shí)現(xiàn)的語音控制[J].電子技術(shù),2011,38(11):20-21.
[3] 范興隆.ESP8266在智能家居監(jiān)控系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(9):52-56.
[4] 張?jiān)?,張炎,趙延軍.基于DS18B20溫度傳感器的數(shù)字溫度計(jì)[J].微電子學(xué),2007,37(5):709-711,716.
[5] 蘇琳.基于HC-SR04的超聲波測距器的設(shè)計(jì)[J].科技信息,2012(9):124-125.
【通聯(lián)編輯:唐一東】