Arduino - Sensor de Chuva

O sensor de chuva é capaz de detectar e medir o nível de chuva/neve. O sensor de chuva fornece duas saídas: uma saída digital (LOW/HIGH) e uma saída analógica.

Neste tutorial, vamos aprender a usar um Arduino e um sensor de chuva para detectar e medir a chuva. Especificamente, vamos abordar o seguinte:

sensor de chuva com arduino

Depois, você pode modificar o código para acionar um motor ou um alerta quando ele detectar chuva/neve.

Sobre o Sensor de Chuva

O sensor de chuva pode ser usado para detectar a presença de chuva ou medir o nível de água que caiu com a chuva. O sensor de chuva oferece duas opções, por meio de um pino de saída digital e de um pino de saída analógica.

O sensor de chuva é composto por duas partes:

  • A placa sensora
  • O módulo eletrônico
Pinagem do Sensor de Chuva
image source: diyables.io

A placa sensora

A placa sensora é colocada do lado de fora, onde pode ficar exposta à chuva/neve (por exemplo, no telhado). A placa sensora tem uma série de trilhas de cobre expostas, divididas em dois grupos: trilhas de alimentação e trilhas de detecção. Essas trilhas de alimentação e trilhas de detecção não estão conectadas, a menos que sejam ligadas pela água ou pela neve. Não há diferença entre a trilha de alimentação e a trilha de detecção. Você pode escolher uma como trilha de alimentação e a outra se tornará a trilha de detecção

O módulo eletrônico

O módulo eletrônico do sensor de chuva converte o sinal da placa sensora em um valor analógico ou digital que pode ser lido pelo Arduino. Ele tem quatro pinos:

  • Pino VCC: precisa ser conectado ao VCC (3.3V a 5V).
  • Pino GND: precisa ser conectado ao GND (0V).
  • Pino DO: é um pino de saída digital. Fica em HIGH se a chuva não for detectada e em LOW se for detectada. O valor de limiar para a detecção de chuva pode ser ajustado com um potenciômetro embutido.
  • Pino AO: é um pino de saída analógica. O valor de saída diminui à medida que a água na placa sensora aumenta, e aumenta à medida que a água na placa sensora diminui.

Além disso, ele tem dois LEDs indicadores:

  • Um LED indicador PWR-LED para a alimentação.
  • Um LED indicador DO-LED para o estado de chuva no pino DO: ele acende quando há chuva.

Como Funciona

Para o pino DO:

  • O módulo tem um potenciômetro embutido para definir o limiar (sensibilidade).
  • Quando a intensidade está acima do valor de limiar, a chuva é detectada, o pino de saída do sensor fica em LOW e o DO-LED acende.
  • Quando a intensidade está abaixo do valor de limiar, a chuva NÃO é detectada, o pino de saída do sensor fica em HIGH e o DO-LED apaga.

Para o pino AO:

  • Quanto mais água na placa sensora, menor o valor lido no pino AO.
  • Quanto menos água na placa sensora, maior o valor lido no pino AO.

Observe que o potenciômetro não afeta o valor no pino AO.

Diagrama de Ligação

Como mencionado acima, o pino VCC do sensor deve ser conectado a 3.3V ou 5V. Se conectarmos esse pino diretamente ao pino 3.3V ou 5V do Arduino, a vida útil do sensor será reduzida por causa da corrosão eletroquímica. A melhor forma é conectar o pino VCC do sensor de chuva a um pino de saída do Arduino. Podemos programar esse pino para alimentar o sensor de chuva apenas durante a leitura. Isso pode minimizar o impacto da corrosão eletroquímica.

Como o módulo do sensor de chuva tem duas saídas, você pode escolher usar uma ou ambas, dependendo do que precisar.

  • O diagrama de ligação entre o Arduino e o sensor de chuva usando apenas o DO.
Diagrama de ligação do sensor de chuva com Arduino

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação entre o Arduino e o sensor de chuva usando apenas o AO.
Diagrama de ligação da detecção de chuva com Arduino

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação entre o Arduino e o sensor de chuva usando AO e DO.
Diagrama de ligação do detector de chuva com Arduino

This image is created using Fritzing. Click to enlarge image

Código Arduino - Ler o valor do pino DO

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-rain-sensor */ #define POWER_PIN 3 // The Arduino pin that provides the power to the rain sensor #define DO_PIN 4 // The Arduino's pin connected to DO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT pinMode(DO_PIN, INPUT); } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_state = digitalRead(DO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF if (rain_state == HIGH) Serial.println("The rain is NOT detected"); else Serial.println("The rain is detected"); delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Passos Rápidos

  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Pingue um pouco de água no sensor de chuva
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected
Ln 11, Col 1
Arduino Uno on COM15
2

Lembre-se de que, se você perceber que o LED fica sempre aceso ou sempre apagado, mesmo quando o sensor está exposto à chuva, você pode ajustar o potenciômetro para regular a sensibilidade do sensor.

Código Arduino - Ler o valor do pino AO

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-rain-sensor */ #define POWER_PIN 3 // The Arduino pin that provides the power to the rain sensor #define AO_PIN A0 // Arduino's pin connected to AO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rainValue = analogRead(AO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF Serial.println(rainValue); // print out the analog value delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Passos Rápidos

  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Pingue um pouco de água no sensor de chuva
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
225 2426 236 563 687 959 975 1009 1017 1053 1078 841 743 440 279
Ln 11, Col 1
Arduino Uno on COM15
2

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!