Arduino Water Level Indicator with LCD & Alarm – Easy Build!

Arduino Water Level Indicator with LCD & Alarm – Easy Build!

In this project, we will learn how to make a water level monitoring system using an Arduino Nano board. For that, I used a water sensor to detect the water level. Also, I have added an LCD screen and LEDs to indicate the water levels. When the water level is low, the LEDs will show the minimum level. As the water level increases, more LEDs will turn on step by step. At the same time, the LCD screen will display the exact level status. I have also added a buzzer for warning when the water level reaches the maximum limit. If you want to know how the water sensor works, please use this link.

Especially, I designed a custom PCB for this project. Therefore, we don’t need any additional wires, breadboards, or other materials. Also, this is a low-cost project, and anyone can build this at home using simple components.

Ok, let’s do this project step by step. The required components are given below.

Disclosure: These Amazon links are Affiliate links. As an Amazon Associate, I earn from qualifying purchases.

Step 1

Firstly, let’s identify the components used in this project.

Step 2

Secondly, let’s order the PCB for this project.

  • Click the “Instant Quote” button and upload the Gerber file, which you can download from the link below.
  • Gerber file – Download
  • For this project, I ordered five Red PCBs. Next, select the build time and shipping method. Finally, click “Save to Cart” and complete the payment.

Step 3

Thirdly, let’s unbox the PCB package.

Step 4

Next, solder the female headers, LEDs, resistors, and other components onto the PCB.

Step 5

Afterward, connect the water sensor, Arduino Nano board, and LCD screen to the PCB.

Step 6

Next, connect the Arduino Nano board to your computer. Then, copy and paste the following program into the Arduino IDE.

#include <LiquidCrystal.h>

#define sensor A6
#define Buzzer 10

#define Level1 A5
#define Level2 A4
#define Level3 A3
#define Level4 A2
#define Level5 A1
#define Level6 A0

LiquidCrystal lcd(9, 8, 4, 5, 6, 7);

void setup() {
  lcd.begin(16, 2);

  pinMode(Buzzer, OUTPUT);

  pinMode(Level1, OUTPUT);
  pinMode(Level2, OUTPUT);
  pinMode(Level3, OUTPUT);
  pinMode(Level4, OUTPUT);
  pinMode(Level5, OUTPUT);
  pinMode(Level6, OUTPUT);

  startupScreen(); // 👈 add this line
}

void loop() {

  int value = analogRead(sensor);  // 0 - ~520

  lcd.setCursor(0, 0);
  lcd.print("Value: ");
  lcd.print(value);
  lcd.print("   ");

  // OFF everything first
  digitalWrite(Level1, LOW);
  digitalWrite(Level2, LOW);
  digitalWrite(Level3, LOW);
  digitalWrite(Level4, LOW);
  digitalWrite(Level5, LOW);
  digitalWrite(Level6, LOW);
  digitalWrite(Buzzer, LOW);

  // New calibrated levels
  if (value > 100) digitalWrite(Level1, HIGH);
  if (value > 250) digitalWrite(Level2, HIGH);
  if (value > 350) digitalWrite(Level3, HIGH);
  if (value > 450) digitalWrite(Level4, HIGH);
  if (value > 550) digitalWrite(Level5, HIGH);
  if (value > 650) {
    digitalWrite(Level6, HIGH);
    digitalWrite(Buzzer, HIGH);
  }

  // LCD Text
  lcd.setCursor(0, 1);
  if (value < 50) lcd.print("Empty      ");
  else if (value < 250) lcd.print("Low        ");
  else if (value < 450) lcd.print("Medium     ");
  else if (value < 650) lcd.print("High       ");
  else lcd.print("FULL       ");

  delay(300);
}

void startupScreen() {

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Water Level Sys");

  lcd.setCursor(0, 1);
  lcd.print("Initializing...");
  delay(1500);

  // Loading bar
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Loading:");

  lcd.setCursor(0, 1);
  lcd.print("[");

  for (int i = 0; i < 10; i++) {
    lcd.print("#");
    delay(200);
  }

  lcd.print("]");

  delay(500);

  // Ready message
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Sensor Ready!");
  lcd.setCursor(0, 1);
  lcd.print("Starting...");
  delay(1500);

  lcd.clear();
}
  • Now, select the board and port, then click the upload button. If you do not have an Arduino Nano R4 board, you can also use a standard Arduino Nano board instead.

Step 7

Next, remove the USB cable and provide an external power supply to ensure smooth operation of the system. You can use a 9V battery or any other suitable power source.

Step 8

Finally, you can test this project using a cup of water. Now enjoy this project! The full video guide is provided below. We hope to see you in the next project. Have a great day.

Arduino Water Level Indicator with LCD & Alarm – Easy Build!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *