16. 進階物聯網案例 13:語音聲控風扇

難度:level

16.1. 目標


製作一個能藉語音助手遙距控制的風扇。

16.2. 背景


甚麼是語音聲控風扇?

語音聲控風扇是一個連接上了互聯網的風扇,可以藉由語音助手使用語音指令喚醒。用戶可以定義不同的語音指令來控制風扇的速度或模式。在本案例中,用戶可以用語音指令打開和關閉風扇。

運作原理

在程序中,micro:bit 會連接到 WIFI 並獲取設備 ID。通過設置接收到的指令(turn_on_fan 和 turn_off_fan),可以打開和關閉風扇摩打。
在 IFTTT 平台的 Smarthon IoT:bit 擴展中,可以預先設置指令,當用戶對語音助手說出特定短語時,它將通過互聯網將指令發送到風扇並觸發打開或關閉的操作。

pic

了解更多:什麼是語音助手?

語音助手,也稱為智能虛擬助理 (IVA) 或智能個人助理 (IPA),是一種軟件程序,可以根據用戶的命令或問題執行任務或提供服務。有時會用「聊天機器人」來稱呼那些網上聊天的虛擬助手。Amazon Alexa、Google Assistant和 Apple Siri 是常見的例子。

語音助手可以進行語音交互、播放音樂、創建待辦事項列表、設置鬧鐘、串流播客、播放有聲讀物,並提供天氣、交通、體育和其他實時信息,例如新聞。它們還可以控制多種智能設備,充當家庭自動化系統。

如今,為了讓家居更智能,Amazon Echo Dot、Google Home 和 Apple HomePod 作為家用中央控制設備,內置了語音助手,用戶可以通過語音指令輕鬆控制不同的電子設備。

pic

16.3. 所用部件


pic_90

16.4. 組裝步驟


步驟一

這個案例以「大房子模型」作為基礎。

pic_90

步驟二

對準 A 和 B3 模型上的孔,將 E1 模型組裝到 A 模型上。

pic_90

步驟三

用 M4*10 毫米螺絲及螺母把風扇馬達安裝到 F 模型上,連接線可以穿過旁邊的孔。

pic_90

步驟四

把 F 模型裝到 B3、B4 模型上以搭建一個風扇架。

pic_90

步驟五

我們來製作一張沙發。將兩個 K3 模型裝到 K1 模型的兩側。

pic_90

步驟六

將 K2 模型與 K1-K3 模型組裝到一起。

pic_90

步驟七

沙發完成!

pic_90

步驟八

把沙發放在風扇旁邊。

pic_90

步驟九

把 H 模型裝在 B3 模型上,作為裝飾擺設。

pic_90

步驟十

組裝完成!

pic_90

可選:

步驟一

將 Amazon Alexa/Google Nest Mini/Apple Homepod mini 放在客廳。在本案例中,我們放了 Amazon Alexa。

pic_90

步驟二

組裝完成!

pic_90

16.5. 線路連接


  1. 連接風扇馬達到 P1 端口 pic_80

16.6. 編程(MakeCode)


步驟一. 初始化OLED、IoT:bit;連接WiFi

  • 當啟動時加入OLED 初始化寬128高64

  • 加入初始化IoT:bit TX P16 RX P8

  • 加入連接到 WiFi 名稱 密碼並輸入 WiFi 名稱和密碼 pic_70

步驟二. WiFi連線後顯示圖示勾號和裝置ID

  • 放入一個當WiFi連接成功後

  • 在裡面加入顯示圖示勾號,以在連線後顯示勾號

  • 當WiFi連接成功後上的變數Device_ID拉到新行顯示字符串pic_70

步驟三. 接收指令

  • 放入一個當從互聯網接收到指令,在 OLED 顯示屏上顯示指令

  • 加入清除顯示以在每次刷新前清除顯示

  • 新行顯示字符串 字串組合 Command: WAN_Command顯示WAN_Command並附上文字說明 pic_70

步驟四. 指令執行相應動作

  • 加入一個巢狀的如果語句

  • 將第一個條件設為WAN_Command = turn_off_fan

  • 在第一個如果段中,用開啟風扇馬達至速度 0 接口 P1來關閉風扇

  • 將第二個條件設為WAN_Command = turn_on_fan

  • 在第二個如果段中,用開啟風扇馬達至速度 1023 接口 P1來打開風扇 pic_70

完整答案

MakeCode: https://makecode.microbit.org/_XE7bMKA8xRfF

你可以從以下網頁中下載HEX檔案:

16.7. 物聯網(Alexa, 雲端控制, IFTTT)


第一部分. 設置 Amazon Alexa

  1. 取得 Amazon Alexa App。
    pic_90

  2. 建立 Amazon 帳戶(如果未有 Amazon 帳戶)並登入。
    pic_90

  3. 可選:

    設定 Alexa 裝置並連接到 Amazon 帳戶。

第二部分. 設置 IFTTT

  1. 取得 IFTTT App。
    pic_100

  2. 打開並登入 IFTTT。

  3. 按下「create」來創建一個 applet。

  4. 在「If」中,搜尋「alexa」並選擇「Amazon Alexa」,然後選擇「Say a specific phrase」。
    pic_90

  5. 它會自動檢測 Amazon Alexa App中的已經登入了的帳戶。然後,在紅框位置輸入短語。在這個例子中,我們輸入「turn on the fan」。
    pic_90

  6. 在「Then」中,搜尋「smarthon iot」並選擇「Smarthon IoT (micro:bit)」。
    pic_90

  7. 選擇「Control Command」,然後填寫「Device ID」,「Command」的名稱根據 micro:bit 的程式填寫,然後按下「Continue」就完成了!
    pic_90

結果


  1. 打開 Amazon Alexa App,使用連接了 IFTTT 的 Alexa 帳戶。

  2. 按一下右下角的按鈕與 Alexa 對話,然後說「Trigger turn on the fan」。
    pic_100

  3. 第一次會詢問您是否開啟對話服務。按下「Turn on」並再次說出短語。短語應觸發 IFTTT 並使指令傳送至 Iot:bit。
    pic_90

  4. 當說「Alexa trigger turn on the fan」時,風扇就會打開; 當說「Alexa trigger turn off the fan」時,風扇就會關閉。
    pic_100

  5. 可選:

    您可以將真實設備 Amazon echo dot 連接到這個 App,以便使用真實的語音控制器進行語音控制。
    pic_100

16.8. 物聯網(Google Assistant)


第一部分. 設置 Google Home 和 Google Assistant App

  1. 取得 Google Home 和 Google Assistant App。
    pic_100

  2. 登入您的 Google 帳戶。

  3. 打開 Google Home App,切換到您的 Google 帳戶。

  4. 按下「settings」,選擇「Works with Google」。
    pic_100

  5. 搜尋並選擇「IFTTT」,授權 Google 存取 IFTTT 服務。
    pic_100

  6. 連結後,IFTTT 會出現在列表中。
    pic_100

第二部分. 設置 IFTTT

  1. 取得 IFTTT App。 pic_100

  2. 打開並登入 IFTTT。

  3. 按下「create」來創建一個 applet。

  4. 在「If」中,搜尋「google assistant」並選擇「Google assistant V2」。 pic_100

  5. 在「Activate scene」中輸入觸發指令的短語。在案本例中,我們輸入「fan on」。 pic_100

  6. 在「Then」中,搜尋「smarthon iot」並選擇「Smarthon IoT (micro:bit)」。 pic_100

  7. 選擇「Control Command」,然後填寫「Device ID」以及指令「turn_on_fan」。 pic_100

  8. 最後按下「Continue」和「Finish」以保存。 pic_90

結果

  1. 打開 Google Home 或 Google Assistant App。確保登入的 Google 帳戶已連接到先前在 Google Home App上設定的 IFTTT。

  2. 說「Hey google, activate (您設定的短語)」或按下按鈕然後說「Activate (您設定的短語)」。 pic_100

  3. 短語應觸發 IFTTT 並使指令傳送至 Iot:bit。 pic_90

  4. 風扇就會打開。 pic_100

  5. 可選:

    您可以將真實設備 Google Nest MiniGoogle Home 連接到這個 App,以便使用真實的語音控制器進行語音控制。
    pic_100

16.9. 物聯網(Apple Siri)


第一部分. 設置 IFTTT

  1. 取得 IFTTT App。 pic_100

  2. 打開並登入 IFTTT。

  3. 按下「create」來創建一個 applet。

  4. 在「If 」中,搜尋「iOS Shortcuts」,然後選擇「Shortcut automation started」。 pic_100

  5. 在「Then」中,搜尋「smarthon iot」並選擇「Smarthon IoT (micro:bit)」。 pic_100

  6. 選擇「Control Command」,然後填寫「Device ID」,「Command」的名稱根據 micro:bit 的程式填寫,然後按下「Continue」就完成了! pic_100

第二部分. 在 iPhone 上設定 IOS Shortcuts

  1. 開啟 Shortcuts App,然後按下右上角的加號按鈕 (+)。 pic_50

  2. 按下 Add Action > App > IFTTT。 pic_100

  3. 選擇 Trigger Applet,按一下 Select an Applet 旁邊的藍色箭頭 ( > ),然後按下 Choose。 pic_100

  4. 選擇您想要利用此捷徑執行的 Applet(請注意,只有使用了「iOS Shortcuts - Shortcut automation started trigger」的 Applet 才會出現在此清單中)。 pic_70

  5. 點擊屏幕頂部的「Trigger Applet」來命名您的捷徑,這將成為用來觸發該 Applet 的自訂短語。 pic_100

  6. 保存捷徑。 pic_90

結果

  1. 按一下該捷徑,或者按住 iPhone 上的按鈕,然後說「Turn on the fan」或「Hi Siri turn on the fan」。 pic_100

  2. Applet 會觸發。 pic_100

  3. 可選:

    您可以將真實設備 Apple Homepod 連接到 Apple Home App,以便使用真實的語音控制器進行語音控制。
    pic_100

16.10. 思考


Q1. 除了「Say a specific phrase」這個 Alexa 在 IFTTT 上的觸發器之外,還有其他 Alexa 觸發器可以使用嗎?