Introduction: Home Automation Using Arduino With Wifi, Bluetooth and IR Remote Control

About: An Electronics and communication engineer !!!

This is a tutorial to show how to build a home automation system using arduino with Wifi [ESP8266-01], bluetooth (HC-05) and IR remote control. Home automation results in a smarter home and is used to provide a higher and healthier standard of living. The beauty of a home automation system is that it is highly scalable, flexible and its capabilities are limited only by our imagination.

Step 1: Overview of the Home Automation System

This systems consists of 3 custom built arduino uno boards, two of which are connected to each other via I2C bus, one of which acts as a "master sender" and the other a "slave reciever". Home automation system can be controlled using Internet, which is achieved by using ESP8266-01 and blynk libraries. It also allows us to control the system by giving voice commands using HC-05 bluetooth module and AMR voice app.

I have explained interfacing each of the components to the microcontroller.

Materials needed:

* 3x arduino uno or Atmega328 / Atmega328p



*TSOP IR receiver

*IR remote.

*nokia 5110 display

* RTC (DS1307) real time clock

To build your own 5V Power supply from 230v / 110v ac-

*12-0-12 1A step down transformer

*Bridge rectifier / 4x diodes(1N4001)

*1000uF, 25v capacitor

*DC-DC stepdown buck convertor

*LM1117 or LM317 to get 3.3V power supply for ESP8266-01


*PIR (passive infrared)

*DHT11(Temperature and humidity)

* other materials such as breadboard, strippers, wires, jumpers, glue, sticky tapes etc..

Step 2: Circuit Diagram

The main control center of system are the three ATmega328p microcontroller. This part of the system manages the controllers and gets the commands from the user. It also sends temperature and humidity measurement to the mobile application. ATmega328p also gets sensor data and processes them to perform useful functions. The microcontroller also switches the relays to turn on/off the electrical devices when required. It displays the date and time using the RTC and the LCD display device.


The micro controllers need 5V DC power supply, this is obtained from 230V AC supply.

* A 12-0-12, 1A STEP DOWN transformer converts 230v AC to 12V AC.

*12V AC is converted to unregulated DC by passing it through a BRIDGE RECTIFIER and A 1000uF capacitor.

*12V DC (unregulated) is applied at the inputs of a DC-DC step down BUCK CONVERTER.The buck converter is adjusted to get output voltage of 5V DC.

* Buck converters are highly efficient over linear regulators(LM7805).

Step 4: Connecting ESP8266-01 to Arduino Uno

The following tutorial by me shows how to flash firmware and upload code to ESP8266-01 using uno and mega.

and then create a project in Blynk app

I've used DHT11 data to be transmitted to blynk app and used 3 buttons to control the 230v bulbs using relay.

Use the DHT11 files to send data via esp-01 to blynk app.

Step 5: Bluetooth Voice Control

Android Meets Robots: Voice Recognition, Uses android phone’s internal voice recognition to send voice commands to the microcontroller via bluetooth module. It pairs with Bluetooth Serial Modules and sends in the recognized voice as a string. The voice to text conversion requires an internet connection to the android device. For example if you say Hello the android phone will return a sting *Hello# to your bluetooth module *and # indicate the start and stop bits

check out this tutorial for connections

Step 6: IR Controller

Use this library and the hex codes given in the image to program the uno to perform specific functions when key is the pressed.

Step 7: Connecting Nokia 5110 LCD and RTC



clk-- 8

MOSI/Din- 9

DC-- 10

RST -- 11

CS -- 12

RTC -- arduino

SCL --- A5

SDA-- A4

Then use the code given to display the time from RTC on nokia 5110.

Step 8: RELAYS

A relay is basically an electrically controlled mechanical switch. Inside that harmless looking plastic box is an electromagnet that, when it gets a jolt of energy, causes a switch to trip. The microcontroller provides 5V signal to the relay it is converted to a 12V signal by the driver circuit which consists of a transistor and a diode.

Step 9: I2C Communication

This library allows you to communicate with I2C / TWI devices. On the Arduino boards with the R3 layout (1.0 pinout), the SDA (data line) and SCL (clock line) are on the pin headers close to the AREF pin.

use the master writer and slave receiver codes. The Uno with WIFI and DHT acts as master sender and the uno with bluetooth, IR receiver acts as slave receiver.

Step 10: Home Automation System

The final system is as shown.

Step 11: Code

You can find the code to this project in the following link


Automation Contest 2016

Runner Up in the
Automation Contest 2016