Introduction: Home Automation With ESP8266 WiFi Without Using Blynk!
Firstly, I want to THANK everyone for making me a winner in Automation Contest 2016 for this INSTRUCTABLE. So, as I promised you, here's the instructable for controlling home appliances with ESP8266 WiFi module.
Step 1: Next in Home Automation
In order to stay on the couch and control all electrical appliance with just a TV remote, I created an instructable for that and now it's time to upgrade to WiFi. Now you'll be able to control everything with your smartphone. Sounds complicated!!! But very easy to make!!!
Step 2: Why ESP8266?
Now you might be thinking why I'm using WiFi here? I would have used Bluetooth or RF but why just Wifi with the ESP8266?
The Simple answer is :
• ESP8266 would be cheaper than Bluetooth module (on eBay, it's just around $2)
• By using the ESP8266, you can connect the module to internet and control it from any part of the world.
Step 3: Which ESP Module I Should Buy?
Now there is a new question raised here Which ESP8266 module I should buy?
Well by now there are many variations of this module. Here in this instructable, I've used ESP-01 module. This was the first module introduced and also the cheapest one so if you are a beginner to IoT, then you better go for this. The module you should buy depends on how many gpio (general-purpose-input-output) pins you need. This will decide how many things you would be able to control through WiFi. For beginners I would recommend ESP-01 module.
Step 4: Some Basic Info on WIFI!!!
WiFi is a technology that allows electronic devices to connect to a Wireless LAN (WLAN) network, mainly using the 2.4 gigahertz (12 cm) UHF and 5 gigahertz (6 cm) SHF ISM radio bands.
Wi-Fi is the name of a popular wireless networking technology that uses radio waves to provide wireless high-speed Internet and network connections. A common misconception is that the term Wi-Fi is short for "Wireless Fidelity", however this is not the case. Wi-Fi is simply a trademarked phrase that means IEEE 802.11x.
Step 5: No Blynk!!!
You can find Home Automation with esp8266 all over the Instructables but a common thing is that they control their esp through Blynk app. Well, Blynk app is also a good thing for the ESP but there are still some cons.
• Firstly, it requires an internet connection so that the app can be connected to it's server.
• Second, like other methods, the Blynk app as well as the Esp would have to connect to a WiFi Hotspot.
So, people who don't have a permanent net connection or a router as a hotspot cannot use the Blynk app.
Step 6: Then What's So Special in My System!!!
In my system, I've created an android app which directly connects to your esp instead of connecting to a hotspot. This also requires no internet connection or any external wifi hotspot as the two machines would connect directly resulting into fast reaction of the ESP.
Step 7: Gather All Parts
Here all the parts you would need in this Project are mentioned and the links from where you can buy them but I recommend that you should first try to find the components locally because this way you could buy them faster and maybe cheaper but if they are not available locally you can always buy them with the links provided. I always buy everything from ebay 'cause it's the cheapest. For this project you will need:
- ESP8266 WiFi Module
- FTDI Breakout (or ARDUINO UNO)
- 2x 1K Resistors
- 2x BC547 Transistor
- 2x 5v Relay
- 2x 1N4007 DIODE
- 2x Screw Teminals.
Step 8: Make It Breadboard Friendly
By now, you may have noticed that the ESP-01 cannot fit on breadboard so we have to make it Breadboard Friendly.
The steps are simple you just have to cut a 4 x 4 dots pcb, solder the male headers and female headers as shown in the pictures above.
Step 9: The Android Application
For controlling the ESP8266 directly from your mobile phone, I've created an app using MIT app inventor. You can find the app here.
First you need to connect your smartphone to esp8266 WiFi and then set ip address to your module's ip address in the app. In my case, it was 192.168.4.1
Attachments
Step 10: TIME TO START BUILD!!!
First we have to connect the ESP module to the computer to update the firmware as well as to program it.
Step 11: Convert 5v to 3.3v!!!
The most importaqnat thing is that the esp8266 module works only with 3.3v and not 5v.
5v can kill it, so in order to convert 5v to 3.3v we have to create a voltage divider.
Create a voltage divider by connecting a 1K and 2K resistor as shown in the pic.
Step 12: Connect FTDI to Esp!!!
Just follow the schematic to connect your esp to an FTDI breakout. Make sure to use 3.3v only on your FTDI breakout.
Step 13: You Don't Have an FTDI Breakout!
If in case you don't have an FTDI breakout just like me, you can also use your arduino to program the esp.
REMOVE THE ATMEGA 328 IC FROM THE ARDUINO BOARD BEFORE PROGRAMMING.
DONT FORGET THAT ESP8266 WORKS ON 3.3v AND NOT ON 5v.
ARDUINO ESP8266
3.3v ---------------- VCC
GROUND------------GROUND
3.3v ---------------- CHP_PWD(CHIP POWER DOWN)
TX --------------- TX
RX --------------- RX
Step 14: Flash Your ESP
Flash your ESP to the latest firmware.
Download the necessary software.
Flasher.exe
Make sure to connect gpio 0 to ground. This will enable the flash mode in your esp.
Download the files . >>>>>The files would be in zip file so unzip them and open the esp8266_flasher.exe>>>>>You can use the .bin firmware already provided in the zip file.>>>>>Then select your COMMUNICATION (COM) PORT, and enter 0x00080 in the other column.>>>>>>> Hit Download.
Step 15: Check If Everything's All Right!!!
After flashing the ESP, it's time to check if everything's all right.
- Go to Arduino IDE
- Go to serial monitor
- Select baud rate 115200
- Now enter the following commands.
AT
After entering this command press SEND and if you recieve OK then you are all set to go.
You can play with the module with other AT Commands as shown in the pics above.
Step 16: Pre-Coding
To program the ESP from Arduino IDE, you have to install some necesary softwares.
1. Go to Arduino IDE
2. Go to File >>>> Preferences
3. In the text box of ADDITIONAL BOARDS MANAGER URL, copy and paste the path below
http://arduino.esp8266.com/package_esp8266com_inde...
4. Go to TOOLS >>>>> BOARD >>>>> BOARD MANAGER
5. Type esp in the searchbox and only one option would be left.
6. Install that ESP8266 PACKAGE.
Step 17: Time for Coding!
After installing the ESP8266 Package,
GO TO TOOLS >>>>> BOARDS >>>>> Select the module you have (If you have the esp-01 module like me, select the GENERIC ESP8266 MODULE)
Now change the Properties according to your module in the tools menu.
Now make sure you have the ESP8266WIFI library.
Upload the code to your esp.
Attachments
Step 18: Make the Circuit!!!
First try to make the circuit on breadboard and then make it permanent on pcb board.
But the biggest problem is that the ESP8266 needs 3.3v and not 5v.
Don't underestimate the power of 5v, it's enough to kill your ESP module.***Hey! strucked somewhere??? I am always there to help you in the comments below!!!***
Step 19: CAUTION!!! HIGH VOLTAGE!!!
WARNING!!!
Incorrect or Improper use can lead to:
- Serious injuries or Death.
- Physical Damage to the Product.
- Creating dangerous Hazards.
***I TAKE NO RESPONSIBILITY OF ANY OF YOUR ACTIONS***
Step 20: How to Use This at Your HOME!!!
Let's say you want to control your light and fan of your bedroom, you can install this circuit on the switch board. Just open the switch board that controls your lights and fans and you will find that two wires are attached to the switch. Just remove those wires from switch and connect them to the PCB terminals and you're done. Super Simple yet Efficient.
***Kids, stay away from live electric wires. Have an adult beside to do the high voltage electric work***
Step 21: TroubleShooting!@#$%
Hmm... Not working as Expected???
Try this Trouble Shooting guide so you can make your project work like a charm!!
- First check the code. Make sure that you have all the libraries installed correctly. If not then you have to download them first.
- Make sure that the Connections are correct. Using the continuity function of your multimeter check for any wrong connections or short circuits!!!
- Make sure you have working ESP and relays.
- Make Sure you have placed the diode in correct polarity.
- Make sure that you have connected your phone to esp through WiFi.
*** If you have any doubts regarding this you can always ask me in the comments below ***
Step 22: Check These Points!!!
- Before testing the circuit, double check all connections with continuity function of multi meter for any wrong connections or short circuits.
- Install the diode between the coils in correct polarity as it will protect our circuit from any reverse current.
- I recommend that before testing the circuit with HIGH AC VOLTAGE, first try it with a simple LED.
- Also never use such appliances that draws more current than your Relay's ratings.
Step 23: What's Happening Here???
Hmm... confused by now... let me tell you What's happening here???
When you press the button ON on the WiFi controller app, it sends a signal ON to the ESP. The module is programmed in such a way that when it receives the ON signal, it turns it's gpio state to HIGH. By doing so, the relay gets activated and so the appliance turn ON. In the same way when you press OFF, the esp turns it's gpio state to LOW, and so the relay turns off so the appliance. The working principle is very simple as compared to the complication in Blynk app.
If you want more info check GreatScott's tutorial on this.
*** If you still have some doubts, feel free to ask in the comment section below***
Step 24: Conclusion!!!
Hey!!! Good Luck for creating this on your own. If you are strucked somewhere, feel free to ask me in the comments sections below. I 'll always be there to help. If you have any suggestions tell it to me, and if you like the project hit the like button, share the project as fas as you can and please VOTE in the contests.
Thanks for reading,
YAVNIK SHARMA

Participated in the
Epilog Contest 8

Participated in the
IoT Builders Contest

Participated in the
Circuits Contest 2016
66 Comments
10 months ago on Step 7
Hello,
Can I use NPN transistor(8050) and 1N4001 diode in place of BC547 transistor and 1N4007 diode?
Reply 9 months ago
if you mean S8050, yes. any general purpose transistor will do.
same is with the diode. you can use 1N4001. it is same as 1N4007 but for lower voltage (60V instead of 1000V) and 60V rating is more than enough for use in 5V circuit.
4 years ago
I logged in just to tell you thank you Mr.Yavnik Sharma, much regards from Saudi Arabia !
Reply 1 year ago
plzz send me yours arduino code
Question 1 year ago
Did anyone ever have success with doing this project with and iOS I saw several posts and was curious if anyone ever got it accomplished?
2 years ago
Will the source code wifi controller be made available? This is a frequent request. Thanks
Reply 1 year ago
STILL NO ANSWER ...SUPPOSE THIS MEANS 'NO'
2 years ago
Hi
Thanks for sucha brilliant project.
But I have a doubt : should we connect tx with tx and rx with rx ?
Or should it be Tx to Rx and Rx to Tx?
Thanks and regards
Javed Ahmad
New delhi
Question 2 years ago on Step 9
Please send me source code wifi controller🙏
Question 2 years ago on Step 24
Hi,
Thanks for the ESP no-internet WiFi. Its just what I need for my home apps, using my local WiFi. Excellent work!
Problem is that I can not make it work. I flashed the esp-01 and have the AT commands OK. I could set the IP and gateway. I further installed the Arduino ESP8266 package and selected the generic esp, but I am unable to load the Arduino FCXSCY8IR85H83Y.ino file (esp8266code.ino) using my Arduino IDE.
Do I need to keep the IO0 grounded? What is the step-by-step procedure to load the program?
Furthermore: I wish to modify the Android screen. Can you provide the source? (or any Android WiFi working template) ?
Thanks.
2 years ago
2 years ago on Step 14
Why would I need to flash the ESP??
What is the default ip address through which I can connect with ESP through an android app without any intwrnet connection??
Can I set up a password for this module??
As I going to use this esp module for professional purpose, I need more detailed information..
Aside this do you have any information about nRF40L01 module?? how to connect it and control the atmega??
A well advance thanks to you as what you did with ESP without internet, that is very promising and I didn't find such detailed information anywhere.
Question 2 years ago
hello, thank you for your post, I have a question and I hope you will answer it for me, my question is, how I can send a message via an app like TCP Server to the ESP-01 Module via different WI-FI (i mean the ESP module connected to wi-fi and the Mobile connected to another wi-fi) i know how i can do that when they are connected to same wi-fi but i cannot do that whith different wi-fi.
Question 2 years ago on Step 1
Thank you for this instructable :) , I'm wondering if i can use a nodemcu board for this project? Thank you
4 years ago
builded everything and when sending commands blue led blinks but no output ..
solutions ???
Reply 4 years ago
Change the if loops as follows , it'll work perfectly fine:
if (req=="GET /?pin=OFF1 HTTP/1.1")
{
digitalWrite(LED1, HIGH);
}
else if (req=="GET /?pin=ON1 HTTP/1.1")
{
digitalWrite(LED1, LOW);
}
Reply 3 years ago
Thanks AliA430 !!!!!
it worked as charm !
Tip 3 years ago on Introduction
Safety Is Most Important to All Any ,Please Advise and Instruct to all to that, while doing any electrical electronics project must wear in foot Rubber Chapels and [ Use AC Mains power from 1:1 ratio ISOLATED Transformer] To PREVENT accidental shock lethal hazard,
And Or Use ELCB -Earth Leak Circuit Breaker Switch Before Ac Mains Supply to prevent SHOCK., If we touch any mains points with out our attention this will trip and power will Shut Down.
3 years ago
Hi,
Would it be possible to post the source code for the MIT app inventor app?
Thanks
3 years ago on Step 1
I want app that work through internet