Make Smallest IoT Home Automation using ESP8266-01


In this project, we will be using the ESP8266-01 Wi-Fi Development board to make a small IoT home automation that has Wi-Fi featured in it. The system operates on a local web server and is easy to use for the novice. With this project, we can control at most two AC appliances which suit best for your small IoT projects.

China PCB Prototype and Fabrication Manufacturer

Espressif developed Wi-Fi enabled microchip – ESP8266 proved to be a boon in the IoT field. This caused the arrival of various other ESPs and Open Source Development boards thereby allowing even a novice to make Wi-Fi featuring applications.

ESP-01 1MB version (extreme left) and 0.5MB version (extreme right).
Figure 1. ESP-01 1MB version (extreme left) and 0.5MB version (extreme right).

On a local web server, we do not require Internet and handling everything over Wi-Fi is possible. Here, we will be handling the two Input & Output pins and switching relays on a web page of the local server. We can connect our home appliances with the Relay Module that will be driven by ESP8266-01.

Material required for the IoT project

  1. ESP826 6-01: It will serve as the brain of our project.
The ESP8266-01 board.
Figure 2. The ESP8266-01 board.
  1. FTDI Board (USB to TTL): To upload code in ESP8266-01.
FTDI Board.
Figure 3. FTDI Board.
  1. 2 AC Appliances
  2. One(1) 2-Channel Relay Module
2 Channel relay module
Figure 4. 2 Channel relay module
  1. Breadboard with some wires.

Steps for the ESP8266 Setup in Arduino IDE

(Ignore this step if you already have the setup for Arduino IDE.)

To code the ESP8266 we need an Integrated Development Environment and we will use Arduino IDE software. Arduino IDE is a cross-platform application. It is written in Java and coded in C/C++ with some special rules. You can download the latest version of the Arduino IDE from the link in the Downloads section.

Arduino IDE does not contain support of ESP8266 family so to install the ESP8266 Boards library in Arduino IDE, follow the instructions below.

  1. Open Arduino IDE. Go to File > Preferences.
Preferences in Arduino IDE
Figure 5. Preferences in Arduino IDE
  1. Enter into the “Additional Board Manager URLs” field. Now, click the “OK” button.
  2. Go to Tools > Board > Boards Manager.
Boards manager in Arduino IDE
Figure 6. Boards manager in Arduino IDE
  1. Search and scroll down ESP8266 board in menu and install “esp8266 by Esp8266 community”.
  2. Select your ESP8266 board from Tools > Board > Generic ESP8266 Module.
Менеджер плат в Arduino IDE.
Figure 7. Board Selection in Arduino IDE.
  1. Restart your Arduino IDE.

Source Code of the IoT project

Download the Code from the link provided in the Downloads section and Open it in Arduino IDE. Before uploading you need to make some changes in the code. Let’s understand the code.

Place your Wi-Fi credentials here within the double quotes. The library helps to run the functions of Wi-Fi in Arduino IDE.

Listing 1. Wifi credentials.

In the void setup(), we place all the one-time setup codes. All the instructions written here will run only once or after every Reset.

So, the GPIOs 0 and 2 of ESP8266 are made OUTPUT here and the server is started.

Void loop() is the place for the main executable instructions. The GPIO values are changed here as per the request of the client connected.

This request is displayed via this HTML page.

Listing 2. HTML Web page in the source code.

Save the Code. To Upload the code, follow the instructions below.

  1. Connect the FTDI pins to ESP8266 as shown below.
Flashing ESP8266-01.
Figure 8. Flashing ESP8266-01.
  1. Select your COM Port from Tools > Port after connecting FTDI USB to your PC or Laptop.
  2. Also, check if your ESP8266 supports 9600 or any other Baud Rate.
  3. Now Click Upload.

The code in ESP8266 is uploaded in Flash Mode, which is when GPIO 0 is grounded.

Now, to run the code in it, we need to remove it from Flash Mode. For this, simply remove GPIO 0 from the ground and Reset.

To Reset ESP8266, simply touch the Reset Pin of ESP8266 to Ground for half a second. Its Blue LED will flicker.

Circuit diagram for Home automation

Flow the circuit diagram for making the home automation system.

GPIO0 -> Relay IN 1.
GPIO2 -> Relay IN 2.

We will use 5 volts input supply for driving the Relay Module and 3.3 Volts Input for the ESP8266.

Circuit diagram for IoT Home Automation.
Figure 9. Circuit diagram for IoT Home Automation.

Connecting to the web using the IP address

After uploading the code, go to Open Tools>Serial Monitor. ESP8266 will try to connect to Wi-Fi and display its IP address on Arduino serial monitor. This IP is needed only the first time. The IP remains the same forever so have this IP before making the main connections.

Make sure that the Wi-Fi router to be connected is already open. Hit this IP address in the browser of the device connected to the same Wi-Fi.

URL: http://192.168.xx.xx (your IP displayed in Arduino serial monitor).

You will be able to see the HTML Web page mentioned in the code.

HTML Web page.
Figure 10. HTML Web page.

Now, by changing the values in the URL you can switch your appliances.

Testing the IoT Home Automation project.
Figure 11. Testing the IoT Home Automation project.

Try with,


IoT Home Automation System Testing.
Figure 12. IoT Home Automation System Testing.


  1. Arduino IDE
  2. Source code

You may have to register before you can post comments and get full access to forum.
User Name