IoT based Smart Home Automation Using Amazon Alexa & ESP32 to control 8 home appliances from the manual switch & Amazon Alexa App. If the internet is not available, then you can control the home appliances from manual switches. During the article, I have shown all the steps to make this smart home system.

Required Components:

1. ESP32 DEVKIT V1 board

 2. 8-channel SPDT 5V Relay Module 

 3. Alexa Echo Dot (Optional) 

 4. Manual Switches

Required Components for the PCB

1. Relays 5v (SPDT) (8 no)

2. BC547 Transistors (8 no)

3. PC817 Optocuplors (8 no)

4. 510-ohm 0.25-watt Resistor (8 no) (R1 - R8)

5. 1k 0.25-watt Resistors (10 no) (R9 - R18)

6. LED 5-mm (10 no)

7. 1N4007 Diodes (8 no) (D1 - D8)

8. Push Buttons (8 no)

9. Terminal Connectors

10. 5V DC supply

Required Software:

1. Arduino IDE

2. Amazon Alexa App

Circuit Diagram of the ESP32 Project:

This is the complete circuit diagram for this home automation project. I have explained the circuit in the tutorial video.

The circuit is very simple, I have used the GPIO pins D23, D22, D21, D19, D18, D5, D25 & D26 to control the 8 relays.

And the GPIO pins D13, D12, D14, D27, D33, D32, D15 & D4 connected with switches to control the 8 relays manually.

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

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

Control Relays With Voice Commands Using Alexa

If the ESP32 module is connected with the WiFi, then you can control the home 

appliances from Amazon Alexa App and also from the manual switches.

You can control, monitor the real-time status of the relays in the Alexa App from 

anywhere in the world.

You don't need an Alexa device for this home automation project.

Control Relays Using Switches:

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

The ESP32 will check for the WiFi after every 3 seconds. When the WiFi is available, the ESP32 will automatically connect with the WiFi.

Please refer to the circuit diagram to connect the manual switches.

Create an Account in Sinric

First, visit

Click on Register.

You have to create an account in Snric.

Then log in to Sinric Account.

You will get an API key which will be required in the code.

Now click on Add.

Add Devices in Sinric

Then enter a name for the device. Alexa will identify the device with that name.

Select the type as Switch.

Click on Save.

In this way add 8 devices in Sinric. Each device will get a unique device ID.

Program ESP32 Using Arduino IDE

First, you have to install the required libraries. I have shared all the links in the code.

Then enter the API key & WiFi credentials

#define MyApiKey "----------------"
#define MySSID "--------"
#define MyWifiPassword "------"

Then enter the device IDs for each device. 

String device_ID_1 = "------------------------";
String device_ID_2 = "------------------------";
String device_ID_3 = "------------------------";
String device_ID_4 = "------------------------";
String device_ID_5 = "------------------------";
String device_ID_6 = "------------------------";
String device_ID_7 = "------------------------";
String device_ID_8 = "------------------------";

 After that select the DOIT ESP32 DEVKIT V1 board and the PORT. Then click on the upload button.

While uploading if you see the "Connecting.....___" text, press the BOOT button of ESP32.

Configure the Alexa App for This Smart Home System

Download and install the Amazon Alexa App from the Google play store or app store.

Go to "More", then select "Skills & Games"

Search for Sinric and tap on "Sinric".


Connecting Devices With Alexa

Log in with the Sinric account credentials...

Read more »