Introduction
Rainfall Detection is most commonly used in motor vehicles’ and home automation. In motor vehicles, when rainfall starts during traveling time, glass wipers are automatically switched on. In the home automation sector, during rainfall time if any of the windows are opened, then they're automatically closed.
Prerequisites for developing this system:
Hardware requirements:
Hardwares |
Nos |
Arduino UNO |
1 |
Rain Sensor |
1 |
10k ohm potentiometer |
1 |
LCD crystal display |
1 |
220-ohm resistor |
1 |
Breadboard |
1 |
Connecting wires |
- |
Software requirements
In this experiment, we have three stages of work to detect rainfall using Arduino:
- Connecting all hardware
- Write & upload code to Arduino board
- Test our developed system
Stage 1 [Connecting all hardware]
Step 1
First, we can connect the LCD crystal display with the Arduino UNO board using Jumper wires. I am using a breadboard to extend power terminals for making this system.
Refer to the below LCD crystal pin diagram for making an easy connection with Arduino
Place a 10K ohm potentiometer near the LCD crystal display. It can adjust the contrast of the LCD screen and create a power connection from Arduino +5V and GND right and left end of the potentiometer. Make a connection from the center terminal of the potentiometer to VEE (contrast control) LCD crystal display. (Refer to the connection diagram)
Pin Configuration
Arduino Breadboard LCD Crystal Display
Pin 2 ---------------------------------------------------------------------------> Data pin 4
Pin 3 ---------------------------------------------------------------------------> Data pin 5
Pin 4 ---------------------------------------------------------------------------> Data pin 6
Pin 5 ----------------------------------------------------------------------------> Data pin 7
Pin 7 ----------------------------------------------------------------------------> Register select
Pin 6 ----------------------------------------------------------------------------> Enable
+ 5V -----------------> Potentiometer Right Terminal------------------->Potentiometer Centre terminal ----> VEE (Contrast Control) LCD crystal
+5V ---------------------------> 220-ohm Resistor -----------------------> LED +5V pin [LCD Crystal]
GND ---------------------------------------------------------------------------->Potentiometer Left terminal, Ground pin & LED - Ground pin [Connect to both pin]
Step 2
Next, connect a rain sensor to the Arduino board as per the below pin Configuration.
Pin Configuration
Rain Electrode Sensor circuit board Arduino
(+) ------------------------------------->(+) Vcc -----------------------------------------------------------> +5V
(-) ------------------------------------->(-) AO ------------------------------------------------------------->A0
GND ----------------------------------------------------------> Gnd
Stage 2 [Write & upload code to Arduino]
In this step, write code for Arduino using the Arduino IDE.
-
Download Arduino software using this link
here.
-
Install and open an Arduino IDE in your PC/Laptop
-
Connect your Arduino board to your computer using a USB data cable
-
Copy and paste below the code into the Arduino IDE
- #include "LiquidCrystal.h"
- #define LCD_PIN_RS 8
- #define LCD_PIN_E 7
- #define LCD_PIN_DB4 3
- #define LCD_PIN_DB5 4
- #define LCD_PIN_DB6 5
- #define LCD_PIN_DB7 6
- LiquidCrystal lcd(LCD_PIN_RS,LCD_PIN_E,LCD_PIN_DB4,LCD_PIN_DB5,LCD_PIN_DB6,LCD_PIN_DB7);
- const int sensorMin = 0;
- const int sensorMax = 1024;
- void setup()
- {
- Serial.begin(9600);
- lcd.begin(16, 2);
- lcd.print("C#corner");
- lcd.setCursor(0,1);
- lcd.print("Rain Detection");
- delay(2000);
- }
-
- void loop()
- {
- int sensorReading = analogRead(A0);
- int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
-
- switch (range)
- {
- case 0:
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Rainy");
- break;
-
- case 1:
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Rain Started");
- break;
-
- case 2:
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("No Rain");
- break;
- }
- delay(1000);
- }
Save and upload this code to the Arduino UNO board. After the code upload is completed, the device can start to detect rainfall.
Stage 3 [Test the developed system]
Our developed rainfall detection using Arduino is working successfully!
Conclusion
In the above article, we studied detecting rainfall using Arduino UNO R3.