Sensor de chuva YL-83

Sensor de chuva YL-83

Se você já montou ou vai montar uma estação de monitoração climática, usando sensores de temperatura, umidade e pressão, agora tem mais um componente à disposição : Sensor de chuva YL-83.
Sensor de chuva YL-83

Este conjunto é formado por uma placa que forma o sensor propriamente dito, com várias trilhas nos dois lados e material resistente à oxidação , que se encarrega de detectar o nível de chuva/umidade do ambiente.

Esta placa, por sua vez, é ligada por meio de 2 fios ao módulo principal, que contém o circuito de controle que vai se comunicar com o microcontrolador. No caso deste post, o Arduino.

O módulo de controle, como podemos ver acima, tem 2 pinos que vão se comunicar com a placa do sensor, e na outra extremidade, 4 pinos de sinal e alimentação : A0 (sinal analógico), D0 (sinal digital), GND e Vcc. A alimentação vai de 3.3 à 5 volts.

A placa também possui, logo acima dos pinos, 2 leds. O da esquerda (verde) permanece apagado quando não há sinal no sensor, e começa a piscar ou permanece aceso quando o sensor é acionado. O led da direita (vermelho), indica que o módulo está ligado :

Detalhe modulo de controle

Existem 2 formas bem simples de se trabalhar com esse sensor. Uma delas é utilizando a saída digital, que simplesmente informa se foi detectada chuva/líquido (saída em nível baixo / low) ou se o sensor está seco (saída em nível alto / high).

Outra maneira, que permite maiores variações, é utilizar a saída analógica, cujo valor vai de 0 a 1023, e dessa maneira dimensionar o que você quer fazer com esse valor, indicando em um painel, por exemplo, se não há chuva, ou se ela está fraca, forte, moderada, etc.

Mas chega de teoria e vamos à prática, mostrando a ligação do sensor e do módulo de controle ao Arduino, juntamente com um display LCD 16×2 :

Circuito sensor de chuva e display LCD 16x2

O programa abaixo lê as informações tanto da saída digital D0 do módulo, ligada ao pino 7 do Arduino, como da saída analógica A0 , ligada ao pino A5 :

//Programa : Teste sensor de chuva YL-83
//Autor : FILIPEFLOP

#include <LiquidCrystal.h> //Carrega a biblioteca LiquidCrystal  

int pino_d = 7; //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

//Define os pinos que serão utilizados para ligação ao display  
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  

void setup()
{
  lcd.begin(16, 2); 
  pinMode(pino_d, INPUT);
  pinMode(pino_a, INPUT);
  Serial.begin(9600);
  lcd.setCursor(0,0);
  lcd.print("Chuva  : ");
  lcd.setCursor(0,1);
  lcd.print("Intens.: ");
}

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);
  //Mostra no display se ha chuva ou nao
  if (val_d == 1)
  {
    lcd.setCursor(10,0);
    lcd.print("Nao");
  }
  else
  {
    lcd.setCursor(10,0);
    lcd.print("Sim");
  }

  //Mostra no display o nivel de intensidade
  //da chuva
  if (val_a >900 && val_a <1023)
  {
    lcd.setCursor(10,1);
    lcd.print("      ");
    lcd.setCursor(10,1);
    lcd.print("----");
  }
  else if (val_a >600 && val_a <900)
  {
    lcd.setCursor(10,1);
    lcd.print("      ");
    lcd.setCursor(10,1);
    lcd.print("Fraca");
  }
  else if (val_a >400 && val_a <600)
  {
    lcd.setCursor(10,1);
    lcd.print("      ");
    lcd.setCursor(10,1);
    lcd.print("Moder.");
  }
  else if (val_a <400)
  {
    lcd.setCursor(10,1);
    lcd.print("      ");
    lcd.setCursor(10,1);
    lcd.print("Forte");
  }    
  delay(1000);
}

No display, é mostrada a indicação de chuva, e se a mesma é fraca, moderada ou intensa :

Sensor chuva e display LCD

As informações sobre o sensor também são enviadas para o serial monitor, caso você não tenha um display à disposição.

Gostou ? Conte-nos sua experiência com este post e visite nossa loja FILIPEFLOP !

15
Sensor de chuva YL-83
12 votos, 4.75 classificação média (95% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

19 Comentários

  1. Thiago Caires - 22 de fevereiro de 2017

    Ola amigo, estou precisando de uma solução dessa para acionar um motor de bomba, é o seguinte preciso que esse sensor de chuva desligue a bomba assim que começar a chover, isso sera usado em um climatizador de ambiente, pois qdo estiver chovendo a bomba que desligar, seria possivel tao solução?

    meu tel (16) 99344-3604 claro e whatzap.

  2. Ricardo moura - 19 de junho de 2016

    Boa tarde. Queria saber como faço pra quando detectar chuva o arduino liguei motor de 5v e qual código usar

  3. Daniel Fernandes - 14 de março de 2016

    Olá amigo! Como ficaria o código/esquemático para se ligar um motor de passo para, por exemplo, chovendo, o motor rode até um fim-de-curso e, parando a chuva, o motor retorne a sua posição original? Grato

  4. Daniel - 19 de janeiro de 2016

    Você precisa usar >= ou <= nos seus IFs, senão quando o sensor der alguns dos valores limites exatos não entrará em nenhum IF, por exemplo se val_a = 900, não entrará em IF.

  5. Marcelo Ciacco - 14 de dezembro de 2015

    Onde encontro o sensor para adicionar no fritzing?

  6. Ariane - 31 de agosto de 2015

    Olá Felipe, muito bom o projeto, gostaria de saber como seria o desenho esquemático para ligar um motor dc no lugar do buzzer, teria como fazer essa ligação?
    Abraço!

  7. Luciano - 17 de agosto de 2015

    Prezado Adilson,

    Gostaria de saber se o seu sensor de chuva funciona no equipamento que tenho, fabricante DENKOVI, modelo SNMP 8 Relay Module for Temperature Measurement LM35DZ antes de eu comprar.

    Abraço.

  8. Luiz Miguel - 30 de abril de 2015

    Gostaria de saber qual o melhor sensor de chuva para fazer um Varal Autônomo??

  9. Suellen - 6 de abril de 2015

    Boa Noite,
    Gostaria de saber se posso conectar o Sensor de chuva a algum que componente de módulo Bluetooth, para ai sim trocar informações com o Arduino, e se sim, como.

  10. Ricardo Rangel - 6 de março de 2015

    Boa tarde. Funcionou em parte. Com o sensor molhado ou não continua mostrando Chuva: Sim.

  11. Matthias - 7 de dezembro de 2014

    Hi nice work!
    I am working with the yl-83 too. And i use the fritzing Software.
    Can someone send me the custom Part for fritzing?
    Thx my mail is muchel15@web.de

  12. Wenderson - 3 de novembro de 2014

    Bom dia amigo!!

    Interessante esse código.
    Você já pensou em implementá-lo do jeito que toda vez que o sensor acusar chuva, ele dê um sinal por exemplo, para acionar um motor e fechar uma janela!?
    Outra ideia, como fazer um loop infinito mostrando no LCD quais portas do Arduíno estão com comando? Por exemplo, canal 1 ATIVADO(pode ser uma lâmpada que recebeu o comando para acender), canal 2 DESATIVADO (motor do sensor de chuva desligado, janela aberta) e por aí vai…
    Abraços,
    Wenderson

    • FILIPEFLOP - 3 de novembro de 2014

      Boa tarde Wenderson,

      Legal, obrigado pela sugestão.

      Dependendo do seu projeto, você pode utilizar a própria seção Loop do Arduino :

      void loop()
      {
      if (comando_1 = 1)
      {
      lcd.print(“Canal 1 Ativado”);
      }
      if (comando_2 = 1)
      {
      lcd.print(“Canal 2 Ativado”);
      }

      Abraço.

      Adilson – Equipe FILIPEFLOP

Deixe uma resposta