This is where BLE has the advantage over previous proprietary protocols which required custom hardware, usually a USB dongle or an integrated radio, to complete the other end of the wireless communication. This, amongst other reasons like power consumption and standards-based software has caused BLE to become the de-facto choice for IoT applications.
The most popular IoT applications have so far been seen in wearable electronics (e.g. the Jawbone Up), where a device gathers sensor data, runs complex algorithms to extract meaningful information, then transmits this information to a mobile device. Similar concepts are now being adopted by home appliances and sensor modules to convert ordinary homes into smart homes. Examples of such appliances include smart coffee makers that brew coffee of your choice and have it ready as you’re ready to leave in the morning, or smart lighting control systems that detect your presence in the room and turn lights on or off automatically.
One challenge with the current implementation of the BLE standard is its limited network topology. In systems such as smart homes where you may have multiple nodes (sensors and light switches in many locations), each node has to be individually controlled by a common central device, usually a mobile phone. In this article, we take a look one novel approach as a solution to this limitation.
Consider a smart home system with multiple nodes. Each node has a sensor interface, a light control unit, and a BLE communication unit. The sensor interface can detect human presence and ambient light levels. The light control unit can turn lights on or off and also control the color temperature and intensity of the lights. The communication unit implements the BLE protocol to talk with the other nodes in the smart home system.
Figure 1 shows a high-level block diagram of the smart home system.
In this smart home system, all nodes communicate over a mesh network – each working as a master or a slave in a time-multiplexed manner.
Each node implements the following functionality:
Sensor Interface: Each node implements interfaces for a proximity sensor and an ambient light sensor. The signals from these sensors are conditioned using an amplifier then digitized using an ADC. The digitized signals are then used for the LED control functionality and for communication with other nodes in the system.
Light Control Unit: The measured signals are processed by an MCU and converted into the control information for the light’s color temperature and intensity. The control unit can adjust the light’s color temperature and intensity based on the ambient light levels and the time of day (from an RTC), or based on the user’s input received via an app running on a BLE-enabled mobile phone.
BLE Communication: In this system BLE serves two purposes. First, it provides a way for a mobile phone to control the lights on the node. In this case the node operate as GAP Peripheral and receives control information from the phone, which is the GAP Central. In the second case, BLE provides a mechanism for the node to control other nodes in the smart home system. During this, the node changes it role to operate as the GAP Central so it can send control information to the other nodes.