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