DIY Smart LED light

Smart bulb or smart LEDs are energy-efficient and multicolour lights that can be controlled by your Android phones, iPhone, iPad and tablets. These smart bulbs can cost anywhere from £20 to £100. However, it is relatively easy to build one using cheap electronics. In this post, we are going to show how to build a DIY Smart LED light driven by an Arduino.

To build the DIY Smart LED light, we are going to use the HC-05 bluetooth module to send commands to an Arduino Nano. The Arduino will then drive the LEDs as described in our previous post: RGB LED STRIP TUTORIAL

For a tutorial on how to use the HC-05 module with an Arduino, read our Arduino Bluetooth Interface post.


  • Arduino Nano £1.50 from eBay
  • HC-05 with breakout board £2.52
  • RGB LED strip (1 Metre) £2.79
  • TIP120 (x3) £0.35 each
  • Misc £0.50

Android App

There are a range of Android app available on the Play Store that is capable of controlling RGB leds through bluetooth. For a start, we decided to test one of the apps that looked very simple: Color LED controller V2.0
Color LED controller V2.0

Bluetooth Commands

Using the app, you can select the color that you want and this is sent over Bluetooth to the HC-05 and eventually to the Arduino. The format of the data that is sent over Bluetooth vary from app to app and to determine in which format the data is sent, we wrote this simple program and uploaded it to the Arduino. The Arduino-Bluetooth connections is also shown below.

/*Author: */
#include <SoftwareSerial.h>// import the serial library
SoftwareSerial ser(10, 11); // RX, TX
char Bluetooth; // the data given from Android Phone
void setup() {
  // Run Once Setup code
void loop() {
  // put your main code here, to run repeatedly:
   if (ser.available()){
Bluetooth= (char);
delay(100);// Wait for 100 ms

HC-05 Connections
After powering the Arduino and connecting your phone to the HC-05, open up serial monitor and select any color on the app and you should see the RGB values in the serial monitor. Our HC-05 has been renamed to “behindthesciences”.

The values are displayed as characters on the monitor as the variable is declared as char in the code.
Arduino bluetooth RGB LED
In the above case, the following values is displayed in terminal: 254.14.1)
The “)” indicates an end of data or end of string.

Putting it all together…

First of all, upload this code: DIY Smart LED code.
Connect the RGB LED driver and LEDs as shown in the RGB LED Strip Tutorial.
Power everything and connect your phone to the HC-05 using the LED controller app and you should see some light:

Add a Comment

Your email address will not be published. Required fields are marked *