An easy-to-use BLE Serial library for Arduino ESP32. The class inherits the Arduino Stream class so all the familiar Serial functions are supported.
Add the files in the src folder to your project, or install using the Arduino library manager.
- Create multiple BLE Serial ports with custom service and characteristics.
- A BLE Battery service to report battery level
The following examples are provided:
- BleSerial_Hello: Creates a BLE Serial and echoes "Hello!" every second.
- BleSerial_Callback: Shows how to use the connect/disconnect callback.
- BleSerial_Bridge: Creates a serial bridge between the ESP32 Serial port and Bluetooth LE.
- BleSerial_Multiple: Creates multiple BLE Serial ports using a user provided service UUID. Echoes to both serial port every 2 seconds, and reads both BLE serial ports. Also includes a battery service.
- BleBufferedSerial: Shows multiple threads writing small messages to a single BLE Serial port at high rate. The messages are grouped and sent as a single packet with size that equals the MTU.
The library can be set to toggle a pin when a device is connected or disconnected. This can be used for an LED indicator, for example. To enable this feature, pass the LED pin to the begin() function.
The library uses the Nordic BLE Serial profile by default. This can be changed by passing the service, RX and TX characteristic UUIDs to the begin() function. Make sure to not create multiple BLE serials with the same UUIDs.
This library also provides a BleBufferedSerial class that can be written to in a thread-safe way without dropping packets at the expense of increased memory usage.