Arduino Nano ESP32 - 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 Nano ESP32 e um sensor de chuva para detectar e medir a chuva. Especificamente, vamos abordar o seguinte:
- Como conectar o sensor de chuva a um Arduino Nano ESP32.
- Como programar o Arduino Nano ESP32 para detectar a chuva lendo o sinal digital do sensor de chuva.
- Como programar o Arduino Nano ESP32 para medir o nível de chuva lendo o sinal analógico do sensor de chuva.

Depois, você pode modificar o código para ativar um motor ou um aviso quando ele detectar chuva./neve
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
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 a chuva deixou cair. 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 inclui duas partes:
- A placa sensora
- O módulo eletrônico

A placa sensora
A placa sensora fica do lado de fora, onde pode enfrentar a chuva/neve (por exemplo, o telhado). A placa sensora tem uma série de trilhas de cobre expostas, divididas em dois grupos: trilhas de alimentação e trilhas de sensoriamento. Essas trilhas de alimentação e de sensoriamento não estão conectadas, a menos que sejam unidas por água ou neve. Não há diferença entre a trilha de alimentação e a trilha de sensoriamento. Você pode escolher uma como trilha de alimentação e a outra será a trilha de sensoriamento
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 Nano ESP32. Ele inclui 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. Ele fica em HIGH se a chuva não é detectada e em LOW se é detectada. O valor de limite para a detecção de chuva pode ser ajustado usando um potenciômetro embutido.
- Pino AO: é um pino de saída analógica. O valor de saída diminui conforme a água na placa sensora aumenta, e aumenta conforme a água na placa sensora diminui.
Além disso, ele tem dois indicadores de LED:
- Um indicador PWR-LED para a alimentação.
- Um indicador DO-LED para o estado da chuva no pino DO: ele fica aceso quando há chuva.
Como Funciona
Para o pino DO:
- O módulo tem um potenciômetro embutido para definir o limite (sensibilidade).
- Quando a intensidade está acima do valor de limite, 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 limite, 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.
Note 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 este pino diretamente ao pino de 3.3V ou 5V do ESP32, 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 ESP32. Podemos programar esse pino para alimentar o sensor de chuva somente 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 as duas, dependendo do que precisar.
- O diagrama de ligação entre o Arduino Nano ESP32 e o sensor de chuva ao usar somente o DO.

This image is created using Fritzing. Click to enlarge image
- O diagrama de ligação entre o Arduino Nano ESP32 e o sensor de chuva ao usar somente o AO.

This image is created using Fritzing. Click to enlarge image
- O diagrama de ligação entre o Arduino Nano ESP32 e o sensor de chuva ao usar o AO e o DO.

This image is created using Fritzing. Click to enlarge image
Código para Arduino Nano ESP32 - Ler o valor do pino DO
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE
- Copie o código acima e abra com o Arduino IDE
- Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
- Pingue um pouco de água no sensor de chuva
- Confira o resultado no Serial Monitor.
Tenha em mente que, se você notar que o LED fica aceso o tempo todo, ou apagado mesmo quando o sensor está voltado para a chuva, você pode ajustar o potenciômetro para regular a sensibilidade do sensor.
Código para Arduino Nano ESP32 - Ler o valor do pino AO
Passos Rápidos
- Copie o código acima e abra com o Arduino IDE
- Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
- Pingue um pouco de água no sensor de chuva
- Confira o resultado no Serial Monitor.
※ Nota:
Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor ou componente. O ADC do Arduino Nano ESP32 é adequado para projetos que não exigem alta precisão. No entanto, para projetos que precisam de medições precisas, tenha em mente o seguinte:
- O ADC do Arduino Nano ESP32 não é perfeitamente preciso e pode exigir calibração para resultados corretos. Cada placa Arduino Nano ESP32 pode variar um pouco, então a calibração é necessária para cada placa individual.
- A calibração pode ser difícil, especialmente para iniciantes, e nem sempre pode dar os resultados exatos que você quer.
Para projetos que exigem alta precisão, considere usar um ADC externo (por exemplo, ADS1115) com o Arduino Nano ESP32 ou usar outro Arduino, como o Arduino Uno R4 WiFi, que tem um ADC mais confiável. Se você ainda quiser calibrar o ADC do Arduino Nano ESP32, consulte o ESP32 ADC Calibration Driver.