Arduino IoT Cloud ESP8266 NodeMCU Alexa Home Automation System | IoT 2021

by techstudycell in Circuits > Arduino

9747 Views, 69 Favorites, 0 Comments

Arduino IoT Cloud ESP8266 NodeMCU Alexa Home Automation System | IoT 2021

IMG20210604051517_01.jpg
vlcsnap-2021-06-06-19h48m11s870.png
vlcsnap-2021-06-06-18h41m39s810.png
vlcsnap-2021-01-17-19h59m11s931.png
thumb _website.jpg
Arduino IoT Cloud ESP8266 NodeMCU Alexa Home Automation system | Internet of Things projects 2021

In this IoT project, I have shown how to make an IoT-based Smart Home with Arduino IoT Cloud & Alexa using NodeMCU ESP8266 to control 4 home appliances with voice commands. If the internet is not available, then you can control the home appliances manually with switches. 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:

  1. Control appliances with Alexa and Arduino IoT Cloud Dashboard
  2. Control appliances manually with switches.
  3. Control home appliances manually without internet.
  4. All resources used for this project are FREE.

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

Supplies

You can make this project just by using NodeMCU and 4-channel relay module. But if you use PCB then you need the following components.

  • NodeMCU
  • 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 (5 no) (R5 - R9)
  • LED 5-mm (5 no)
  • 1N4007 Diodes (5 no) (D1 - D5)
  • Push Buttons (4 no)
  • Terminal Connectors
  • 5V DC supply

Circuit Diagram of the NodeMCU Home Automation Project

vlcsnap-2021-06-06-19h21m04s477.png

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 D1, D2, D5 & D6 to control the 4 relays.

And the GPIO pins SD3, D3, D7 & RX connected with push buttons to control the 4 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.

Here, the D3 pin should not be connected with GND during the booting process of NodeMCU.

Alexa Control Relay Using NodeMCU

vlcsnap-2021-06-17-21h10m39s728.png
IMG20210604051142_01.jpg

You can control the home appliances from Amazon Alexa App if the NodeMCU is connected with the WiFi.

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.

NodeMCU Control Relays With Arduino IoT Cloud Dashboard

Screenshot (19).png
vlcsnap-2021-06-06-19h20m36s704.png
vlcsnap-2021-06-06-19h20m54s810.png

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

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

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

Control Relays Manually From Push Buttons

IMG20210604051244_01.jpg
vlcsnap-2021-06-17-21h41m23s649.png

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

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

Please refer to the circuit diagram to connect the pushbuttons.

Design the PCB for This Smart Home System

vlcsnap-2021-01-17-19h58m26s121.png
vlcsnap-2021-01-17-19h58m40s950.png
vlcsnap-2021-01-17-19h58m50s543.png

To make the circuit compact and give a professional look, I have designed the PCB after testing all the features of the smart relay module.

You can download the PCB Gerber file of this home automation project from the following link: https://drive.google.com/uc?export=download&id=1Jx4D_DSV_ei1y0a82AbtxbsNhy8sjCmY

Order the PCB

JLC PCB_Pic 1.jpg
JLC PCB_Pic 2.jpg

After downloading the Garber file you can easily order the PCB

1. Visit https://jlcpcb.com/RHS and Sign in / Sign up.

2. Click on the QUOTE NOW button.

3. Click on the "Add your Gerber file" button. Then browse and select the Gerber file you have downloaded.

Uploading the Gerber File and Set the Parameters

jlc pcb pic 2.2.png
JLC PCB_Pic 3.jpg

4. Set the required parameter like Quantity, PCB masking color, etc

5. After selecting all the Parameters for PCB click on SAVE TO CART button.

Select Shipping Address and Payment Mode

FPR02dddddXCKL1ddCQAUS.jpg
F637ddddddWIQKL1ddCQAUR.jpg
IMG20210109165955_01.jpg

6. Type the Shipping Address.

7. Select the Shipping Method suitable for you.

8. Submit the order and proceed with the payment.

You can also track your order from JLCPCB.com. My PCBs took 2 days to get manufactured and arrived within a week using the DHL delivery option.

PCBs were well packed and the quality was really good at this affordable price.

Solder All the Components on PCB

vlcsnap-2021-01-17-19h59m20s552.png
vlcsnap-2021-01-17-19h59m26s786.png
vlcsnap-2021-01-17-19h59m32s188.png

After that, I have soldered all the components as per the circuit diagram.

Then connect the NodeMCU board with the PCB.

Create Arduino IoT Cloud FREE Account

Screenshot (21).png
vlcsnap-2021-06-17-22h27m23s036.png
vlcsnap-2021-06-17-22h27m34s615.png
vlcsnap-2021-06-17-22h28m01s502.png

For this smart house project, I have used the Arduino Cloud Free plan.

Click on the following link to create an Arduino IoT Cloud account.

https://store.arduino.cc/digital/create

  1. Click on "GET STARTED FOR FREE", then click on "create one".
  2. Enter your birthday, then click on "Next".
  3. Enter the email ID, user name, set password. Then click on "Sign Up"
  4. Now click on "IoT Cloud".

Add NodeMCU ESP8266 Device in the Arduino IoT Cloud

vlcsnap-2021-06-17-22h21m55s178.png
vlcsnap-2021-06-17-22h22m24s877.png
vlcsnap-2021-06-17-22h22m55s580.png
vlcsnap-2021-06-17-22h23m13s309.png

Click on the Select Device on the right.

  1. Select "Set up a third Party device", then select device type as ESP8266 and device model as NodeMCU 1.0.
  2. You will get a Device ID and Secret Key which will be required in the code.
  3. Click on "Continue", You will find the device added.

Add Varriable in Arduino IoT Cloud

v0.png
v1.png
v2.png

Now to control 4 relays, you have to add 4 variables.

Click on the "ADD VARIABLE" button.

Enter name, then select Alexa compatible switch type. Variable Permission will be "Read & Write" and Variable Update Policy will be "On Change".

In a similar way, you have to add the next 3 variables.

Set Up Arduino IoT Cloud Dashboard

d0.png
d1.png
d2.png
d3.png

Now click on Dashboard on the top to set up the Arduino cloud dashboard.

Then click on Build Dashboard.

After that click on EDIT icon. Then click on ADD and select Switch.

Give a name to this Switch, then link a variable with this switch widget.

Then click on Done.

In a similar way, you have to add total 4 Switch widget to control 4 relays.

Program the NodeMCU ESP8266

vlcsnap-2021-06-19-19h09m07s143.png
vlcsnap-2021-06-19-19h07m14s619.png
vlcsnap-2021-06-19-19h07m32s025.png
vlcsnap-2021-06-19-19h07m43s082.png
vlcsnap-2021-06-19-19h08m41s561.png

To program the NodeMCU, I have used Arduino IDE.

Download the attached code.

In the folder you will get 3 files (1 .ino file & 2 .h files). Keep all the files in the same folder. Now open the .ino file with Arduino IDE.

First, you have to install the ArduinoIoTCloud library. During installation, it may ask to install other dependencies. Then click on Install All.

In the code, you have to update the THING ID and DEVICE ID in the thingProperties.h file.

Then update the Wi-Fi credentials and Secret Key in the arduino_secrets.h file.

You will get the DEVICE ID and THING ID in the Arduino IoT cloud account. And Secret Key from the PDF which you have downloaded during adding the device in Arduino IoT cloud.

I have shown all the steps in the tutorial video.

After doing all these changes, you can upload the code to NodeMCU.

Configure the Alexa App for Arduino IoT Cloud

arduino iot cloud tutorial pic-3.jpg

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

  1. Tap on "More".
  2. Then select "Skills & Games".
  3. Search for Arduino and tap on "Arduino".
  4. Tap on "ENABLE TO USE".

Connecting Arduino Cloud Devices With Alexa

arduino iot cloud tutorial pic-2.jpg

  1. Log in with the Arduino Cloud credentials.
  2. Tap on CLOSE.
  3. Tap on "DISCOVER DEVICES". It will take a minute to add devices. During this time the NodeMCU should be connected with the WiFi.
  4. Tap on "Devices", and tap on "Switches" to see all the devices.

Thus, all the devices from Arduino IoT Cloud will be added to Amazon Alexa App.

Arduino IoT Cloud Remote App Set Up

arduino iot cloud tutorial pic-1.jpg

You can also control the appliances from the Arduino IoT Cloud Remote App.

  1. Download and install the Arduino IoT Cloud Remote App from the Google play store or App Store.
  2. Tap on SIGN IN
  3. Then log in to the Arduino IoT Cloud account
  4. Tap on the THING you have created to open the dashboard.

Now, you can also control the relays from this Arduino IoT Cloud Remote App.

Connect the Home Appliances

IMG20210604044416_01.jpg

Connect the 4 home appliances with the relay module as per the circuit diagram.

Please take proper safety precautions while working with high voltage.

Connect 5-volt DC supply with the PCB. (I have used my old mobile charger 5V 2Amp)

Turn on the 110V/230V supply and 5V DC supply.

Finally!! the Arduino Cloud Smart Home System Is Ready

vlcsnap-2021-06-19-19h54m12s203.png
vlcsnap-2021-06-06-19h25m48s816.png
vlcsnap-2021-06-06-19h48m11s870.png

Now you can control your home appliances in a smart way.

I hope you have liked this Arduino IoT and Alexa control home automation project. I have shared all the required information for this project.

I will really appreciate it if you share your valuable feedback. Also if you have any query please write in the comment section.

Thank you & Happy Learning.