Guide for FC-37 or YL-83 with Arduino

 

 

The rain sensor is used to detect water and it can detect beyond of what a humidity sensor do.

The FC-37 rain sensor (or other versions like YL-83) is set up by two pieces: the electronic board (at the left) and the collector board (at the right) that collects the water drops, as you can see in the following figure:

 

Rain1

 

The rain sensor has a built-in potentiometer for sensitivity adjustment of the digital output (D0). It also has a power LED that lights up when the sensor is turned on and a digital output LED.

 

Rain2

 

 

How does it work?

 

Basically, the resistance of the collector board varies accordingly to the amount of water on its surface.

When the board is:

  • Wet: the resistance increases, and the output voltage decreases
  • Dry: the resistance is lower, and the output voltage is higher

 

Rain3

 

 

Example: Rain Sensor with Arduino

 

This is a simple example for you to understand how you can use the rain sensor in your projects with Arduino.

In this example, you will just read the analog sensor values using the Arduino and printing those readings in the Arduino IDE serial monitor.

 

Parts required

For this example, you’ll need:

  • 1x Rain Sensor: FC-37 or YL-83
  • Arduino UNO 
  • 1x Breadboard
  • 2x 220 Ohm Resistors
  • 1x Red LED
  • 1x Green LED
  • Jumper wires

 

 

Pin wiring

Wiring your sensor to the Arduino is pretty straightforward:

Pin 

Wiring to Arduino

A0

Analog pins

D0

Digital pins

GND

GND

VCC

5V

Schematics

 

Follow these schematics to complete the project:

Rain4

 

Code

Upload the following sketch to your Arduino board (feel free to adjust the variable thresholdValue with a different threshold value):

/*

 

 All the resources for this project:

 http://randomnerdtutorials.com/

 

*/



int rainPin = A0;

int greenLED = 6;

int redLED = 7;

// you can adjust the threshold value

int thresholdValue = 500;



void setup(){

  pinMode(rainPin, INPUT);

  pinMode(greenLED, OUTPUT);

  pinMode(redLED, OUTPUT);

  digitalWrite(greenLED, LOW);

  digitalWrite(redLED, LOW);

  Serial.begin(9600);

}



void loop() {

  // read the input on analog pin 0:

  int sensorValue = analogRead(rainPin);

  Serial.print(sensorValue);

  if(sensorValue < thresholdValue){

    Serial.println(" - It's wet");

    digitalWrite(greenLED, LOW);

    digitalWrite(redLED, HIGH);

  }

  else {

    Serial.println(" - It's dry");

    digitalWrite(greenLED, HIGH);

    digitalWrite(redLED, LOW);

  }

  delay(500);

}

view raw  Projects/rain_sensor_arduino.ino

 

Open the Arduino IDE serial monitor to see the values. Then you can start adding drops of water to the collector board.

When the value goes below a certain threshold, a red LED will turn on, and when the value goes above a certain threshold, a green LED will turn on.

Wrapping up

 

If you want to know when it’s raining,  you need to set up your rain sensor with the Arduino outside.

However, be aware that you should protect your Arduino and your circuit from water. A waterproof project box can be pretty handy in this situation (or any plastic box). Make sure you protect all your electronic components and only leave the collector board outside.

 

Rain5

 

I hope you’ve found this guide useful. Have you done any project with this sensor?

 

Les commentaires sont clôturés