ESP32 - Sensor de Água
Este tutorial ensina você a usar o ESP32 e o sensor de água para detectar chuva, vazamento de água, transbordamento de reservatório e medir o nível de água.
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 Nível de Água
Pinagem do Sensor de Nível de Água
O sensor de nível de água tem 3 pinos:
- Pino S (Signal): este pino fornece uma tensão analógica proporcional ao nível de água. Ele deve ser conectado a um pino de entrada analógica do ESP32.
- Pino + (VCC): conecte este pino a 3.3V ou 5V.
- Pino - (GND): conecte este pino ao GND.

Como o Sensor de Nível de Água Funciona
De forma simples, quanto mais o sensor é mergulhado na água, maior é a tensão de saída no pino S. Medindo a tensão, podemos saber o nível de água.
Diagrama de Ligação
Em teoria, podemos alimentar o sensor de água conectando os pinos VCC e GND do sensor aos pinos 3.3V e GND do ESP32, respectivamente.
Porém, na prática isso não é recomendado. Se alimentarmos o sensor de água o tempo todo, ele sofre corrosão eletroquímica mais rápido por causa do ambiente úmido ⇒ É melhor alimentar o sensor de água somente no momento de ler o valor do sensor. Para isso, podemos conectar o pino VCC do sensor a um pino digital do ESP32 e programar esse pino em HIGH antes da leitura e em LOW depois da leitura.
- Como conectar o ESP32 e o sensor de água usando protoboard

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 água usando uma placa breakout com bornes de parafuso (alimentado pelo cabo USB)

Código ESP32 - Lendo o Valor do Sensor de Água
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 cole na Arduino IDE.
- Compile e faça o upload do código para a placa ESP32 clicando no botão Upload da Arduino IDE
- Mergulhe o sensor devagar na água (um copo de água).
- Veja o resultado no Serial Monitor. Ele fica parecido com o abaixo. O valor é 0 quando o sensor não está tocando em nada.
※ Nota:
O sensor de água não foi feito para ser totalmente submerso. Somente as trilhas expostas da placa podem ficar dentro da água. Tenha cuidado ao instalá-lo.
Como Detectar Vazamento de Água
Para detectar vazamento de água, chuva e transbordamento de reservatório, basta comparar o valor do sensor com um limite. O limite é determinado na parte de calibração deste tutorial.
Vamos fazer o ESP32 acender um LED se um vazamento de água for detectado.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código ESP32 - Detectando Vazamento de Água
Como Medir o Nível de Água
O código abaixo divide o nível de água em 4 níveis.
※ Nota:
- SENSOR_MIN e SENSOR_MAX são determinados pelo processo de calibração.
- O método de mapeamento acima não é preciso. Porém, é aceitável em muitas aplicações.
Calibração do Sensor de Nível de Água
Veja como calibrar o sensor de nível de água
※ Nota:
Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor de água. 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