Arduino Nano ESP32 - Sensor de Água
Este tutorial mostra como usar o Arduino Nano ESP32 e o sensor de água para detectar chuva, vazamento de água, transbordamento de tanque e medir o nível de água.
Hardware Necessário
Or you can buy the following kits:
| 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 inclui 3 pinos:
- Pino S (Signal): este pino fornece uma tensão analógica proporcional ao nível de água. Este pino deve ser conectado a um pino de entrada analógica do Arduino Nano 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
Simplificando, 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.
No entanto, essa forma não é recomendada na prática. Se alimentarmos o sensor de água constantemente, ele sofre corrosão eletroquímica mais rápido por causa do ambiente úmido ⇒ É melhor alimentar o sensor de água somente quando for ler o valor do sensor. Para isso, podemos conectar o pino VCC do sensor a um pino digital do ESP32 e programar o pino do ESP32 para HIGH antes da leitura e LOW depois da leitura.

This image is created using Fritzing. Click to enlarge image
Código para Arduino Nano ESP32 - Lendo o Valor do Sensor de Água
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 cole no Arduino IDE.
- Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE
- Mergulhe lentamente o sensor na água (um copo de água).
- Confira o resultado no Serial Monitor. Ele se parece com o abaixo:. O valor 0 aparece quando o sensor não está tocando em nada.
※ Nota:
O sensor de água não foi projetado para ser totalmente submerso; somente as trilhas expostas da PCB podem ficar dentro da água. Tenha cuidado ao instalá-lo.
Como Detectar Vazamento de Água
Para detectar vazamento de água, chuva e transbordamento de tanque, basta comparar o valor do sensor com um limite. O limite é determinado na parte de calibração deste tutorial.
Vamos fazer o Arduino Nano ESP32 acender um LED se o vazamento de água for detectado.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código para Arduino Nano 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. No entanto, ele é 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 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.