ESP32 - Sensor de Chuva
O sensor de chuva é capaz de detectar e medir o nível de chuva/neve. O sensor de chuva tem duas saídas: uma saída digital (LOW/HIGH) e uma saída analógica.
Neste tutorial, vamos aprender a usar um ESP32 e um sensor de chuva para detectar e medir a chuva. Especificamente, vamos ver:
- Como conectar o sensor de chuva a um ESP32.
- Como programar o ESP32 para detectar a chuva lendo o sinal digital do sensor de chuva.
- Como programar o 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 acionar um motor ou um alerta quando ele detectar chuva/neve
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 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 cai da chuva. O sensor de chuva oferece duas opções, por meio de um pino de saída digital e um pino de saída analógica.
O sensor de chuva tem duas partes:
- A placa sensora
- O módulo eletrônico

A placa sensora
A placa sensora é instalada do lado de fora, onde pode receber chuva/neve (por exemplo, no telhado). Ela 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 ligadas 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 ESP32. Ele tem quatro pinos:
- Pino VCC: deve ser conectado ao VCC (3.3V a 5V).
- Pino GND: deve 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 limite 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 quando a quantidade de água na placa sensora aumenta, e aumenta quando a quantidade de água na placa sensora diminui.
Além disso, ele tem dois LEDs indicadores:
- Um LED PWR para a alimentação.
- Um LED DO para o estado da chuva no pino DO: fica aceso quando há chuva.
Como Funciona
Para o pino DO:
- O módulo tem um potenciômetro embutido para ajustar o limite (sensibilidade).
- Quando a intensidade está acima do valor limite, a chuva é detectada, o pino de saída do sensor fica em LOW e o LED DO acende.
- Quando a intensidade está abaixo do valor limite, a chuva NÃO é detectada, o pino de saída do sensor fica em HIGH e o LED DO 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 dito acima, o pino VCC do sensor deve ser conectado a 3.3V ou 5V. Se conectarmos esse pino direto ao pino 3.3V ou 5V do ESP32, a vida útil do sensor diminui por causa da corrosão eletroquímica. O melhor jeito é 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 na hora da leitura. Isso minimiza o impacto da corrosão eletroquímica.
Como o módulo do sensor de chuva tem duas saídas, você pode usar uma delas ou as duas, conforme a sua necessidade.
- Como conectar o ESP32 e o sensor de chuva usando protoboard
O módulo do sensor de chuva oferece duas saídas. Você pode usar uma delas ou as duas, conforme necessário.

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
- Como conectar o ESP32 e o sensor de chuva usando uma placa breakout com bornes de parafuso

Código ESP32 - Lendo o valor do pino DO
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do ESP32 na Arduino IDE
- Copie o código acima e abra na Arduino IDE
- Clique no botão Upload da Arduino IDE para fazer o upload do código para o ESP32
- Pingue um pouco de água no sensor de chuva
- Veja o resultado no Serial Monitor.
Lembre-se: se o LED ficar sempre aceso ou sempre apagado mesmo quando o sensor está na chuva, você pode ajustar o potenciômetro para regular a sensibilidade do sensor.
Código ESP32 - Lendo o valor do pino AO
Passos Rápidos
- Copie o código acima e abra na Arduino IDE
- Clique no botão Upload da Arduino IDE para fazer o upload do código para o ESP32
- Pingue um pouco de água no sensor de chuva
- Veja 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 de chuva. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. Porém, para projetos que precisam de medições precisas, observe:
- O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para dar resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC de cada placa individualmente.
- A calibração pode ser difícil, principalmente para iniciantes, e nem sempre dá o resultado exato que você quer.
Para projetos que precisam de alta precisão, considere usar um ADC externo (por exemplo, o ADS1115) com o ESP32, ou usar um Arduino, que tem um ADC mais confiável. Se mesmo assim você quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver