物料
- esp32 开发板(需要有蓝牙功能),我用的是带CH340驱动的
- 一个开关按钮
- 一根数据线,用来连接开发板和电脑
下载arduino
下载地址:www.arduino.cc/en/software 然后安装Arduino IDE
下载蓝牙驱动
下载地址:github.com/T-vK/ESP32-… 选择ESP32-BLE-Keyboard.zip
将下载的蓝牙驱动添加到Arduino IDE中
选择项目-添加zip库,选择刚刚下载好的蓝牙驱动
安装库文件
在左侧的导航栏,选择第二个:开发板管理器,搜索esp32,安装esp32 by Espressif Systems,版本选择2.0.17,不要选3.X.X,会编译失败
在上方的驱动选择中选择/dev/cu.usbserial-XXXXX
选择Esp32 Dev Module,点击确定
回到项目文件夹,开始编码
复制以下代码:
/**
* This example turns the ESP32 into a Bluetooth LE keyboard that writes the words, presses Enter, presses a media key and then Ctrl+Alt+Delete
*/
#include <BleKeyboard.h>
BleKeyboard bleKeyboard;
const int buttonPin = 15; // 按钮连接到GPIO 0
int buttonState = 0;
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
pinMode(buttonPin, INPUT_PULLUP); // 设置按钮引脚为输入并启用内部上拉
bleKeyboard.begin();
}
void loop() {
if (bleKeyboard.isConnected()) {
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) { // 检测按钮按下
Serial.println("Button pressed");
bleKeyboard.print("awesomeman");
bleKeyboard.write(KEY_RETURN);
delay(1000); // 延迟以避免重复输入
}
}
delay(10);
}
点击左上角验证,等待验证通过
上传代码到esp32开发板
首先在工具中找到上传速度或Upload Speed,指定速率为115200,不要选921600,否则会报存在噪声或连接失败
指定完成后,选择上传,等待上传完成。如果像下图一样,就是上传成功了:
通过蓝牙连接Esp32和电脑
从设置中找到蓝牙-搜索蓝牙-找到Esp32 keyBoard,然后选择连接。
如果Mac系统提示设置键盘,让你按下左Shift旁边的键,直接退出就行。
短接GND和D15引脚
打开一个可以输入文字的地方,然后通过一根导线连接GND和D15引脚或者将开关按钮的两根线连接GND和D15引脚。
按下按钮,在文字编辑区即可显示设置的【awesome man】字符。
测试
按住【^ + Command + Q】锁定屏幕,并激活密码输入框,按下按钮,系统自动解锁。