About This Project

In this tutorial, we will be learning about IoT(Internet of Things) and how the Soil Moisture Monitoring System is used to receive a notification on Soil Moisturization. This tutorial will help us to know if water is required for a specific soil.

Project Info

  • Programming Platform: Arduino IDE
  • Difficulty: Intermediate
  • Estimated Time: 2 Hrs
  • Category: IoT

Introduction

This tutorial is about making a Soil Moisture Monitoring System using Arduino to know the status of moisture. Manually we pour water to keep soil moisture balanced. It’s not easy to waste time on a busy day and sometimes even forget to supply water. That is why we develop a smart monitoring system that can be controlled from our mobile phone through the NodeMCU ESP 12E module. When the soil gets dry a notification will be received on our mobile phone and then control the water pump from our mobile phone. This will save time a lot.

What is NodeMCU ESP 12E ?

NodeMCU ESP 12E is one of the major components of making IoT based soil moisture monitoring system using Arduino.

In NodeMCU ESP 12E, there are 30 pins in total, out of which there are 17 GPIO (General Purpose Input Output) pins. There are 9 digital pins ranging from D0-D8. It’s only one analog pin “A0” which is a 10 bit ADC. The “D0” pin can only be used to read or write data and can not perform other options. It is enabled when the EN pin is HIGH. When this pin is LOW the chip works at minimum power. The board has a 2.4 GHz antenna for a long range of network, the CP2102 is a USB to TTL converter. The development board equips the ESP 12E module, containing ESP8266 a chip having Tensilica Xtensa 32-bit, LX106 RISC microprocessor which can operate ranging from 80 to 160 MHz, and Clock Frequency can be adjusted.

It has 128KB RAM, and also 4MB of Flash memory for program and data storage just enough to cope with the large strings that makeup web pages. It is an Integrated board, equipped with 802.11/b/g/n HT40 WiFi transceiver, so it can not only connect to a WiFi network and interact with the Internet. The NodeMCU ESP 12E can also set up a network of its own and allow other devices to connect directly. Due to this, ESP8266 NodeMCU makes it more versatile.

Project: IoT-based Soil Moisture Monitoring System Using Arduino

Now that we have a clear understanding of the project and the components used, let’s start making Soil Moisture Monitoring System Using Arduino.

soil-motsture-notification

Components Required

IMAGE COMPONENT QUANTITY

mini-water-pump

Mini water pump

1

nodemcu-sp-12E

NodeMCU ESP 12E

1

Breadboard

Breadboard

1

cable-a-to-b

USB a to b

1

jumper-wire

Jumper Wires

As Per Required

water-container

Water Container

1

Soil Jar

1

Soil-Sensor

Soil Sensor

1

relay-motor-driver

Relay Motor Driver

1

Building Guide

Step 1: Assembly

  • Collect all the required components and place them on the breadboard.

soil-moisture-monitoring-system

Step 2: Input Connections for Soil Sensor:

  • NodeMCU digital pin-4 to digital pin of Soil Sensor. Sensor VCC pin to 5v power supply pin of NodeMCU, GND to GND.
  • Input Connections for relay driver: NodeMCU digital pin-D0 to the relay motor driver pin 1 and GND to GND.
  • Output pin connections for water pump: Connect the water pump terminals to the relay motor driver output pins.

connect-soil-moisture-monitoring-system

Step 3: When all the connections are done, start the coding.

CODING:

IoT-based-soil-moisture-monitoring-system-coding

However, we can see the default authentication code in the default programming. Therefore, to change the authentication code, go to the Blynk App and create a new project. Now, generate an authentication code by entering an email ID to receive a new code.

creat-new-project-for-soil-mosture

  • When we receive a new code from an email, change the default code with the new one.

connect-code-from-the-mail

Step 4: Replace the default code with the new code and upload the program.

Step 5: Go to the Blynk App, and change the necessary settings to control the relay controller.

control-the-relay-controller
soil-notification

When the soil has no moisture we will receive a notification through the Blynk App using the soil moisture monitoring system Therefore, we can control the relay driver to start the motor directly using this app without further wasting our time going to the field.

Do get your hands-on making soil moisture monitoring system using Arduino and let us know how it went. Leave your comments below.

Code

DESCRIPTION

DOWNLOAD CODE

Soil Moisture Monitoring System Using Arduino


Download Code

Libraries

Blynk Library Master


Download Code