This post describes the HC-06 Bluetooth module and shows a simple app to turn on and off a lamp with an Arduino board.
HC-06 is a cheap Bluetooth module that supports SPP (Serial Port Profile), which allows the establishment of an emulated serial connection using Bluetooth. This connections is transparent for the microcontroller, since the module handles all the Bluetooth protocol details. So, we just send the data the same way we would do if we were directly communicating with a computer using a USB cable, for example.
This device has a maximum range of 10 meters and works only as a slave in the Bluetooth protocol . It operates at 3.3 V and has a current consumption of 30-40 mA during the pairing procedure and of 8 mA during communication .
It supports communication rates to 1382400 Baud  and can be configured with AT commands, which can only be sent before the device pairs with the other communication entity. Those commands include configuring the communication rate, the name of the device and the pairing PIN .
The HC-06 can be bought already soldered in a baseboard, as shown in figure 1. This board has the pins easily accessible and supports a 5 V supply voltage. Of course that, by adding more components, the current consumption is a little bit higher that previously specified. It is available at eBay for less than 3.5 euros.
Figure 1 – HC-06 with baseboard.
Turning on and off lamps
In the example shown in the video, the Arduino board is connected to the HC-06 in order to receive data from a computer through Bluetooth. We used the Arduino IDE serial monitor to demonstrate that the communication is transparent once the pairing between the computer and the module is done.
The Arduino is also connected to a cheap 5 V relay, which controls the lamp. Whenever the a letter “t” is sent from the computer, the Arduino board toggles the relay state.
This is just a quick example to illustrate the potential of the module. It can also be connected to an Android smartphone, which would be much more user friendly to a home automation application. You can also check this post were I used the HC-06 to implement the Bluetooth communication of a prototype of a smart medication dispenser.
Important: Sending raw bytes to implement communication is not a good practice, specially in wireless protocols. This was done only to make a quick proof of concept. Check this post for a more robust way of doing it.