蓝牙hid键盘鼠标如何同时在ESP32内运行
时间: 2025-06-29 10:18:54 浏览: 28
### ESP32 蓝牙 HID 键盘鼠标同时连接运行实现方法
#### 1. 硬件准备
确保拥有一个带有蓝牙功能的ESP32开发板。此过程适用于多个版本的ESP32芯片,如ESP32-C3、ESP32-S3等[^2]。
#### 2. 安装必要的库文件
对于想要创建既作为键盘也作为鼠标的设备来说,安装合适的库至关重要。可以利用GitHub上的`T-vK/ESP32-BLE-Keyboard`库来简化这一流程。此外,还需要考虑集成或寻找类似的BLE Mouse库以便于后续组合使用。
#### 3. 编写代码逻辑
下面是一个简单的Arduino IDE脚本例子,它展示了如何设置ESP32作为一个能够发送按键事件(代表键盘)以及移动指针位置(代表鼠标)的复合型HID装置:
```cpp
#include <BluetoothSerial.h>
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it.
#endif
#include "BLEDevice.h"
#include "BLEUtils.h"
#include "BLEServer.h"
#include "BLECharacteristic.h"
// Add BLE Keyboard & Mouse libraries here
#include "BLEKeyboard.h"
#include "BLEMouse.h"
BLEKeyboard bleKeyboard;
BLEMous bleMouse;
void setup() {
Serial.begin(115200);
// Initialize the device as a peripheral
BLEDevice::init("ESP32 BLE HID");
// Create server
BLEServer *pServer = BLEDevice::createServer();
// Start services for keyboard and mouse
bleKeyboard.start();
bleMouse.start();
}
void loop() {
delay(1000);
// Simulate key press events every second
bleKeyboard.print("123456");
delay(1000);
// Move cursor by (-10, -10), no scroll or button click
bleMouse.move(-10,-10,0);
}
```
上述代码片段中包含了启动服务并初始化两个独立的服务实例——一个是用于处理键盘输入(`bleKeyboard`);另一个则是用来管理鼠标动作(`bleMouse`). 在主循环里交替执行了模拟键入字符序列“123456”的命令和向左上方轻微拖动光标的操作.
值得注意的是,在实际应用当中应当更加精细地设计触发条件与交互模式,而不仅仅局限于固定的间隔时间内的简单行为重复[^1].
#### 4. 测试与调试
完成编程之后,上传代码到ESP32,并通过手机或其他支持BLE HID协议接收端的应用程序来进行配对尝试。如果一切正常的话,则应该可以看到来自该微控制器所发出的数据流被成功解析成相应的外设指令被执行出来。
阅读全文
相关推荐

















