透過聲控來控制 QBoat Sunny

在本教學中,我們用聲音配合QIoT Suite、Ubuntu Container及Dialogflow (之前的 api.ai) 來控制DHT11產生的資料

事前準備 :

  • QBoat Sunny
  • 麥克風
  • 播放器
  • MediaTek LinkIt 7697
  • DHT11 溫溼度感測器
  • NAS 上安裝 Container Station

使用檔案 : 下載

建立 Container 並安裝其他附加檔案

  1. 建立 Ubuntu container
  • 開啟 Container Station > Create > 搜尋 Ubuntu 並安裝 LXC container
  1. 安裝附加檔案
  • 透過 SSH 連線到 NAS, 連線教學可參考 : 這裡
  • 輸入下列指令 :
    • $ lxc-container -n <container-名稱>
    • $ sudo apt update
    • $ sudo apt install python-pip
  • 安裝附加檔案 :
    • $ pip install SpeechRecognition
    • $ sudo apt-get install espeak
    • $ sudo apt-get install python-pyaudio python3-pyaudio
    • $ pip install paho-mqtt

匯入檔案至 Ubuntu Container

  1. 開啟 File Station 並移至 /Container/container-station data/lib/lxc/<container-名稱>/rootfs/home/ubuntu
  2. speak 資料夾拉進 File Station
    Note: 如果要語音辨識英文,變更下列設定 (預設為中文):  
    • Line 33: commandspeak = 'espeak -s 200 -v en+f3 \"' + text +'\"'
    • Line 39: audioin, key=None, language="en-US", showall=False)*
      `

在 Container 中設置音效裝置

設置教學可參考 這裡.

建立及設置 QIoT Suite 應用程式

  1. 開啟 QIoT Suite > IoT Applications > Import > 選擇 MQTTHome.json
  2. 開啟 MQTTHome 應用程式並點擊 Things頁面 speak 的Connect a Device 圖示
  3. 選擇 MQTT > 點擊 Next > 下載 JSON 檔案

連接 LinkIt 7697

  1. 連接 DHT11 至 LinkIt 7697.
    • GND 連至 GND
    • VCC 連至 5V
    • Signal 連至 P3
  2. 下載並安裝 Arduino IDE : 下載
  3. 在 Arduino IDE中開啟 combined.ino

將從 QIoT 下載的 MQTT JSON 檔案上的資訊變更到combined.ino
需要變更的位置已經在旁邊用英文大寫標示,下面列出用英文大寫標示出的位置 :

- QIoT MQTT Username (from JSON)
- QIoT MQTT Password (from JSON)
- QIoT MQTT ClientID (from JSON)
- QIoT IP Address
- WiFi SSID
- WiFi Password
- Port (from JSON) for uploading
- Port (from JSON) for downloading*

4.將此檔案上傳至 LinkIt設定 Dialogflow

  1. 登入 Dialogflow 並建立一個新 agent
  2. 匯入 Intents 和 Entities:
    • 前往 設定 > Export and Import > Restore from ZIP
    • 上傳 test-agent.zip 至 Dialogflow
    • 輸入 RESTORE 並點擊 Restore
  3. 取得 access token:
    – 在設定頁面的 General 標籤下,下滑找到 API KEYS 
    – 複製 Client access token 至你的剪貼簿

全部放在一起

  1. 回到 QIoT Application (MQTTHome)
  2. 安裝 api.ai 模組到 Node-RED
    • 點擊 Rule 標籤打開 Manage palette
    • Install 標籤下搜尋 node-red-contrib-apiai 並安裝
  3. 連結 DialogflowQIoT
    • speak 流程中雙擊 apiai-text 節點編輯 QIoT Agent
    • Access Token 貼上複製的 Client access token 然後點擊 Update > Done
  4. 測試 : 最後放上 Start 節點就可以開始對麥克風說話了!

其他參考資料 :

Related posts

發表迴響