圖一:MediaTek Genio 130 chip (資料內容取自 MediaTek)
近年來智能家居產品不斷推陳出新,已都具備連網功能以及與智慧手機、平板實現交流互動之能力,這些產品結合創新的應用與思維,為生活帶來了各種便利功能。我們可以在家中布建具備整合功能的中樞裝置,並將各類終端設備,如智慧音箱、智慧燈泡、氣體/溫溼度傳感器、智慧開關等…與中樞裝連接,或是將家電接上智慧插座,為居家生活帶來便捷操作與智慧互動體驗。
基於這樣的應用場景,聯發科技透過成熟且功能完備的解決方案:Genio 130,為一款單晶片整合了 Arm Cortex-M33 MCU、Wi-Fi 6 和藍牙 5.2 連接子系統、具備低功耗、電源管理單元(PMU)和可選音頻 DSP 為基礎;為智能家居終端設備實現低功耗、具備連網能力、傳感器資訊傳遞、以及語音識別交互之功能。
圖二:MediaTek Genio 130 block diagram
本篇方案將進一步介紹以 Genio 130 結合語音識別、WIFI連網與MQTT通訊協定;實現一個基礎智能家具終端設備:智能插座的解決方案 :
- Genio 130 環境 & SDK 架設
- 語音識別、WIFI、MQTT 功能與行為導入
- 實際操作展示
Genio 130 環境 & SDK 架設
圖三:MediaTek Genio 130 EVK (資料內容取自 AcSip)
透過搭建 Linux 開發環境(ex. VM + Ubuntu 20.04 LTS)後,導入 Genio 130 SDK,便可開始進行相關功能實作。
關於如何架設 Genio 130 開發環境,並進一步建置專案、燒錄專案 binary file 到 Genio 130 EVK,詳細可以參考大大通博文:MediaTek Genio 130/130A 快速上手(一)
語音識別、WIFI、MQTT 功能導入
首先是語音識別,我們透過Cyberon DSpotter Modeling tool 分別建立語音模型"喚醒詞"與"命令詞",並轉換為 raw data 導入專案:
{SDK_ROOT}\middleware\MTK\audio_services\driver\mt7933\mt7933\mt7933-adsp-pcm.c
/* Include voice model */ #include "VAD_model_hello_mediatek.h" #include "VAD_model_hi_genio.h" |
對應不同的 smart plug,我們分別指定各自的語音識別模型"喚醒詞"與"命令詞",實現各自的語音識別操作。
- Smart plug 1(Light)
喚醒詞:Hello Mediatek
命令詞: - Turn on the light
- Turn off the light
- Power on the plug (打開所有 Smart Plug)
- Power on the Plug (關閉所有 Smart Plug)
- Smart plug 2(Fan)
喚醒詞:Hi Genio
命令詞: - Turn on the fan
- Turn off the fan
- Power on the plug (打開所有 Smart Plug)
- Power on the Plug (關閉所有 Smart Plug)
以下是一個語音識別的操作情境:
圖四:MediaTek Genio 130 語音識別操作範例
WIFI 功能在 Genio 130 預設是啟用的,我們只需要在開機後設定連接指定的 AP 即可。
參考 CLI command:
$ wifi init $ wifi config set ssid 0 SSID $ wifi config set sec 0 7 6 $ wifi config set psk 0 PASSWORD $ wifi config set reload |
亦可將設定值寫入 profile 中:
$ wifi profile set ssid SSID $ wifi profile set sec 7 6 $ wifi profile set psk PASSWORD |
最後,我們透過架設 MQTT Server 端在 AWS Cloud 上;與在 Smart pulg 啟用 MQTT Client 端功能 ,並透過訂閱機制建立,各自的 Smart pulg 狀態可被所屬的 Smart pulg 獲取並實施相應的操作,實現不同的 Smart pulg 間交互控制。各 Smart pulg 也都有設定相應的安全機制(Root CA、Certificate、Private key),使 Smart pulg 的訊息可以安全的被傳遞。
圖五:MQTT Server 端(AWS)與 Clinet端(Genio 130)功能設定範例
實際操作展示
以下是基於 Genio 130 在 Smart pulg 解決方案的功能展示,當我們將 Smart pulg 接上電源後, Smart pulg 將開機並自動連上已設定好的 WIFI AP (如有儲存設定),接著會連接上 AWS Cloud Server 以完成初始化,此時 Smart pulg 指示燈(橘色)將恆亮。
圖五: Smart pulg Demo - 1
當我們對 Smart pulg 說出喚醒詞"Hello Mediatek"後,Smart pulg 1 將會撥放回應提示音,並且狀態燈(藍色)將恆亮,顯示此時 Smart pulg 1 觸發語音識別並等待命令詞;而當我們說出命令詞"Turn on the light"後,Smart pulg 1 插座上接上的燈泡將會亮起。
圖六: Smart pulg Demo - 2
另外,我們也可以透過 Smart pulg 2 對 Smart pulg 1 控制;對 Smart pulg 說出喚醒詞"Hi Genio"後,Smart pulg 2 將會撥放回應提示音,並且狀態燈(藍色)將恆亮,此時 Smart pulg 2 將等待命令詞;當我們出命令詞"Turn on the light"後,Smart pulg 1 所連接的燈泡將會亮起。
圖七: Smart pulg Demo - 3
而透過任一 Smart pulg 我們可以利用命令詞"Turn on the plug"來同時開啟/關閉燈泡以及風扇
圖八: Smart pulg Demo - 4
參考資料:
MediaTek Genio 130(MT7931/MT7933)
- Website : https://www.mediatek.com/iot/products/genio-130
- Datasheet : MediaTek Website
- Genio 130A (MT7933) EVK User Guide:MediaTek Website
AWS
- AWS Server:https://us-east-1.console.aws.amazon.com/console/home?region=us-east-1
- Device Shadows - MQTT Topics:https://iotatlas.net/en/implementations/aws/device_state_replica/device_state_replica1/#reference-architecture
►場景應用圖
►產品實體圖
►展示板照片
►方案方塊圖
►核心技術優勢
品佳集團代理的 MediaTek Genio 130(MT7931/MT7933)微處理器產品,為基於 Arm Cortex-M33 架構處理器,時脈可達 300MHz,內建最高 8MB UHS PSRAM,提供高效運算能力。並提供 WiFi 6、BT 5.2 等無線連接技術,並具備雙頻(2.4GHz 和 5GHz)連接;此外,Genio 130 (MT7933 版本)內建 HiFi4 DSP、3 個 ADC、2 個 DAC 通道,提供語音活動檢測和觸發詞功能,適合開發支援語音助理雲服務的 IoT 設備。
►方案規格
聯發科技(MediaTek)Genio 130 系列(MT7931/MT7933),具備: • Arm Cortex-M33 處理器,時脈 300MHz • Embedded 1MB SRAM and 8MB UHS(Ultra High Speed) PSRAM • WiFi 6與雙頻 IEEE 802.11 a/b/g/n/ac/ax 2.4G/5G 連接子系統 • 藍芽 5.2 連接子系統 • Audio Cadence® Tensilica® HiFi4 DSP@600MHz(註一) • 硬體加密引擎(AES/DES/3DES/SHA/ECC/TRNG) • 電源管理單元 • 支援 USB 2.0 OTG(註一) • 豐富的周邊介面如: USB、SDIO、SPI master/slave、I2C、I2S、UART、AUXADC、PWM 以及 最多46組 GIPO • 提供 FreeRTOS 及 Arduino 開發 SDK 及多個範例專案,縮短開發時程 註一: HiFi4 DSP, USB 2.0 為 MT7933 支援之功能。