新聞中心

EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 設(shè)計應(yīng)用 > 基于ESP32S3的智能家居控制面板系統(tǒng)設(shè)計

基于ESP32S3的智能家居控制面板系統(tǒng)設(shè)計

作者:譚偉偉(深圳康佳電子科技有限公司,深圳 518057) 時間:2023-08-26 來源:電子產(chǎn)品世界 收藏
編者按:設(shè)計了一款用于控制智能家居設(shè)備的帶屏控制面板,主控部分采用樂鑫ESP32S3系統(tǒng)級芯片并自帶WIFI功能,屏幕使用LCD液晶屏QSPI接口;面板自帶3個按鍵可自定義控制功能;語音采用ES8388編解碼芯片和雙麥?zhǔn)耙?;系統(tǒng)可支持語音控制。

是一種可控制全屋智能設(shè)備的入口設(shè)備,通過Wi-Fi 或以太網(wǎng)接口的方式連接云平臺,同步全屋智能設(shè)備到面板上,在面板上可以隨時的監(jiān)控各種設(shè)備以及一鍵執(zhí)行特定場景的功能,它具有操作簡單方便、顯示直觀、方便安裝部署等方面優(yōu)點。

本文引用地址:http://butianyuan.cn/article/202308/449955.htm

目前主流的帶屏基本采用安卓系統(tǒng),安卓系統(tǒng)功能強大,但系統(tǒng)復(fù)雜需經(jīng)過多方面的適配工作和精簡,另外采用安卓方案的整體成本會較高,不易推廣;本文基于 方案設(shè)計的控制面板開發(fā)高效,系統(tǒng)穩(wěn)定性強,成本上也具有很大的競爭力。

1 硬件設(shè)計

硬件系統(tǒng)主控采用樂鑫官方的-WROOM-1 模組, 是一款低功耗的 MCU 系統(tǒng)級芯片(SoC),支持2.4 GHz 和低功耗藍牙(Bluetooth? LE) 雙模無線通信。芯片集成了Xtensa? 32 位LX7 雙核處理器、超低功耗協(xié)處理器、 基帶、藍牙基帶、RF 模塊以及外設(shè),其運行主頻最高可達240 M,可用GPIO 口高達45 個滿足大部分使用場景,支持QSPI、QuadSPI、Octal SPI 等高速接口。ESP32S3-WROOM-1 模組在ESP32S3 芯片基礎(chǔ)上,內(nèi)置了時鐘電路、 電路、擴展Flash和Ram,極大地方便了開發(fā)者使用。

整體硬件系統(tǒng)主要包括電源模塊、主控模塊、屏驅(qū)動模塊、麥克風(fēng)電路模塊、喇叭功放模塊,整體的硬件系統(tǒng)如圖1。

1693012095129876.png

圖1 硬件系統(tǒng)框圖

其中電源模塊采用一般常規(guī)86盒面板的設(shè)計方式,即電源部分和核心部分進行分離,電源部分需接入220 V交流市電,然后再進行變壓、整流、濾波、穩(wěn)壓處理等到較穩(wěn)定的5 V 直流電壓供給核心部分,而核心部分根據(jù)不同模塊的供電需要再進行降壓處理。主控模塊使用了ESP32S3-WROOM-1 模組,因此極大簡化了硬件設(shè)計,但仍要預(yù)留UART 下載電路和IO0 下載使能管腳、復(fù)位信號這些關(guān)鍵的功能管腳;屏驅(qū)動模塊接口采用QSPI 方式連接GC9501 屏幕驅(qū)動芯片,QSPI 可同時傳輸4 bit 的信號,因此相比于傳統(tǒng)的SPI 接口,QSPI 具有更高的傳輸效率,同時也會增加IO 口的使用數(shù)量,背光控制電路上采用了1 個三極管作為開關(guān),當(dāng)屏需要調(diào)光時可控制PWM 信號方式控制屏的亮度大??;麥克風(fēng)模塊采用模擬雙麥,接到ES8388 ADC 接口上,轉(zhuǎn)成I2S 信號送入ESP32S3 中,ESP32S3 內(nèi)部自帶I2S 音頻總線,可采集處理I2S 信號;喇叭驅(qū)動電路由ESP32S3 輸出I2S 信號,給到ES8388 的DAC 接口,再由ES8388 輸出模擬信號給到功放電路進行放大再輸出到喇叭中,這里功放采用CS8122 模擬功放這款D 類放大器,最大支持3W 功率輸出,通過設(shè)定輸入電阻可設(shè)置放大倍數(shù),本設(shè)計采用47 K 電阻值,放大倍數(shù)約6.3倍,滿足家居的使用場景,在ES8388 電源端需1 μF 去耦電容旁路到地以確保其能有更高的效率和濾除低頻噪音;按鍵則使用3 個GPIO 口并下拉到地。

2 軟件設(shè)計

樂鑫以開放生態(tài)的理念對自有產(chǎn)品進行管理維護,每個人都可以從樂鑫官方指定的地址獲取開發(fā)SDK,本軟件設(shè)計采用穩(wěn)定成熟的esp-idf 開發(fā)SDK 對ESP32S3進行開發(fā),整體的軟件架構(gòu)如圖2。

1693012192726516.png

圖2 軟件架構(gòu)

esp-idf 是一套以FreeRTOS 為基礎(chǔ)的開發(fā)框架,它部署簡單,資料豐富,文件架構(gòu)清晰。本設(shè)計以espidf開發(fā)框架為基礎(chǔ),整體的程序大致可分為4 層,描述如下。

應(yīng)用開發(fā)層,程序最主要的工作就是在這一層開發(fā),包括核心的IOT 網(wǎng)絡(luò)通信協(xié)議,界面設(shè)計等功能;界面設(shè)計采用開源的輕量級的嵌入式圖形庫LVGL,LVGL包含大量可用的控件,并且移植簡單,接口豐富,可快速的設(shè)計出友好的UI 界面;識別則使用esp-sr 這個樂鑫官方推出的AI 識別組件,在通過I2S 驅(qū)動獲取到原始PCM 音頻數(shù)據(jù)后送入esp-sr 識別庫中,可快速實現(xiàn)喚醒詞、離線命令詞的響應(yīng);IOT 協(xié)議是在mqtt 組件基礎(chǔ)上進行了封裝和開發(fā),實現(xiàn)了與云端連接功能;播報通過提前內(nèi)置好語音格式文件,在程序需要的時候加載到內(nèi)存中,然后將數(shù)據(jù)通過I2S 輸出到外設(shè)上;設(shè)備數(shù)據(jù)管理通過esp-idf 的nvs 存儲功能,將IOT 同步過來的設(shè)備數(shù)據(jù)保存在內(nèi)存和Flash 中,當(dāng)需要時顯示在屏幕上。

應(yīng)用框架則是esp-idf 針對一些常用的功能進行封裝好的庫,用戶無須再去實現(xiàn)或移植這些常用的程序功能,比較典型的有mqtt、lwip、spiffs 文件系統(tǒng)、OTA、加密算法、json 等,這層需要多了解才能更好的設(shè)計出上層應(yīng)用程序。

設(shè)備驅(qū)動則比較貼近底層,這一層是直接操作硬件,并向上提供可靠的接口,在本系統(tǒng)設(shè)計中,用到了屏幕信號傳輸?shù)腝SPI 接口驅(qū)動和DMA 傳輸驅(qū)動、WiFi 驅(qū)動、基于GPIO 輪詢方式實現(xiàn)的按鍵響應(yīng)、I2S 數(shù)據(jù)傳輸。這一層具體實現(xiàn)一般來說開發(fā)者無需關(guān)注。

內(nèi)核層,整個程序架構(gòu)都是完全基于FreeRTOS 系統(tǒng)實現(xiàn),F(xiàn)reeRTOS 是一個完全開源免費的嵌入式實時操作系統(tǒng),具有使用簡單、穩(wěn)定性強、功能強大、占用資源小等優(yōu)點。提供了操作系統(tǒng)中常見的任務(wù)管理、信號量、隊列、事件組等這些功能,使得在這些功能基礎(chǔ)上可以設(shè)計出模塊化的代碼,更好地維護程序。

3 運行流程

控制面板核心的功能便是監(jiān)控其他設(shè)備,這需要面板接入到云端平臺中,獲取用戶的設(shè)備列表同步到面板上,用戶可通過按鍵操作,也可通過語音方式進行控制,形成控制指令后發(fā)送到云端平臺,再由云平臺進行轉(zhuǎn)發(fā),其中設(shè)備的同步流程如圖3。

image.png

圖3 設(shè)備同步流程

面板因為是使用Wi-Fi 連接到云平臺,因此第一次使用需要用戶手動進行配網(wǎng),ESP32S3 有ble 功能,用戶使用APP 進行藍牙配網(wǎng)后,將同時綁定了控制面板,用戶就可以在手機APP 上對面板進行操作。用戶在手機APP 上操作將其他設(shè)備添加到控制面板設(shè)備上時,控制面板會收到一個同步指令,然后向云平臺發(fā)起http 請求,請求用戶的設(shè)備列表信息,當(dāng)請求成功后,清除內(nèi)存中原來的設(shè)備列表信息然后更新,并將設(shè)備信息顯示在內(nèi)存上,以下是完整的語音控制流程。

控制面板一直處于外部采集語音狀態(tài)中,當(dāng)從語音系列中檢測到喚醒詞的語音信號,進行內(nèi)置的喚醒反饋音頻播報后,開始VAD 檢測,VAD 檢測可以檢測出當(dāng)前的人聲語音的活動狀態(tài),只有檢測到有人聲活動狀態(tài)才將語音信號送往在線語音平臺,這樣可以減少數(shù)據(jù)流量,增加識別率,錄音送往語音平臺后,語音平臺開始進行asr 語音轉(zhuǎn)文字識別,然后執(zhí)行nlp 自然語言識別,識別出用戶的操作意圖,當(dāng)命中后向云平臺發(fā)送操作請求,云平臺收到在線語音平臺的操作請求后,向?qū)?yīng)的在線設(shè)備發(fā)送相應(yīng)的操作指令,而控制面板則等待語音平臺返回的播報音地址,通過播報音地址下載相關(guān)的音頻數(shù)據(jù)后進行播報。另外,面板也可使用按鍵進行操控,,3 個按鍵定義為左、確定、右功能,左右選擇要操作的設(shè)備,確定鍵是觸發(fā)設(shè)備的開關(guān),功能較簡單,當(dāng)觸發(fā)設(shè)備開關(guān)時,控制面板會往云平臺發(fā)送1 條控制指令,云平臺收到后將此指令轉(zhuǎn)發(fā)給相應(yīng)設(shè)備,然后反饋設(shè)備狀態(tài)給控制面板更新顯示,相比于語音操作,按鍵操作流程較為簡單,這里不再敘述。

image.png

圖4 語音控制流程

4 結(jié)束語

本文設(shè)計一款基于ESP32S3 的帶屏智能家居控制面板,可接入云平臺,具有語音識別功能,使用簡單,功能強大,成本低,具備極為廣闊的市場前景。

(本文來源于《電子產(chǎn)品世界》雜志2023年8月期)



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉