目錄
1.簡介
這兩天一直看見各種客製化鍵盤的製作視頻,搞得我也想做一個玩玩,芯片我有四種選擇:
(1)Atmega32U4(USB)
(2)STM32F4(USB)
(3)ESP32(藍牙)
(4)NRF51822(藍牙)
現在樂鑫已經推出了 ESP32-S2,此款芯片支持了USB模擬功能,如果加上它的藍牙鍵盤模擬功能,我們很容易只做一款藍牙+USB+WIFI的客製化鍵盤,但這些都等待 ESP32-S2 開發環境的完善之後再玩吧~
2.硬件平臺
安信可 NODEMCU-32S 開發板:
3.軟件平臺
Arduino (1.8.10) 或 VScode 環境下 PlatformIO 插件
4.庫文件
4.1 ESP32_BLE_Arduino
ESP藍牙驅動庫,地址:https://github.com/nkolban/ESP32_BLE_Arduino
4.2 ESP32-BLE-Keyboard
ESP32鍵盤模擬庫,依賴於ESP32_BLE_Arduino這個庫,地址:https://github.com/T-vK/ESP32-BLE-Keyboard
5.示例程序
代碼:
/**
* 時間:2020/5/18
* 作者:劉澤文
* 功能:使用ESP32的藍牙功能模擬藍牙鍵盤
*/
#include <BleKeyboard.h>
#include <WiFi.h>
BleKeyboard bleKeyboard("ESP32藍牙鍵盤","Espressif",100);//其中“ESP32藍牙鍵盤”爲鍵盤名稱;"Espressif"爲製造商
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
bleKeyboard.begin();
}
void loop() {
if(bleKeyboard.isConnected()) {
//多媒體測試
Serial.println("Sending Play/Pause media key...");
bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);
delay(1000);
//Ctrl+Alt+Delete任務管理器,並進行鎖屏操作
Serial.println("Sending Ctrl+Alt+Delete...");
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press(KEY_LEFT_ALT);
bleKeyboard.press(KEY_DELETE);
delay(100);
bleKeyboard.releaseAll();
//輸入密碼並開機
Serial.println("下面填入你的開機密碼↓");
bleKeyboard.print("--你的開機密碼,注意大小寫--");
delay(100);
Serial.println("Enter");
bleKeyboard.write(KEY_RETURN);
}
Serial.println("Waiting 5 seconds...");
delay(5000);
}
6.配對&測試
給你的ESP32開發板插上電,打開你的筆記本電腦->打開藍牙->添加藍牙或設備->鼠標、鍵盤類,你將會看到名爲“ESP32藍牙鍵盤”的設備,點擊即可連接。然後打開你電腦上的音樂軟件播放歌曲。
接下來,你的筆記本將會一直重複 停止播放音樂+鎖屏+解鎖+開始播放音樂 的操作~,如果想停下,請直接關閉筆記本的藍牙,或拔掉開發板。