✨ Use RCAPP and get 5% off 👇
Skip to content
Free Delivery on Orders Above Rs 999/- Pan-India
Cash on Delivery Available for Orders above Rs.500/- and Upto Rs 3000/-
SAVE more when you BUY more. Upto 30% Off on BULK PURCHASE
GST Invoices for Your Business
Dedicated Technical Support Team
Safely Delivering Genuine Products PAN INDIA

I Built a Water Level Indicator Using Arduino

I Built a Water Level Indicator Using Arduino
-
Written By - Robocraze -
📅 Updated on 09 Jul 2026
Summarize with AI
✅ Prompt copied

Summary

Water tank overflow is a common problem in homes, apartments, schools, and industrial facilities. Leaving a water pump running for too long not only wastes water but also increases electricity consumption and may damage pumping equipment over time. A simple water level indicator can eliminate this problem by continuously monitoring the water level and notifying the user when the tank is nearing full capacity. This project is an excellent introduction to Arduino because it combines digital sensing, GPIO control, LEDs, and simple decision-making into a practical application. It also lays the foundation for more advanced automation projects, such as automatic water pump controllers and IoT-based tank monitoring systems. In this tutorial, we'll build a multi-level water level indicator using an Arduino Uno, conductive probes, LEDs, and a buzzer. By the end of this project, you'll understand how water conductivity can be used for level detection and how Arduino processes sensor inputs to monitor real-world conditions.

I Built a Water Level Indicator Using Arduino

How Does a Water Level Indicator Work?

Unlike float switches that use moving mechanical parts, this project uses the natural conductivity of water.

Several metal probes are placed at different heights inside the water tank.

One probe acts as the common reference, while the remaining probes correspond to different water levels.

As the water level rises, it touches each probe sequentially, creating an electrical path between the common probe and the sensing probe.

The Arduino detects this change and turns on the corresponding LED.

The working sequence is straightforward:

  • If only the first probe touches water, the tank is nearly empty.

  • As the water reaches higher probes, additional LEDs illuminate.

  • When the highest probe detects water, the Arduino activates the buzzer to indicate that the tank is full.

This simple principle makes the system reliable, inexpensive, and easy to build.

Components and Supplies

CC3000 Wifi Shield for Arduino Uno-RobocrazeCC3000 Wifi Shield for Arduino Uno-Robocraze

Arduino Uno CC3000 Wifi Shield

This is a shield for the CC3000 WiFi Module. The CC3000 from TI (Texas Instruments) is a self-contained wireless network processor that makes incorporating internet connectivity into your project simple. Supply Voltage: 4.5V - 12V Host Interface: SPI @ 16MHZ Throughput (TCP): ~4Mbps IEEE...
Rs 3,548/-
Rs 3,548/-
Rs 4,109/-
Save Rs 561/-
Arduino UNO Prototyping Shield – Expand Arduino projects with this prototyping shield. Electronic Components - RobocrazeArduino UNO Prototyping Shield – Expand Arduino projects with this prototyping shield. Electronic Components - Robocraze

    Arduino UNO Prototyping Shield

    UNO Prototyping Shield for Arduino UNO Prototype Shield is used in the cases where you want to build more applications without using any external Breadboard. This prototyping shield for Arduino helps in expanding the functionalities of UNO board and create extra connections for embedded...
    Rs 99/-
    Rs 99/-
    Rs 114/-
    Save Rs 15/-
    Jumper Wire Set - M2M, M2F, F2F (40 pcs each) – Ideal for Arduino & prototyping. Electronic Components - RobocrazeJumper Wire Set - M2M, M2F, F2F (40 pcs each) – Ideal for Arduino & prototyping. Electronic Components - Robocraze

      Jumper Wire Set - M2M, M2F, F2F (40 pcs each)

      Jumper Wire Set - M2M, M2F, F2F (40 pcs each) These DuPont jumper wires for electronics is a premium quality wire manufactured by using quality assured material and advanced techniques, which make them up to the standard in this highly challenging field. This 120pcs...
      Rs 139/-
      Rs 139/-
      Rs 169/-
      Save Rs 30/-
      400 Tie Points Solderless Breadboard – Medium-sized breadboard for Arduino & projects. Electronic Components - Robocraze400 Tie Points Solderless Breadboard – Medium-sized breadboard for Arduino & projects. Electronic Components - Robocraze

        400 Tie Points Solderless Breadboard

        400 Tie Points Solderless Breadboard The 400 Tie Point solderless breadboard is perfect for building and testing electronics, especially with Arduino projects. It’s made of strong plastic with metal clips that hold wires securely. With 400 points, you can quickly set up circuits without...
        Rs 35/-
        Rs 35/-
        Rs 59/-
        Save Rs 24/-
        SYB-46 270 Points Solderless Breadboard for Prototyping & Arduino & Electronics -Electronic Components -RobocrazeSYB-46 270 Points Solderless Breadboard for Prototyping & Arduino & Electronics -Electronic Components -Robocraze

          SYB-46 270 Points Solderless Breadboard for Prototyping & Arduino & Electronics

          SYB-46 270 Points Solderless Breadboard for Prototyping & Arduino & Electronics The SYB-46 270 Points Breadboard is a compact and reliable solderless prototyping platform designed for small electronics projects, testing circuits, and learning the basics of electronics. With 270 tie points and a space-saving...
          Rs 52/-
          Rs 52/-
          Rs 64/-
          Save Rs 12/-
          7Semi ESP32-C6 Mini Wifi Development Board Qwiic - Robocraze7Semi ESP32-C6 Mini Wifi Development Board Qwiic - Robocraze

          7Semi ESP32-C6 Mini Wifi Development Board Qwiic

          7Semi ESP32-C6 Mini Wifi Development Board Qwiic (DC-10116) The 7Semi ESP32-C6 Mini Wifi Development Board Qwiic is a compact and powerful wireless development board built around the modern ESP32-C6 chipset. It brings together fast Wi-Fi connectivity and flexible input/output options in a small Qwiic-compatible...
          Rs 702/-
          Rs 702/-
          Rs 884/-
          Save Rs 182/-
          7Semi ESP32-S3-Dev-BoardC-1-N8R2 WiFi, Bluetooth, Dual USB-C, RGB LED - robocraze7Semi ESP32-S3-Dev-BoardC-1-N8R2 WiFi, Bluetooth, Dual USB-C, RGB LED - robocraze

            7Semi ESP32-S3-Dev-BoardC-1-N8R8 WiFi, Bluetooth, Dual USB-C, RGB LED

            7Semi ESP32-S3-Dev-BoardC-1-N8R8 WiFi, Bluetooth, Dual USB-C, RGB LED The 7Semi ESP32-S3-Dev-BoardC-1-N8R8 is a powerful and versatile development board built around the ESP32-S3-WROOM-1 module, offering integrated Wi-Fi and Bluetooth connectivity for modern IoT and embedded applications. It combines robust wireless performance with practical features like...
            Rs 899/-
            Rs 899/-
            Rs 1,249/-
            Save Rs 350/-

            Components Required

            You'll need the following components.

            Electronics

            • Arduino Uno Board

            • Breadboard

            • 4 × LEDs (Green, Green, Yellow, Red)

            • 4 × 220Ω Resistors

            • Active Buzzer

            • Jumper Wires

            • Connecting Wires or Stainless Steel Probes

            • USB Cable

            • Small Water Container for Testing

            Optional Components

            Understanding the Components

            Arduino Uno

            The Arduino Uno acts as the controller of the project.

            It continuously reads the status of the water sensing probes and determines which LEDs should remain ON.

            When the highest level is detected, it also activates the buzzer.

            Water Level Probes

            The sensing probes are simply conductive metal wires placed at different heights.

            Since ordinary tap water contains dissolved minerals, it conducts a small amount of electricity.

            Whenever water touches a probe, a conductive path forms between the common probe and the sensing probe.

            The Arduino interprets this as a HIGH digital input.

            LEDs

            Each LED represents a different water level inside the tank.

            For example:

            • Green LED → Low Level

            • Green LED → Medium Level

            • Yellow LED → High Level

            • Red LED → Full Tank

            This provides an instant visual indication of the tank status.

            Active Buzzer

            The buzzer provides an audible alert once the water reaches the maximum level.

            An active buzzer is recommended because it only requires a HIGH signal from the Arduino to generate sound.

            Circuit Connections

            Water Level Probes

            Probe Arduino Pin
            Common Probe 5V
            Level 1 Probe Pin 2
            Level 2 Probe Pin 3
            Level 3 Probe Pin 4
            Level 4 Probe Pin 5

            LED Connections

            LED Arduino Pin
            Low Level Pin 8
            Medium Level Pin 9
            High Level Pin 10
            Full Level Pin 11

            Each LED should be connected through a 220Ω resistor to limit current.

            Buzzer Connection

            Device Arduino Pin
            Active Buzzer

            Pin 12

            Connect the negative terminal to GND.


            Building the Connections

            Step 1: Prepare the Water Tank

            Choose a small plastic container for testing.

            Insert five metal probes vertically into the container.

            One probe should remain at the bottom as the common reference.

            Position the remaining probes at equal intervals to represent different water levels.

            Ensure that none of the probes touch each other.

            Step 2: Assemble the Circuit

            Mount the Arduino Uno on the breadboard area.

            Connect the LEDs using current-limiting resistors.

            Connect the buzzer.

            Finally, wire each sensing probe to its respective Arduino pin.

            Double-check every connection before powering the circuit.

            Step 3: Connect the Water Probes

            Strip only a small portion of insulation from the ends of the sensing wires.

            Only the exposed section should come into contact with water.

            Using stainless steel wires instead of bare copper improves long-term durability and reduces corrosion.

            Step 4: Power the Arduino

            Connect the Arduino to the computer using the USB cable.

            Once powered, all LEDs should remain OFF until water reaches the first sensing probe.

            Code for the Project

            The Arduino repeatedly executes four simple operations.

            // Water Level Indicator Using Arduino
            
            // Water level sensor pins
            const int level1Pin = 2;
            const int level2Pin = 3;
            const int level3Pin = 4;
            const int level4Pin = 5;
            
            // LED pins
            const int led1 = 8;
            const int led2 = 9;
            const int led3 = 10;
            const int led4 = 11;
            
            // Buzzer pin
            const int buzzer = 12;
            
            void setup() {
            
              // Configure sensor pins
              pinMode(level1Pin, INPUT);
              pinMode(level2Pin, INPUT);
              pinMode(level3Pin, INPUT);
              pinMode(level4Pin, INPUT);
            
              // Configure LED pins
              pinMode(led1, OUTPUT);
              pinMode(led2, OUTPUT);
              pinMode(led3, OUTPUT);
              pinMode(led4, OUTPUT);
            
              // Configure buzzer
              pinMode(buzzer, OUTPUT);
            
              Serial.begin(9600);
            }
            
            void loop() {
            
              // Read sensor states
              bool level1 = digitalRead(level1Pin);
              bool level2 = digitalRead(level2Pin);
              bool level3 = digitalRead(level3Pin);
              bool level4 = digitalRead(level4Pin);
            
              // Turn everything OFF first
              digitalWrite(led1, LOW);
              digitalWrite(led2, LOW);
              digitalWrite(led3, LOW);
              digitalWrite(led4, LOW);
              digitalWrite(buzzer, LOW);
            
              // Water Level 25%
              if(level1){
                digitalWrite(led1, HIGH);
                Serial.println("Water Level: 25%");
              }
            
              // Water Level 50%
              if(level2){
                digitalWrite(led1, HIGH);
                digitalWrite(led2, HIGH);
                Serial.println("Water Level: 50%");
              }
            
              // Water Level 75%
              if(level3){
                digitalWrite(led1, HIGH);
                digitalWrite(led2, HIGH);
                digitalWrite(led3, HIGH);
                Serial.println("Water Level: 75%");
              }
            
              // Water Tank Full
              if(level4){
                digitalWrite(led1, HIGH);
                digitalWrite(led2, HIGH);
                digitalWrite(led3, HIGH);
                digitalWrite(led4, HIGH);
                digitalWrite(buzzer, HIGH);
                Serial.println("Water Tank FULL!");
              }
            
              delay(200);
            }
            

            How the Code Works

            The program continuously monitors the four water-level sensing probes connected to Arduino's digital input pins.

            First, it reads the status of each probe using the digitalRead() function. If a probe comes in contact with water, the corresponding input pin goes HIGH.

            Based on the detected water level:

            • Level 1 → Turns ON the first LED to indicate approximately 25% water level.

            • Level 2 → Turns ON the first two LEDs to indicate 50% water level.

            • Level 3 → Turns ON the first three LEDs to indicate 75% water level.

            • Level 4 → Turns ON all four LEDs and activates the buzzer to indicate that the tank is 100% full.

            The Arduino also prints the detected water level to the Serial Monitor for debugging and testing.

            After a short delay of 200 ms, the process repeats continuously, allowing the system to monitor changes in the water level in real time.

            Testing the Project

            Once the circuit is assembled and programmed, test it using a small container of water.

            Gradually pour water into the container while observing the LEDs.

            Water Below First Probe

            Expected result:

            • All LEDs remain OFF.

            Water Reaches First Probe

            Expected result:

            • First LED turns ON.

            Water Reaches Middle Probe

            Expected result:

            • The first two or three LEDs remain illuminated, depending on the water level.

            Water Reaches Maximum Level

            Expected result:

            • All LEDs turn ON.

            • The buzzer sounds continuously until the water level drops below the highest probe.

            Common Problems

            LEDs Flicker Randomly

            Possible causes include:

            • Loose jumper wires

            • Dirty sensing probes

            • Poor water conductivity

            • Electrical noise

            Ensure all connections are secure and clean the probes if necessary.

            Incorrect Water Level Indication

            Check:

            • Probe heights

            • Wiring sequence

            • Arduino pin assignments

            An incorrectly connected probe can cause the LEDs to illuminate in the wrong order.

            Buzzer Does Not Sound

            Verify:

            • Buzzer polarity

            • Arduino output pin

            • Program logic

            • Wiring continuity

            Testing the buzzer independently can help isolate the issue.

            Probes Corrode Quickly

            Bare copper oxidizes after prolonged exposure to water.

            For permanent installations, use:

            • Stainless steel rods

            • Stainless steel screws

            • Corrosion-resistant electrodes

            These materials significantly improve reliability.

            Final Thoughts

            A water level indicator is one of the most practical Arduino projects for beginners because it demonstrates how a microcontroller can monitor real-world conditions and respond instantly. Despite its simple design, the project introduces key concepts such as digital sensing, GPIO control, and embedded decision-making, all of which form the foundation of larger automation systems.

            For anyone looking to build a water level indicator project India, this tutorial provides a solid starting point. Once the basic system is working reliably, it can be expanded with automatic pump control, LCD displays, or IoT connectivity to create a complete smart water management solution.

            Excerpt

            Follow my experience building a water level indicator using Arduino with sensors and LEDs, along with practical tips, circuit basics, and lessons for beginners.
            Prev Post
            Next Post

            Leave a comment

            Please note, comments need to be approved before they are published.

            Thanks for subscribing!

            This email has been registered!

            Shop the look

            Choose Options

            Edit Option
            Back In Stock Notification
            Compare
            Product SKU Description Collection Availability Product Type Other Details

            Choose Options

            this is just a warning
            Login
            Shopping Cart
            0 items
            FREE SHIPPING!
            ₹100 OFF
            ₹200 OFF
            ₹999
            ₹2500
            ₹4900
            WhatsApp Chat Chat