Skip to content

Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)

Notifications You must be signed in to change notification settings

jeancode/ESP32-BLE-Keyboard

 
 

Repository files navigation

ESP32 BLE Keyboard library

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:

Características

  • 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)

Instalación

EJEMPLO

/**
 * 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);
}

documentos API

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

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.

About

Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%