Blog How to Make a Water Level Alarm with Arduino Nano Board

How to Make a Water Level Alarm with Arduino Nano Board

Nowadays water tank has been widely used to store water for department. But there is one problem, how can we know there is no water or the bumping water overflows in time? It’s real inconvenient to check the state again and again. With some programming knowledge, I decide make this alarm to inform with beeping and light indicator. This can be applied to some water level invisible tank or tower.

Have a try!

Check the video here:




Prepare Materials


SunFounder Nano board (or Arduino Nano)

USB cable

Some jumper wires

4 LEDs (white, green, yellow, red)

Passive buzzer

Plastic bottle

Foam board

Drinking straw

Dielectric stick

Scissors

Electrical Tape

Color Pen



Step 1: Make a Water Tank


Stab at the bottom of the bottle to get a hole, then thread the drinking stick across the hole, and seal with glue.



Step 2: Make Water Level Probe


Fasten a jumper wire’s one end to the bottom of the stick and the other end to +5V power. Fasten the four other wires evenly on the stick in the same way. (Adjust the interval distance according to your actual needs)



Step 3: Insert the LEDs and Buzzer


Draw a whale (whatever other image you like) on a paper and paint with color, then paste this paper on the foam board. Insert the buzzer to the whale’s eye position, and four LED to the spout position in order. (Insert those components’ pins across the foam board, thus the wiring in later part will be easier.)



Step 4: Wiring


Complete the wiring as shown:



Step 5: Upload the Code

 

#define uchar unsigned char

uchar flag = 4;

void setup()

{

  Serial.begin(9600);  // start serial port at 9600 bps:

  pinMode(2, OUTPUT);

  pinMode(3, OUTPUT);

  pinMode(4, OUTPUT);

  pinMode(5, OUTPUT);

}

void loop()

{

  int w = analogRead(A0); //read the value from analog pin AO

  int g = analogRead(A1);

  int y = analogRead(A2);

  int r = analogRead(A3);

  Serial.println("w:");

  Serial.println(w);

  Serial.println("g:");

  Serial.println(g);

  Serial.println("y:");

  Serial.println(y);

  Serial.println("r:");

  Serial.println(r);

  if((w< 1000) && (g > 1000) && (y > 1000) && (r > 1000))                      //Stop when the car is picked up

   flag = 0;

    else if ((w< 1000) && (g < 1000) && (y > 1000) && (r > 1000))                            //if read the value of the Tracking module data[0] is more than 100

    flag = 1;       

      else if((w< 1000) && (g < 1000) && (y < 1000) && (r > 1000))                              //if read the value of the Tracking module data[2] is more than 100

      flag = 2;

        else if((w< 1000) && (g < 1000) && (y > 1000) && r< 1000)                           //if read the value of the Tracking module data[4] is more than 100

        flag = 3;

        else

        flag = 4;

  switch(flag)   //According to the relative position of the line and the car, adjust the front wheel steering angle to change the direction of the car to achieve inspection line.

  {

    case 0:

    digitalWrite(2,HIGH);

    digitalWrite(3, LOW);

    digitalWrite(4, LOW);

    digitalWrite(5, LOW);

    break;

    case 1:

    digitalWrite(3,HIGH);

    digitalWrite(2, LOW);

    digitalWrite(4, LOW);

    digitalWrite(5, LOW);

    break;

    case 2:

    digitalWrite(4,HIGH);//turn the LED on

    digitalWrite(2, LOW);

    digitalWrite(3, LOW);

    digitalWrite(5, LOW);

    pinMode(9, OUTPUT); //set the pin 9 as an output

    tone(9, 3000, 100);

    delay(400);

    tone(9, 0, 10);

    delay(400);

    pinMode(9, INPUT); //set the pin 9 as an input

    break;

    case 3:

      digitalWrite(5,HIGH);

      digitalWrite(2, LOW);

      digitalWrite(4, LOW);

      digitalWrite(3, LOW);

      pinMode(9, OUTPUT);

    tone(9, 3000, 100);

    delay(80);

    tone(9, 0, 10);

    delay(80);

    pinMode(9, INPUT);

    break;

    case 4:

    digitalWrite(3, LOW);

    digitalWrite(2, LOW);

    digitalWrite(4, LOW);

    digitalWrite(5, LOW);

    break;

  }

}

 


Step 6: Put the Stick in Water Tank




Step 7: Water Level Indicator Done!


Clog a drinking straw on the tank, and add water to the tank until the water reaches the topmost probe.

Release the stopper, then observe the water level and the LED.




Also published on Instructables: https://www.instructables.com/id/How-to-Make-a-Water-Level-Alarm-With-Nano-Board/