About This Project

This tutorial is about manipulating the iot based water level monitoring system using the NodeMCU ESP 12E board. In this tutorial we will learn how to use the NodeMCU to monitor the water level and show its level on a LCD display.

Project Info

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

Introduction

Many times we face the problem of water scarcity. It is not only due to inadequacy of  water but also due to carelessness. A big water tank requires a ladder to check whether or not water is in the tank. On a hectic day, this forces us to climb up the ladder to see if water is there. So, this project will make everything easy about the water level in a water tank. This IoT based water level monitoring system using Arduino will help you notify if the water is full or when it is empty by receiving a notification on your mobile phone through the NodeMCU ESP 12E module. On receiving the notification you can easily control the motor installed for water supply or can easily turn off when the water is full.

What is NodeMCU ESP 12E ?

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 Water Level Monitoring System using Arduino.

Now that we have a clear understanding of the water level monitoring system using Arduino and the components used, let’s start the project.

soil-motsture-notification

Components Required

Sr. no. Image Component Quantity
1 two-channel-relay Relay module 1
2 nokia-led-display Nokia 5110 LCD display 1
3 Buzzer 1
4 led-light LED 1
5 Water pump 1
6 nodemcu-sp-12E Node MCU 2
7 Ultrasonic-Sensor Ultrasonic sensor 1
8 jumper-wire Jumper wires As per required
9 connecting-cable Uploading cable 1

Building Guide

Step 1: Assembly

  • Collect all the necessary components.

Step 2: Connections

  • Make the connections as per the below given instructions.

There are two NodeMCU boards: One for Sending End (Ultrasonic Sensor) and another for Receiving End (Water Pump).

  • Connections for sending end:

water-level-monitoring-system-sensor-code

  • Connections for receiving end:

code

Step 3: After all the connections are done, go to the Arduino IDE software for programming.

CODING:

  • For the sending end (connect NodeMCU board1 with ultrasonic sensor):

code 1
code-2

  • For the receiving end (connect NodeMCU board2 with water pump):






Step 4: Upload both the programs respectively.

Step 5: Fix the Ultrasonic Sensor on the water-filled jar and see if the water level is indicated on the Nokia LCD Display. Repeat the same process for the empty water jar as well.

Finally, we can see the water level monitoring system on the Nokia LCD Display with the help of NodeMCU ESP_12E and Ultrasonic Sensor.

Code

Description

Download Code

IoT Based Water Level Monitoring System using IoT Board

Ultrasonic Transmitter Board

Libraries

Description

Download Code

Adafruit GFX Library Master

Adafruit PCD8544 Nokia 5110 LCD library for nodemcu board esp8266