掌控板教程 | 學會掌控板 + Siri 語音控制,只要半小時!

在這裏插入圖片描述
話不多說,先看效果演示視頻:

B 站視頻鏈接:https://www.bilibili.com/video/av63856715/

騰訊視頻鏈接:https://v.qq.com/x/page/i0914dgim06.html

前言

前段時間,我在公衆號上面發了一篇文章:掌控板 V1.1 語音識別初體驗

在這篇文章中,我使用了還處於測試階段的掌控板 V1.1 寫了一篇語音識別的教程。好多老師看了後,都迫不及待想要玩一下掌控板語音識別功能,但無奈掌控板目前在售的最新版本(V1.0.1)還不支持這個功能,只能作罷。而且從我測試的結果來看,目前掌控板語音識別效果不是很理想。

於是我就想,還有沒有其他方案可以做到語音識別呢?

看着手裏的 iPhone,是時候輪到人工智障 Siri 上場了!
人工智障siri可是怎麼做纔可以讓 Siri 完成智能家居的控制呢?可能很多人會說,加一個 Raspberry Pi (樹莓派),在上面運行 Home Assistant 框架,變成智能家居網關,然後再用掌控板(ESP32)做外設,就可以實現了 DIY 的 Siri 語音控制智能家居方案了。

的確,我們可以用這種方法去實現很複雜的智能家居控制系統,而且我之前就利用過 Home Assistant 框架、樹莓派和 ESP8266 做過智能家居系統,具體教程可以查看:

以下是這個方案的演示視頻:

B 站視頻鏈接:https://www.bilibili.com/video/av14986294/

騰訊視頻鏈接:https://v.qq.com/x/page/h0538fbcd4d.html

既然掌控板的主控芯片是 ESP32,而 ESP32 又是 ESP8266 的升級版,那麼 ESP32 當然也同樣可以接入 Home Assistant 系統。隨着時間的推移,Home Assistant 系統也有了很多升級,功能也越來越全面,大家可以自行去嘗試學習下這種方法。

Home Assistant 雖然是一個很強大的框架,但是如果我們只是做一些簡單的燈光控制,而且還要用到樹莓派,未免有點大材小用了。

所以這篇教程用的卻是另一種方法,我們讓掌控板或 ESP32 不用樹莓派就可以直連 IPhone 上的 Siri。

熊貓威武手勢

具體怎麼做呢?請繼續往下看。

重要的事情說三遍:

以下教程基於 Windows 系統!
以下教程基於 Windows 系統!
以下教程基於 Windows 系統!

如果你用的是 Linux 系統……你都用 Linux 系統了,這還難得倒你麼?
如果你用的是 macOS 系統……土豪,你不需要折騰,直接買買買那些支持 Siri 的設備就行!

準備工作

如果你是高手,可以直接看這裏:快速入門——ESP-IDF 編程指南:https://docs.espressif.com/projects/esp-idf/zh_CN/stable/get-started/index.html

ESP-IDF 是 Espressif IoT Development Framework 的縮寫,是樂鑫 ESP32 開發的一套框架,樂鑫所研發的軟件開發環境 ESP-IDF 能夠幫助用戶快速開發物聯網 (IoT) 應用,滿足用戶對於 Wi-Fi、藍牙、低功耗等性能的需求。框架裏面包含很多例程,是入門和進階ESP32的優秀參考。

如果你只想看精簡版的,請繼續往下看。你需要準備:

  • 文本編輯器:編寫 C 語言程序,例如 VS Code、Eclipse、Notepad++等;
  • 掌控板或其他 ESP32 開發板;
  • Git:用於後續安裝 ESP32 編譯工具鏈、ESP-IDF 以及示例代碼;
  • 工具鏈:用於編譯下載調試 ESP32 程序;
  • ESP-IDF:包含 ESP32 API 和用於操作 工具鏈 的腳本;
  • ESP HomeKit Demo 程序:包含蘋果智能家居 HomeKit 的 API 框架和適用於 ESP 系列芯片的例程 。

安裝 Git 環境

首先你需要安裝 Git 環境。Git 是做什麼的呢?說的簡單點,就是快速從 GitHub 下載代碼的工具。安裝方案很簡單,從 Git 官網(https://git-scm.com/)下載最新的安裝包,然後雙擊打開 exe 安裝文件,一路 Next 就行。

下載Git

設置 ESP32 工具鏈

快速設置的方法是從 dl.espressif.com 下載集成在一起的工具鏈和 MSYS2 壓縮文件。下載鏈接爲:

https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip

將 zip 壓縮文件解壓到 C:\ (或其它路徑,我邊邊是 D:\esp),它會使用預先準備的環境創建一個 msys32 目錄,如下圖所示:

下載解壓MSYS2工具鏈

然後打開 D:\esp\msys32\mingw32.exe 程序,這將會打開一個 MSYS2 的終端窗口,該窗口的環境是一個 bash shell。後面會多次用到這個程序,請一定要記住!後面會多次用到這個程序,請一定要記住!後面會多次用到這個程序,請一定要記住!

運行mingw32

運行如下命令,創建一個 esp 目錄作爲開發掌控板(ESP32) 應用的默認地址:

mkdir -p ~/esp

輸入 cd ~/esp 就進入到新創建的目錄。如果沒有錯誤信息出現則表明此步驟已完成。

cd ~/esp

MSYS2終端窗口

請不要關閉這個窗口,後續步驟將會使用這個窗口來爲掌控板(ESP32)設置開發環境。

下載 ESP-IDF 框架

工具鏈安裝完後,你還需要 ESP32 相關的 API 庫。API 庫在 ESP-IDF 倉庫 中。

繼續在 MSYS2 的終端窗口中輸入以下命令,使用 git clone 命令克隆(下載) ESP-IDF 遠程倉庫:

cd D:\esp
git clone -b v3.2.2 --recursive https://github.com/espressif/esp-idf.git

該命令首先切換到 D:\esp 目錄下,然後將 ESP-IDF 被下載到 D:\esp 目錄下。

git clone 命令的 -b v3.2.2 選項告訴 git 從 ESP-IDF 倉庫中克隆與此版本的文檔對應的分支版本,目前最新的穩定版本爲 v3.2.2

下載需要一段時間,請耐心等待。我這邊大概下載了 20 分鐘。

接着開始設置 ESP-IDF 路徑。工具鏈程序使用環境變量 IDF_PATH 來訪問 ESP-IDF。這個變量應該設置在你的 PC 中,否則工程將不能編譯。用戶配置文件腳本存放在 D:/esp/msys32/etc/profile.d/ 目錄中。每次打開 MSYS2 窗口時,系統都執行這些腳本。

D:/esp/msys32/etc/profile.d/ 目錄下創建一個新的腳本文件。將其命名爲 export_idf_path.sh

新建export-idf-path文件

然後確定 ESP-IDF 目錄的路徑,也就是我們剛纔安裝 ESP-IDF 的路徑,此處爲 D:\esp\esp-idf。在 export_idf_path.sh 腳本中加入 export 命令:

export IDF_PATH="D:/esp/esp-idf"

設置IDF-PATH

然後保存並關閉該文件即可。

至此 ESP-IDF 所有準備工作就完成了。

下載 ESP HomeKit Demo 程序

ESP HomeKit Demo 程序是 GitHub 上的一位大神開源的,原地址爲:https://github.com/maximkulkin/esp-homekit-demo

但是上面的教程寫的比較簡單,所以我就做了一下搬運。

esp-homekit-demo

還記得前文在 MSYS2 的終端窗口下創建了一個 ~\esp 路徑麼?這個路徑是一個相對路徑,它是相對 msys2 目錄而言的,這個目錄的具體位置爲:D:\esp\msys32\home\ironpanda\esp ,其中 ironpanda 是我的電腦用戶名,每個人電腦用戶名不一樣。

esp路徑位置

我們將把 ESP HomeKit Demo 例程下載到 ~\esp 這個目錄中,在 MSYS2 的終端窗口運行一下命令:

cd ~/esp
git clone https://github.com/maximkulkin/esp-homekit-demo.git
cd esp-homekit-demo
git submodule update --init --recursive

然後進入 esp-homekit-demo 目錄,複製一份 wifi.h.sample 文件,並將其修改爲 wifi.h 文件。這個文件主要用於設置掌控板聯網時的 WiFi 賬號密碼。

修改wifih文件

打開 wifi.h 文件,修改爲你自己的 WiFi 賬號密碼,如下圖所示:

編輯wifih文件

至此,所有的準備工作都完成了,下面正式開始燒寫程序。

快速入門:第一個掌控板 Siri 項目

在快速入門的第一個項目中,我們主要希望實現 Siri 可以控制掌控板上外接的 LED 燈模塊。

硬件連接

這裏我通過掌控擴展板連接外部的 LED 燈模塊,擴展板隨便選,可以用 DF 出的擴展板,也可以用掌控寶,此處繪製電路圖時使用了 DF 出品的擴展板,如下圖所示,我們將 LED 模塊連接到擴展板的 P13 引腳。

掌控Siri燈-電路圖

修改例程

在剛剛下載的 esp-homekit-demo 文件夾下,有一個 examples 文件,裏面提供了非常多的可以與蘋果 Homekit 交互的案例(也就是可以用 Siri 控制),我們在裏面找到 esp32 文件夾,這個文件夾裏面提供了 ESP32 相關的例程,可以適用於掌控板。

esp32-Siri文件夾

我們打開 esp32 文件夾,注意到裏面的 led 文件了麼?這篇教程,我就將教大家上傳這個程序,實現 Siri 控制 LED 燈亮滅的程序。當然學會這個後,控制家裏的電燈也是一樣的道理,加個繼電器開關即可。

esp32-led文件夾

我們進入這個文件夾,找到 led.c 文件,這裏面編寫的就是主要程序,用你熟練的文本編輯器或 IDE 打開它。具體的程序原理,這篇文章暫時就不講了,涉及到比較多的內容,後面有時間慢慢講,我們主要關注下面幾個地方。

第一個地方是連接 LED 的 GPIO 引腳設置。注意這裏是 GPIO 引腳編號,而不是掌控板上的 Px 引腳編號。

led-gpio設置

由於我們前面電路連接的是掌控板 P13 引腳,查看掌控板 ESP32 的引腳定義,發現 P13 對應的 GPIO 編號是 IO18,所以修改程序中的 led_gpio = 18

掌控板引腳定義

然後再來看一下設備設置信息。如下圖所示,其中 1 和 2 是用於設置 HomeKit 外設參數的,包括名字、廠商、序列號、型號、固件號等,可以不用修改。3 是用來設置配對密碼的,待會要將這個外設加入 iPhone 的“家庭”軟件時會用到, 請記住配對密碼!這兩個地方修改完之後,程序就完成了。

修改ledc文件

下面我們將進入程序編譯以及上傳環節。

上傳程序

先用 USB 線將掌控板連上電腦,然後打開 MSYS2 的終端窗口,還記得在哪裏打開麼?忘了的話,往前翻一下。然後切換到 esp-homekit-demo 路徑下

cd ~/esp/esp-homekit-demo/

切換到esp-homekit-demo路徑

然後輸入以下命令,並回車。menuconfig 命令主要用於對項目程序進行編譯和上傳設置:

make -C examples/esp32/led menuconfig

ledc-menuconfig

輸入上述命令後,會彈出 menuconfig 配置界面。

menuconfig 使用技巧:

  • 使用 up & down 組合鍵在菜單中上下移動
  • 使用 Enter 鍵進入一個子菜單,Escape 鍵退出子菜單或退出整個菜單
  • 輸入 ? 查看幫助信息,Enter 鍵退出幫助屏幕
  • 使用空格鍵或 YN 鍵來使能 (Yes) 和禁止 (No) 帶有複選框 “[*]” 的配置項
  • 當光標在某個配置項上面高亮時,輸入 ? 可以直接查看該項的幫助信息
  • 輸入 / 搜索配置項

我們主要修改其中的 Serial flasher config ,也就是上傳程序的串口參數,如下圖所示:

menuconfig
menuconfig-serial

將其中的 Default serial port 修改爲掌控板連接電腦的端口號,如下圖所示,然後保存退出即可。

com

然後繼續在 MSYS2 的終端窗口輸入以下命令,對程序進行編譯:

make -C examples/esp32/led all

make編譯

這個過程時間比較長,約 2 分鐘左右,請耐心等待。編譯完成後,如果程序沒有錯誤,就會出現類似下圖界面:

編譯完成

接着擦除掌控板上原來已有的程序:

make -C examples/esp32/led erase_flash

擦除程序

擦除程序過程中,出現 Connecting…… 時,注意要按一下掌控板上的 A 鍵 1 秒左右

擦除程序-按A鍵

擦除完成後,如下圖所示:

擦除程序完成

接着正式開始上傳剛剛修改的 led 程序,繼續輸入以下命令:

make -C examples/esp32/led flash

flash上傳程序

上傳程序過程中,出現 Connecting…… 時,同樣也要按一下掌控板上的 A 鍵 1 秒左右

flash上傳程序-按A鍵

上傳完成後,你的程序就已經在掌控板裏面了。在 MSYS2 的終端窗口輸入以下命令:

make -C examples/esp32/led monitor

這個命令可以讓我們類似串口助手一樣,查看相應的調試信息,如下圖所示:

monitor

接下來就可以掏出你的 iPhone 或 iPad 進行配對啦。

配對 iPhone

首先找到 iPhone 上自帶的家庭 App,我的手機系統是英文,可能顯示稍有不同,大家對照圖片即可。

打開家庭app

打開家庭 App,這是蘋果生態系統裏的智能傢俱控制程序,可以用 Siri 去控制接入其中的設備、查看傳感器信息等。可以在家庭 App 主頁上看到,我已經接入了一個 LED 燈(紅燈)設備,下面我將教你如何接入另一個設備。

家庭app主頁

點擊 App 右上角的 “+” 號,在彈出的選擇按鈕中選擇 Add Accessory。

添加設備

點擊箭頭所指處,選擇使用配對密碼進行配對。

選擇輸入配對碼連接

可以看到有一個 LED-XXXX 的設備等待我們連接,點擊選擇:

選擇要添加的設備

接下來會彈出警告提醒,不用管它,點擊 Add Anyway,然後輸入配對密碼。還記得配對密碼嗎?忘了的話,回到程序中看看。

忽略未授權警告

輸入配對密碼之後,系統就會提示你設備添加成功。

添加成功

設備設置界面

爲了方便記憶,我們可以修改設備默認的名字和所在房間的名稱,比如我將 LED 名稱修改爲“藍燈”,房間名稱修改爲“掌控板”。

修改設備信息

回到家庭 App 主頁面,看到剛剛添加的“藍燈”了麼?

添加設備後的家庭app主頁

Hey Siri

接下來就盡情用 Siri 玩耍吧!

Siri 是支持自然語言識別的,如果你像我一樣添加了多個設備,比如兩盞燈,你就可以用語音命令控制兩盞燈同時打開或關閉。比如:

  • Hey Siri,打開所有燈;
  • Hey Siri,關閉掌控板;
  • Hey Siri,打開紅燈。

siri測試

搞定!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章