智電生活:聯發科技 Genio 130 Smart Plug 解決方案

MediaTek Genio 130 chip

圖一:MediaTek Genio 130 chip (資料內容取自 MediaTek

 

近年來智能家居產品不斷推陳出新,已都具備連網功能以及與智慧手機、平板實現交流互動之能力,這些產品結合創新的應用與思維,為生活帶來了各種便利功能。我們可以在家中布建具備整合功能的中樞裝置,並將各類終端設備,如智慧音箱、智慧燈泡、氣體/溫溼度傳感器、智慧開關等與中樞裝連接,或是將家電接上智慧插座,為居家生活帶來便捷操作與智慧互動體驗。

基於這樣的應用場景,聯發科技透過成熟且功能完備的解決方案:Genio 130,為一款單晶片整合了 Arm Cortex-M33 MCU、Wi-Fi 6 和藍牙 5.2 連接子系統、具備低功耗、電源管理單元(PMU)和可選音頻 DSP 為基礎;為智能家居終端設備實現低功耗、具備連網能力、傳感器資訊傳遞、以及語音識別交互之功能。
MediaTek Genio 130 block diagram

圖二:MediaTek Genio 130 block diagram

 


本篇方案將進一步介紹以 Genio 130 結合語音識別、WIFI連網與MQTT通訊協定;實現一個基礎智能家具終端設備:智能插座的解決方案 :

  • Genio 130 環境 & SDK 架設
  • 語音識別、WIFIMQTT 功能與行為導入
  • 實際操作展示

 

Genio 130 環境 & SDK 架設

 

MediaTek Genio 130 EVK

 

圖三: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 快速上手(一)


語音識別、WIFIMQTT 功能導入

首先是語音識別,我們透過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 1Light
    喚醒詞:Hello Mediatek
    命令詞:
    • Turn on the light
    • Turn off the light
    • Power on the plug (打開所有 Smart Plug)
    • Power on the Plug (關閉所有 Smart Plug)
  • Smart plug 2Fan
    喚醒詞: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 語音識別操作範例

圖四: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 CACertificate、Private key),使 Smart pulg 的訊息可以安全的被傳遞。

MQTT Server 端(AWS)與 Clinet端(Genio 130)功能設定範例

圖五: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 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 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 Demo - 3 

而透過任一 Smart pulg 我們可以利用命令詞"Turn on the plug"來同時開啟/關閉燈泡以及風扇

Smart pulg Demo - 4

圖八: Smart pulg Demo - 4


參考資料:

MediaTek Genio 130(MT7931/MT7933)

AWS

►場景應用圖

►產品實體圖

►展示板照片

►方案方塊圖

►核心技術優勢

品佳集團代理的 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 支援之功能。