Introduction: No More Wet Room

Idea

I was thinking in some daily problems i have and onde of them is that i have always forgotten my window open and when starts to rain outside all of my stuff gets wet. So, I decided to use a rain sensor which closes my window when it gets wet. This is a part of the whole project because i couldn't manage time to construct the device which will actually closes the window, but to demonstrate the system i used the code and materials bellow to make one led turn on when the sensor activate.

Materials:

- Protoboard x1

http://produto.mercadolivre.com.br/MLB-716294209-p...

-Arduino UNO3 x1

http://www.institutodigital.com.br/pd-363bf9-ardui...

-Rain sensor x1

http://produto.mercadolivre.com.br/MLB-719086015-m...

- Jumpers x6

http://produto.mercadolivre.com.br/MLB-841642978-c...

-USB Cable x1

-LED X1

http://www.institutodigital.com.br/pd-154a7c-kit-2...




Code:



/* Flame Sensor analog example.
Code by Reichenstein7 (thejamerson.com)

For use with a Rain Sensor with an analog out!

To test view the output, point a serial monitor such as Putty at your Arduino.
- If the Sensor Board is completely soaked; "case 0" will be activated and " Flood " will be sent to the serial monitor. - If the Sensor Board has water droplets on it; "case 1" will be activated and " Rain Warning " will be sent to the serial monitor. - If the Sensor Board is dry; "case 2" will be activated and " Not Raining " will be sent to the serial monitor.

*/

// lowest and highest sensor readings:
const int sensorMin = 0; // sensor minimum

const int sensorMax = 1024; // sensor maximum

int led = 4;

void setup() {

//initialize serial communication @ 9600 baud:

Serial.begin (9600);

pinMode (led, OUTPUT);

}

void loop() {

// read the sensor on analog A0:

int sensorReading = analogRead(A0);

// map the sensor range (four options):

// ex: 'long int map(long int, long int, long int, long int, long int)'

int range = map(sensorReading, sensorMin, sensorMax, 0, 4);

// range value:

switch (range) {

case 0: // Sensor gettin wet

Serial.println("Chuva");

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltade level)

delay(50);

digitalWrite(led, LOW); // turn the LED off by making the voltade LOW

delay()50;

break;

// wait for a second

case 1: // Sensor getting wet

Serial.println("Umido");

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(500); // wait for a second

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(500);

break;

case 2: // Sensor dry - To shut this up delete the " Serial.println("Not Raining"); " below.

Serial.println("Seco");

break;

}

delay(1); //delay between reads

}