Preparado para a época de chuvas? Não? Que tal uma ajudinha com o Arduino? Utilize um sensor de chuva com Arduino para que você consiga fechar uma janela quando não estiver em casa ou acionar uma bomba para armazenar água da chuva.

O sensor de chuva para Arduino é um componente com duas partes: a placa do sensor, formada por várias trilhas resistentes à oxidação, que vão detectar o nível de líquido que está atingindo a placa, e o módulo com chip comparador LM393, que é o responsável por ler as informações desse sensor e enviar os dados pelas pinos A0 (analógico), ou D0 (digital – valores 0 e 1).
Esse módulo também tem um potenciômetro para ajuste de sensibilidade, um led vermelho para indicação de LIGADO, e um led verde que indica a transmissão de dados:
Voltando aos exemplos que eu citei no início do post, você pode utilizar um motor ligado à saída digital para abrir (sem chuva – nível HIGH) ou fechar (com chuva – nível LOW) uma janela quando for detectada chuva, e com a saída analógica você pode abrir uma válvula ou acionar uma bomba dependendo da intensidade da chuva, lendo os valores de 0 à 1023 fornecidos por essa porta.
Conexão do sensor de chuva no Arduino
Teste o seu módulo com apenas 3 leds e 3 resistores, montando o circuito abaixo. O módulo pode ser alimentado com tensão entre 3.3 e 5 volts:
O programa de teste lê as informações do sensor e acende os leds de acordo com o nível de líquido detectado. Os valores são lidos em uma série de comandos IF (SE), que podem ser acrescentados ou alterados de acordo com o nível de precisão desejada:
// Programa : Teste sensor de chuva
// Autor : Arduino e Cia
int pino_d = 2; //Pino ligado ao D0 do sensor
int pino_a = A5; //Pino ligado ao A0 do sensor
int val_d = 0; //Armazena o valor lido do pino digital
int val_a = 0; //Armazena o valor lido do pino analogico
// Portas ligadas aos leds
int pino_led_verde = 5;
int pino_led_amarelo = 6;
int pino_led_vermelho = 7;
void setup()
{
// Define os pinos do sensor como entrada
pinMode(pino_d, INPUT);
pinMode(pino_a, INPUT);
// Define os pinos dos leds como saida
pinMode(pino_led_verde, OUTPUT);
pinMode(pino_led_amarelo, OUTPUT);
pinMode(pino_led_vermelho, OUTPUT);
Serial.begin(9600);
}
void loop()
{
//Le e arnazena o valor do pino digital
val_d = digitalRead(pino_d);
//Le e armazena o valor do pino analogico
val_a = analogRead(pino_a);
//Envia as informacoes para o serial monitor
Serial.print("Valor digital : ");
Serial.print(val_d);
Serial.print(" - Valor analogico : ");
Serial.println(val_a);
// Acende o led de acordo com a intensidade
if (val_a >900 && val_a <1024)
{
// Acende led verde - intensidade baixa
digitalWrite(pino_led_verde, HIGH);
digitalWrite(pino_led_amarelo, LOW);
digitalWrite(pino_led_vermelho, LOW);
}
if (val_a >400 && val_a <900)
{
// Acende led amarelo - intensidade moderada
digitalWrite(pino_led_verde, LOW);
digitalWrite(pino_led_amarelo, HIGH);
digitalWrite(pino_led_vermelho, LOW);
}
if (val_a > 0 && val_a <400)
{
// Acende led vermelho - intensidade alta
digitalWrite(pino_led_verde, LOW);
digitalWrite(pino_led_amarelo, LOW);
digitalWrite(pino_led_vermelho, HIGH);
}
delay(1000);
}
Caso você queira testar apenas o sensor, sem montar todo o circuito, os valores também são exibidos no serial monitor:
O funcionamento do circuito teste você confere no vídeo abaixo:
Gostou? Confira outros posts com sensores aqui mesmo no Arduino e Cia!