No olvides install NimBLE-Arduino Buscalo en el gestor de bibliotecas de arduino IDE
Esta biblioteca le permite hacer que el ESP32 actúe como un teclado Bluetooth y controle lo que hace. Usted también puede estar interesado en:
- Enviar pulsaciones de teclas
- Enviar texto
- Presione / suelte teclas individuales
- Se admiten [x] teclas multimedia
- [] Leer estado Numlock / Capslock / Scrolllock
- Establecer el nivel de la batería (básicamente funciona, pero no aparece en la barra de estado de Android)
- Compatible con Android
- Compatible con Windows
- Compatible con Linux
- Compatible con MacOS X (no estable, algunas personas tienen problemas, no funciona con dispositivos antiguos)
- Compatible con iOS (no estable, algunas personas tienen problemas, no funciona con dispositivos antiguos)
- (Asegúrese de que puede usar el ESP32 con el IDE de Arduino. [Las instrucciones se pueden encontrar aquí.] (Https://github.com/espressif/arduino-esp32#installation-instructions))
- [Descargue la última versión de esta biblioteca desde la página de versiones] (https://github.com/T-vK/ESP32-BLE-Keyboard/releases)
- En el IDE de Arduino, vaya a "Sketch" -> "Incluir biblioteca" -> "Agregar biblioteca .ZIP ..." y seleccione el archivo que acaba de descargar.
- Ahora puede ir a "Archivo" -> "Ejemplos" -> "Teclado ESP32 BLE" y seleccionar cualquiera de los ejemplos para comenzar.
/**
* Este ejemplo convierte el ESP32 en un teclado Bluetooth LE que escribe las palabras, presiona Enter, presiona una tecla multimedia y luego Ctrl + Alt + Delete
*/
#include <BleKeyboard.h>
BleKeyboard bleKeyboard;
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
bleKeyboard.begin();
}
void loop() {
if(bleKeyboard.isConnected()) {
Serial.println("Sending 'Hello world'...");
bleKeyboard.print("Hello world");
delay(1000);
Serial.println("Sending Enter key...");
bleKeyboard.write(KEY_RETURN);
delay(1000);
Serial.println("Sending Play/Pause media key...");
bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);
delay(1000);
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("Waiting 5 seconds...");
delay(5000);
}
La interfaz de BleKeyboard es casi idéntica a la interfaz de teclado, por lo que puede utilizar la documentación aquí mismo: https://www.arduino.cc/reference/en/language/functions/usb/keyboard/
Solo recuerda que tienes que usar bleKeyboard
en lugar de solo Keyboard
y necesitas estas dos líneas en la parte superior de tu script:
#include <BleKeyboard.h>
BleKeyboard bleKeyboard;
Además de eso, puede enviar claves multimedia (lo cual no es posible con la biblioteca de teclados USB). Se admiten los siguientes:
- Keyboard.press(218); up button
- Keyboard.press(217); down button
- Keyboard.press(216); left button
- Keyboard.press(215); right butto
- KEY_MEDIA_NEXT_TRACK
- KEY_MEDIA_PREVIOUS_TRACK
- KEY_MEDIA_STOP
- KEY_MEDIA_PLAY_PAUSE
- KEY_MEDIA_MUTE
- KEY_MEDIA_VOLUME_UP
- KEY_MEDIA_VOLUME_DOWN
- KEY_MEDIA_WWW_HOME
- KEY_MEDIA_LOCAL_MACHINE_BROWSER // Opens "My Computer" on Windows
- KEY_MEDIA_CALCULATOR
- KEY_MEDIA_WWW_BOOKMARKS
- KEY_MEDIA_WWW_SEARCH
- KEY_MEDIA_WWW_STOP
- KEY_MEDIA_WWW_BACK
- KEY_MEDIA_CONSUMER_CONTROL_CONFIGURATION // Media Selection
- KEY_MEDIA_EMAIL_READER
También hay información específica de Bluetooth que puede configurar (opcional):
En lugar de BleKeyboard bleKeyboard;
puede utilizar BleKeyboard bleKeyboard (" Nombre del dispositivo Bluetooth "," Fabricante del dispositivo Bluetooth ", 100);
.
El tercer parámetro es el nivel de batería inicial de su dispositivo. Para ajustar el nivel de la batería más adelante, simplemente llame, p. Ej. bleKeyboard.setBatteryLevel (50)
(establece el nivel de batería al 50%).
De forma predeterminada, el nivel de batería se establecerá en 100%, el nombre del dispositivo será "ESP32 Bluetooth Keyboard" y el fabricante será "Espressif".
Créditos a [chegewara] (https://github.com/chegewara) y [los autores de la biblioteca de teclado USB] (https://github.com/arduino-libraries/Keyboard/) ya que este proyecto se basa en gran medida en su ¡trabajo! Además, créditos para [duke2421] (T-vK#1) que ayudó mucho con las pruebas, la depuración y la reparación del descriptor del dispositivo.
Traduccion en español + modificacione especail de codigo para dispositivos que se reinician.