In this IoT project, I have shown how to make an IoT-based Home Automation with Arduino IoT Cloud & Alexa using ESP32 to control 4 home appliances with voice commands.

If the internet is not available, then you can control the home appliances manually with switches and IR remote. During the article, I have shown all the steps to make this smart home system.

This IoT-based Home Automation system has the following features:

  • Control appliances with Alexa and Arduino IoT Cloud Dashboard.
  • Control the relays with the IR remote.
  • Control appliances manually with switches.
  • Control home appliances manually without internet.
  • Monitor real-time feedbacks and room temperature in the Amazon Alexa app.
  • All resources used for this project are FREE.

So, you can easily make this home automation project at home just by using an ESP32 and relay module. Or you can also use a custom-designed PCB for this project.

Required Components:

1. ESP32 DEVKIT V1

2. 4-channel SPDT 5V Relay Module

3. Push Buttons

4. DHT11 sensor

5. 1838 IR Receiver

4. Alexa Echo Dot (Optional)

If you use the custom-designed PCB for this project, then please refer to the following required components list.

Required Components for the PCB:

  • ESP32 DEVKIT V1
  • Relays 5v (SPDT) (4 no)
  • BC547 Transistors (4 no)
  • PC817 Optocuplors (4 no)
  • 510-ohm 0.25-watt Resistor (4 no) (R1 - R4)
  • 1k 0.25-watt Resistors (6 no) (R5 - R10)
  • 10k 0.25-watt Resistor (1 no) (R11)
  • LED 5-mm (6 no)
  • 1N4007 Diodes (4 no) (D1 - D4)
  • Push Buttons (4 no)
  • Terminal Connectors
  • 5V DC supply

Required Software:

1. Arduino IoT cloud

2. Amazon Alexa App.

Circuit Diagram of the ESP32 Home Automation Project:

The circuit is very simple, I have used the GPIO pins D23, D22, D21 & D19 to control the 4 relays.

And the GPIO pins D13, D12, D14 & D27 are connected with switches to control the 4 relays manually.

I have used the INPUT_PULLUP function in Arduino IDE instead of using the pull-up resistors.

IR remote receiver (TSOP1838) connected with D35. And the DHT11 sensor connected with RX2.

I have used a 5V mobile charger to supply the smart relay module.

Please take proper safety precautions while working with high voltage.

Alexa Control Relay Using ESP32:

You can control the home appliances from Amazon Alexa App and also monitor the room temperature if the ESP32 is connected with Wi-Fi.

You can also ask Alexa to turn on and off the appliances from anywhere in the world.

You don't need any Echo DOT or other Alexa devices for this home automation project.

ESP32 Control Relays With Arduino IoT Cloud Dashboard:

You can also monitor the room temperature and control the home appliances from the Arduino IoT Cloud web dashboard and Arduino IoT Cloud Remote mobile app if the ESP32 is connected with WiFi.

In this project, I have used the FREE plan of Arduino IoT Cloud. In the FREE plan, you can control a maximum of 5 relays or sensors.

When you control the relays from the Arduino IoT Cloud Remote mobile app the current state of the relay is also updated in the Amazon Alexa App.

IR Remote Control Relays Using ESP32:

You can always control the relays from any IR remote.

I will explain how to get the IR codes (HEX codes) from any remote in the following steps.

And if the ESP32 is connected with Wi-Fi, then you can also monitor the real-time feedback in the Amazon Alexa App & Arduino cloud dashboard.

Control Relays Manually From Push Buttons:

If the WiFi is not available, you can control the relays from the pushbuttons.

When the WiFi is available, the ESP32 will automatically reconnect with the WiFi.

Please refer to the circuit diagram to connect the pushbuttons.

Design the PCB for This Smart Home System:

To make the circuit compact and give a professional look, I have...

Read more »