Bluetooth

Bluetooth is a short-range wireless technology standard that is primarily used for short-distance transmission of small amounts of data between two devices. One of the most common applications of Bluetooth is for voice/sound data transfer from your smartphone to a bluetooth speaker or headset. In the reverse direction, devices such as smart watches use Bluetooth to send data to your smartphone.

There are two variants of Bluetooth:

Classic Bluetooth

This is the original version of Bluetooth with a limitation that it can only have two devices connected and communicating with each other at one time.

To overcome these limitations and to improve its capability a newer version of Bluetooth (BLE) was introduced which is soon likely to become the de-facto standard.

Bluetooth Low Energy (BLE)

Bluetooth Low Energy is a low-energy variant of Bluetooth (as the name suggests). One of the ways it conserves energy is that unlike Bluetooth that is always on, BLE remains in sleep mode constantly except for when a connection is initiated.

BLE is not simply an upgrade to Bluetooth Classic, it is a different protocol altogether. It is meant for scenarios where you need to exchange small packets of data infrequently, as against exchanging large amounts of data over a coninuous connection, which is better achieved by Bluetooth Classic.

In addition to having a lower energy consumption BLE supports broadcast communication in addition to point-to-point communication.

Every device in BLE communication plays one of two roles: Central and Peripheral.

The Central device initiates a connection with a Peripheral device and receives data transmitted by the peripheral. A common example of a central device is a smartphone, which can connect to several peripherals simultaneously, receiving from each peripheral.

Peripheral devices include sensors, smart wearables, medical devices, and other such devices that read some data and transmit to to a central device for processing.

Every peripheral has what are referred to as Services and Characteristics. Data can be read from or written to characteristics. The peripheral advertises itself and its services so that the Central device can find it and connect with it. There are some standard services and characteristics that many commonly used devices use so that any central device can connect to it and know what data it can expect. You can also specify custom services and characteristics.

Services and characteristics have what are known as Universally Unique Identifiers (UUIDs). A UUID is a universally unique 128-bit number which has a specific format as shown below:

55072829-bc9e-4c53-938a-74a6d4c78776

If your solution is expected to work in the public domain, you will have to ensure the UUIDs you use are indeed unique. If your solution is expected to work in a private domain you can generate UUIDs using an online generator.