Wednesday, May 1, 2024

Build This IoT-Based Smart Home Controller Using Blynk

efy tested sani theo and preeti bhaktaPresented here is an Internet of Things (IoT)-based controller for a smart home. This IoT project can be used to control any four home electrical appliances such as lights, fans, air-conditioners and water pumps from the smartphone.

In this project, we used two light bulbs, one DHT-11 sensor to monitor room temperature and humidity, one soil moisture sensor along with garden motor pump, and one ultrasonic sensor (HC-SR04) for water-level indication in overhead water tank. Their status, including light on/off, room temperature, soil moisture level and water level, could be monitored on the smartphone graphically.

Circuit and working

The circuit diagram of the IoT-based smart home device controller is shown in Fig. 1. It is built around NodeMCU (ESP1), two light bulbs (Load3 and Load2), four 12V single-changeover relays (RL1 through RL4), 5V regulator 7805 (IC1), temperature and humidity sensor (DHT11), 5V DC soil moisture sensor, ultrasonic sensor (HC-SR04) and a few other components.

Circuit diagram of the IoT-based smart home controller
Fig. 1: Circuit diagram of the IoT-based smart home controller

In this IoT project, Load3 (Light1) and Load2 (Light2) are controlled through RL3 and RL2, respectively. DHT11 sensor is used to monitor room temperature and humidity. In Blynk app, virtual levels V5 and V6 are used to display humidity and temperature, respectively. For that, we used Blynk.virtualWrite(V5, h) and Blynk.virtualWrite(V6, t) in the code.

Soil moisture sensor is used to detect garden soil moisture level. If soil is dry, the garden motor pump turns on automatically to pump out water for the plant.

- Advertisement -

Ultrasonic sensor (HC-SR04) is used to detect water level in the overhead water tank (refer Fig. 11). Height of the tank used in the prototype is 20cm. If distance measured by the sensor is 0cm, the app will show the tank as full; and if distance is 20cm, it will show the tank as empty.

As shown in the circuit, pins D0 and D1 of NodeMCU are connected to pins Trig and Echo of HC-SR04, respectively. Water level is monitored through HC-SR04 sensor, and water motor pump can be controlled through RL1, which is connected to pin D6 of NodeMCU.

DHT11 sensor is connected to pin D2 of NodeMCU. Garden motor pump is controlled through RL4, which is connected to pin D3 of NodeMCU.

- Advertisement -

When power is switched on by connecting 12V battery, NodeMCU gets connected to Wi-Fi network. Open Blynk app on the mobile to start controlling the electrical appliances. But before that you need the required software in NodeMCU.

Arduino IDE is needed to write Arduino code and upload the programming logic onto NodeMCU board. Blynk app is required on the Android smartphone. Note that, authorisation code generated from Blynk app will be required in Arduino code. For that, create project in Blynk app.

Creating a project on Blynk IoT platform

Steps to create the project in Blynk are given below.

Install Blynk app on Android smartphone from Play Store. Register yourself on the app. You will get an authentication token on your registered email ID submitted during the registration process. Note it down as you will need it for Arduino code later.

After registration, login to Blynk app and create your project by selecting New Project (Fig. 2). Name the project with a suitable title and select the module as NodeMCU (Fig. 3).

Creating new project on Blynk platform
Fig. 2: Creating new project on Blynk platform
Selecting module as NodeMCU
Fig. 3: Selecting module as NodeMCU

Now, open widget and select Buttons (Fig. 4). You will now see another screen where you can add label value to display temperature, humidity, super chart for graphical representation, etc.

Widget box to add control buttons
Fig. 4: Widget box to add control buttons

Add two control tabs: Tab1 and Tab2 (Fig. 5). Under Tab1, add Light1 and Light2 for controlling Load3 and Load2, respectively. Under Tab2, add two levels, V7 and V8, to display soil resistance and water level, respectively. You can also add eventor and notification to get notifications on a particular event.

Adding control tabs
Fig. 5: Adding control tabs

Now, link all controls in Blynk app and pins of NodeMCU, as given in Table above.

Set Tab2 for soil moisture level
Fig. 6: Set Tab2 for soil moisture level
 Eventor settings
Fig. 7: Eventor settings
Authors’ prototype of the IoT-based smart home controller
Fig. 8: Authors’ prototype of the IoT-based smart home controller

The author’s prototype is shown in Fig. 8.

Next, open smart_home.ino code from Arduino IDE. Configure NodeMCU with Wi-Fi credentials and paste the authorisation code generated from Blynk app. Compile the code and upload it onto NodeMCU board.

Construction and testing

You can assemble the circuit on a veroboard or on the designed PCB given here. An actual-size PCB layout for the IoT-based device controller for smart home is shown in Fig. 9 and its components layout in Fig. 10.

PCB layout of the IoT-based smart home controller
Fig. 9: PCB layout of the IoT-based smart home controller
Components layout for the PCB
Fig. 10: Components layout for the PCB
Installation of ultrasonic sensor on the water tank
Fig. 11: Installation of ultrasonic sensor on the water tank

Download PCB and component layout PDFs: click here

Download Source Folder

After assembling the circuit, enclose it in a suitable plastic box. Power on the circuit. Open the project from Blynk app to check whether all devices are connected to the Internet. If they are connected, red mark on the app will disappear.

Smart Home Controller Project Parts List

You can start controlling the devices by touching the corresponding buttons on the app. Garden motor pump is controlled through pin D3 of NodeMCU. You can turn it on/off through the app or manually. You can monitor water level in overhead water tank from the app, and if the tank is full, you can manually turn off the motor. In case you want to operate the motor automatically, add Event in Event Manager when tank is empty or full.

This article is a part of the Top 30+ IoT Projects | IoT Project Ideas for Enthusiasts. If you want to read more interesting IoT Projects can go through this article.


K. Muni Sekhar Reddy is lecturer in ECE department, government polytechnic, Rayachoty, Andhra Pradesh

Palla Siva Kumari is lecturer in EEE department, Government Polytechnic, Rayachoty, Andhra Pradesh

1 COMMENT

SHARE YOUR THOUGHTS & COMMENTS

Unique DIY Projects

Electronics News

Truly Innovative Tech

MOst Popular Videos

Electronics Components

Calculators

×