Introduction: Home Automation Using Arduino With Wifi, Bluetooth and IR Remote Control
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
*ESP8266-01,
*HC-05
*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
SENSORS
*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.
Step 3: POWER SUPPLY
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.
https://www.instructables.com/id/Connecting-ESP8266...
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.
Attachments
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
Connections
display---arduino
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.
Attachments
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

Runner Up in the
Automation Contest 2016
30 Comments
Question 1 year ago
can i have the links of videos please
Question 2 years ago
Why we are using dth11 here..
Question 4 years ago on Step 11
how can i purchase this projet
i need full code and circuit diagram
can you help me?
and if i purchase it then it will success?
6 years ago
Great bro
Keep it up.:)
I think you made it as a final year project.:D
Reply 4 years ago
lojo
5 years ago
can you add the videos
Question 5 years ago on Step 4
can you addthe youtube videos
5 years ago
Very Nice.
6 years ago
Great bro! but where are the codes?
Reply 5 years ago
https://github.com/Amitmp/Home-Automation-project
6 years ago
can we access in this WiFi (arduino) from other network or from anywhere??
Reply 5 years ago
Yes
6 years ago
Aoa sir my project is remote control of home appliance with arduino through webpage for interfacing arduino with webpage i am using esp8266 esp 12...in project i am using master slave technique ...which means webpage will interface with master arduino through esp8266 then that master arduino will send signal to slave arduino through rf module ..and this slave will now light up the appliances....now main issue is i have made webpage communication between master slave has been done ...but interfacing of arduino with webpage is making problem ....my code is correct connections are correct but the code is not burning in wifi module it is giving error "
Error : failed to open com6
Error: espcom_open failed
Error: espcom_upload_mem failed "
Do you have some idea about it ?
Moreover sir i wana ask we have to remove arduino chip when we are buring code in esp8266 ?
Or we have to write the code in the same arduino file which we have developed while communication between master and slave ?
Reply 5 years ago
https://github.com/Amitmp/Home-Automation-project
5 years ago
nice explanation.. also plz give me the code and circuit diagram for voice controlled home automation using arduino uno and esp8266 01..thanku
Reply 5 years ago
https://github.com/Amitmp/Home-Automation-project
6 years ago
ESP8266-1 needs 3.3v power supply. The whole system is running on 5V supply so I've used a Linear voltage regulator LM317.
Reply 6 years ago
sir can you show us the LM317 connection or show atleast a circuit diagram how will I connect the LM317.. i think there is 2 resistor connected and a capacitor? what are the value of used components?
6 years ago
why it is that the ESP8266-1 on the video it has capacitor and resistors,, that is not on the circuit diagram? I want to make this as my project i just need your help.
6 years ago
another thing sir you said you used 3 atmega328 but i can only see a 2 atmega328 on the circuit diagram.