Easily discover, connect and then read and write data to Bluetooth Low Energy (BLE) devices with IOTech’s high performance BLE device connector
What is BLE?
- Bluetooth Low Energy (BLE), is a light-weight subset of classic Bluetooth and was introduced as part of the Bluetooth 4.0 specification
- BLE is a close-range, wireless technology prevalent in connecting low-power/battery consumer IoT devices including wearables, phones, and tablets
- Compared to the full Bluetooth protocol, BLE is focused on delivering small amounts of data at low speeds
- BLE devices define both a General Access Profile (GAP) and a Generic Attribute Profile (GATT). The GAP controls the connections and visibility of devices, while the GATT defines how two devices transfer data via BLE Services and Characteristics. GATT-based data flow occurs after two devices are connected based on the GAP advertising and discovery process
- BLE devices are categorized into 2 types: peripheral (GATT Server) devices, such as heart rate monitors or proximity tags, are the small, low-power, resource-constrained devices that connect to a much more powerful central (GATT Client) device such as a phone, tablet or gateway. A peripheral can only be connected to a single central device at a time, so once connected, a peripheral will stop advertising itself
IOTech's BLE device connector supports a wide range of functionality including configurable dynamic discovery and automatic onboarding of watched BLE devices
The BLE device connector implements the following key features:
- Discovery of BLE devices that are in advertising mode and within range
- Connecting to a BLE device that meets the above criteria
- The capability to automatically onboard watched devices configured by an allow-list and block-list
- Reading the values of a connected device’s specified GATT characteristics
- Writing the values of a connected device’s specified GATT characteristics
- Automatic notification when a connected device’s GATT characteristic is updated
- Additional support for notifications when multiple GATT characteristics use the same UUID
- The ability to specify conversion functions for a set of vendor-specific GATT characteristics
- Automatic disconnection when the BLE device is removed or is out-of-range
- Support for Boolean, Int8, Uint8, Int16, Uint16, Int32, Uint32, Int64, Uint64, Float32, Float64 and String data types
Note the BLE device connector requires the installation of BlueZ and the D-BUS daemon on the host machine running the connector