Ligando um sensor de chuva ao Arduino
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!
Camarada, a comparação (val_a >900 && val_a >1022) tá se repetindo. val_a val_a
Bom dia,
No meu programa não tem essa linha….
Abraço !
Olá Arduino e Cia.
Teria como me passar o link ou o arquivo de onde você conseguiu o fritzing das partes do sensor de chuva??
Obrigado.
Att,
Wesley Ricci
Boa noite amigo .. Queria saber se esse sensor de chuva posso instalar numa cobertura retrátil que tem um motor elétrico de portão ???
Boa noite,
Pode instalar sim. Você só vai precisar de algum circuito auxiliar (talvez um módulo relé) para acionar o motor.
Abraço!
precisaria de fim de curso ?
Oi Felipe,
Não necessariamente.
Abraço!
Adilson
tem como eu colocar um motor de passo com driver no lugar dos leds,ai como ficaria a programação??
tem como entrar em contato cmg ?? vcs tem canal no youtube ??
[email protected]
irmão, bom dia, gostaria de saber como seria a programação em arduino para esse mesmo sensor, no entanto funcionando junto com um servo motor, ao inves de led, simulando quem sabe um para brisa, no momento que fosse detectado agua no sensor o servo começa – se a se mover os graus por exemplo ( 0º a 170º ) havendo ou não delay entre os angulos, abraço
Estou fazendo um projeto, onde o varal de roupas comum, se recolhe quando estiver chovendo. Posso utiliar este comando, cm o sensor para detectar chuva, para dar um "Start" no circuito de comando do motor q retraí o varal?
Boa tarde,
Pode usar sim, perfeitamente. Você pode usar o valor da porta de saída para acionar, por exemplo, um relé que vai ligar o motor.
Abraço!
Olá amigo! Gostaria de ratificar a pergunta do "Unknown"
"Gostaria de saber como seria a programação em Arduino para esse mesmo sensor, no entanto, funcionando junto com um servo-motor que, ao invés de Leds, simulasse, por exemplo, um para-brisa. No momento que fosse detectado água no sensor, o servo atuasse de 0-90 graus e, após, 90-0 graus; Obrigado
Em relação a pergunta do "Unknown", repito a mesma mas, seria com um motor de passo e/ou servo-motor; então, o que mudaria no código para substituir os Leds por motores? por exemplo, chovendo, o motor gira 2000 passos e, parando a chuva, o motor volta ao 0 (zero) – obrigado
Bom dia.
Eu estava pensando em fazer alguma coisa que medisse o nível de chuva, tipo quantos milímetros choveu no dia. Hoje usamos um recipiente que coleta a agua da chuva e no final do dia vamos com um régua e medimos o nível da água em milímetros.
Seria possível automatizar essa medição usando um sensor desses dentro do recipiente de modo que ele registrasse a cada minuto o nível da chuva?
Oi Rodrigo,
Eu já vi alguns sensores industriais ultrassônicos que conseguem fazer esse tipo de medição de líquidos com precisão, acho que é só questão de adaptar para o Arduino.
Abraço!
Existe um sensor similar a este, aonde a resistência de medição de líquidos é formada por barras paralelas, e com ela é possível medir o nível de água. O sensor é o mesmo tanto a medição quanto as conexões, visto que é um sensor de umidade, o que muda é a resistência que pode ser do tipo higrômetro, chuva, nível, etc.
http://ecx.images-amazon.com/images/I/41%2BMdkRG2tL._SY355_.jpg
Como ligar esse sensor, Douglas?
boa noite! gostei muito da ideia, eu queria saber, se voce ja tem o projeto para abrir a janela a partir deste, e se nao tiver, se voce poderia fazer! agredeço desde já
Boa tarde ,poderia me ajudar ,
Quero acionar um servo-motor em sentido horário por 5 segundos quando o sensor de chuva for acionado,
E quando o sensor não estiver detectando chuva o servo motor gira anti horário também por 5 segundos.
Estou quebrando a cabeça com a programação por favor se poderem responder no meu EMAIL.
[email protected]
Boa noite Carlos
Você conseguiu concluir a programação?
Estou querendo fazer exatamente o que você fez.
Se puder me passar alguma dica por e-mail, agradeço.
[email protected]
Boa noite, teria como colocar a saida das informações em um display (Display OLED 0.96" I2C Branco) ? e como eu faco isso ? Obrigado .
[…] Confira também o post Como usar um sensor de chuva com Arduino aqui mesmo no Arduino e […]
tarde aquele desenho do sensor de chuva YL-83 que vc tem no seu projeto onde consigo pra usar no tinkecard desde ja obj
gostaria de simular no thikercad, como acho esse sensor de chuva? nao consegui encontrar