作者:尤濬哲
ESP32內建WiFi及藍芽,藍芽部份支援2.0的BTSerial及4.0的BLE,關於2.0 BTSerial連線的範例可以參考。而4.0 BLE部份功能則更多,可以拿來做Beacon定位偵測,或者BLE Notify,今天則是再增加一個功能,就是模擬成藍芽鍵盤。
BLE藍芽鍵盤
ESP32與傳統Arduino比較起來雖然大部分都比較強,但是有一個小小的缺憾,就是不能模擬成USB鍵盤,不過還好可以透過BLE模擬成藍芽鍵盤,使用的程式庫則是ESP32-BLE-Keyboard,此程式庫尚未被Ardunio IDE收錄,因此請自行下載匯入安裝。除了鍵盤以外,也可以模擬滑鼠及遊戲遙控器,可以參考作者的說明。
根據作者的說明,模擬鍵盤的方式就是送出BLE指令,例如要打「A」,就是送出藍芽指令,其方式為bleKeyboard.print(“A”),除了print之外,也有write、press等指令,差異列表如下
關於所有鍵盤的特殊功能鍵用法,可以參考「BleKeyboard.h」裡面有完整的列表。
實做迷片救星,老婆通知器
本次我們就假設你正在觀看「日本首都很熱」,或者「澳門賭場」等類型的愛情動作片時,很怕有人發現,那麼就做一個人體感測器在門口,當有人經過時,就讓ESP32送出「暫停影片播放」、「清空桌面」、「開啟瀏覽器搜尋”ESP32″」等三個動作,假裝我們正在認真找資料,是不是很棒呢?要完成這三個藍芽鍵盤指令,其語法分別為:
1.「暫停影片播放」:
2.「清空桌面視窗」:
bleKeyboard.print(“d”);//輸入d,即windows+d=清空桌面
bleKeyboard.releaseAll();//釋放windows按鈕
3.「開啟瀏覽器搜尋”ESP32”」:
bleKeyboard.print(“ESP32”);//輸入搜尋關鍵字
bleKeyboard.write(KEY_RETURN);//輸入Enter
請依照以下步驟:
1. 下載程式庫:
ESP32-BLE-Keyboard,點選右側code按鈕,選擇DownloadZIP,下載到你電腦中。名稱為「ESP32-BLE-Keyboard-master.zip」
2. 在Arduino安裝程式庫:
點選功能表 草稿碼/匯入程式庫/加入zip程式庫,就會開啟檔案選擇器。
在檔案選擇器中,找到你剛剛下載的ESP32-BLE-Keyboard-master.zip,然後按下方的「開啟」按鈕即可,此時我們就安裝好程式庫了。
3. 撰寫程式:
首先我們要準備的ESP32之外,還有一個人體感測器(PIR, SR-501),我們將她接在GPIO 17,關於人體感測器的安裝,SR501相關設定可以參考本文。
#include
BleKeyboard bleKeyboard;//宣告一個藍芽鍵盤
void setup() {
Serial.begin(115200);
pinMode(17, INPUT);//人體感測器接在GPIO 17
Serial.println("BLE鍵盤準備連線");
bleKeyboard.setName("小霸王BLEKeyBoard"); //自行設定藍芽鍵盤名稱
bleKeyboard.begin();
}
void loop() {
if (bleKeyboard.isConnected()) {
//PIR是否有人經過
if (digitalRead(17)) {
Serial.println("有人經過,執行緊急程序");
//1.暫停撥放影片
bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);
//2.清空桌面
bleKeyboard.press(KEY_LEFT_GUI);//windows左側按鈕
bleKeyboard.print("d");//輸入d,即windows+d=清空桌面
delay(100);
bleKeyboard.releaseAll();//釋放windows按鈕
//3.「開啟瀏覽器搜尋”ESP32”」:
bleKeyboard.press(KEY_MEDIA_WWW_HOME);//開啟預設瀏覽器
delay(500);//等候瀏覽器開啟完畢,請依照電腦效能適度調整時間
bleKeyboard.print("esp32");//輸入搜尋關鍵字
delay(100);//等候關鍵字輸入完畢
bleKeyboard.write(KEY_RETURN);//輸入Enter
delay(10000);
}
}
delay(100);
}
電腦連線藍芽鍵盤
完成上面的程式並上傳後,我們就可以利用有藍芽的電腦進行連線,方式如下
1.開啟設定/點選藍芽功能:
2.點選新增藍芽或其他裝置,並選擇藍芽:
3.找到並選擇自己設定好的裝置名稱:
4.連線成功:
實際測試看看
一開始先假設正在看Youtube影片:
發現有人經過後,就會立即觸發三個程序「暫停影片播放」、「清空桌面」、「開啟瀏覽器搜尋”ESP32″」三個動作。
是不是很有趣呢?
不過要注意幾個問題:
1.每個鍵盤指令之間要加上一些延遲時間,例如開啟瀏覽器到輸入關鍵字及ENTER,因為沒有留足夠的延遲時間,會導致瀏覽器還沒開啟,關鍵字就輸入到桌面了,變成開啟某些特定檔案。
2.輸入法問題,鍵盤目前似乎不支援中文,因此輸入文字資料必須先將系統切到英文輸入法,避免文字輸入錯亂。
(作者為本刊共筆作者,原文連結,其專欄文章同步發表於作者部落格;責任編輯:謝涵如)
- 舊瓶裝新酒還是新瓶裝舊酒?Jetson Orin Super效能實測 - 2025/03/12
- 低成本空氣品質感測器 – 夏普 GP2Y10開箱實驗 - 2023/03/16
- 【ESP32專欄】ESP32 MQTT與深度睡眠 - 2022/06/20
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!