Arduino - Sensor de Água
O sensor de água, ou sensor de nível de água, é usado para detectar vazamento de água, chuva, transbordamento de tanque ou para medir o nível da água. Neste tutorial, vamos aprender:
- Como usar o sensor de água com o Arduino
- Como conectar o sensor de água ao Arduino
- Como programar o Arduino para ler o estado do sensor de água
- Como detectar vazamento de água, chuva e transbordamento de tanque
- Como medir o nível da água
- Como calibrar o sensor de água
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino 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): é uma saída analógica que será conectada a uma das entradas analógicas do seu Arduino.
- Pino + (VCC): fornece alimentação para o sensor. É recomendado alimentar o sensor com 3,3V – 5V.
- Pino - (GND): é a conexão de terra (ground).

※ Nota:
O valor da saída analógica no pino de sinal varia de acordo com a tensão fornecida ao pino VCC do sensor.
Como o Sensor de Nível de Água Funciona
Resumindo: quanto mais o sensor estiver imerso na água, maior será a tensão de saída no pino de sinal.
Vamos ver isso com mais detalhes.
O sensor tem uma série de dez trilhas de cobre expostas. Cinco são trilhas de alimentação e cinco são trilhas de detecção. Essas trilhas são intercaladas em paralelo, de modo que existe uma trilha de detecção entre cada duas trilhas de alimentação. Essas trilhas não estão conectadas, a menos que sejam ligadas pela água quando submersas.
As trilhas funcionam como um resistor variável (assim como um potenciômetro), cuja resistência varia de acordo com o nível da água.
- A mudança na resistência corresponde à distância entre o topo do sensor e a superfície da água.
- A resistência é inversamente proporcional à altura da água:
- Quanto mais o sensor estiver imerso na água, melhor a condutividade e menor a resistência.
- Quanto menos o sensor estiver imerso na água, pior a condutividade e maior a resistência.
- O sensor produz uma tensão de saída de acordo com a resistência.
Medindo a tensão, podemos determinar o nível da água.
Diagrama de Ligação
Em teoria, para alimentar o sensor, podemos conectar os pinos VCC e GND do sensor aos pinos 5v e GND do Arduino, respectivamente.
Na prática, porém, essa forma não é recomendada. Isso porque, em um ambiente úmido, se alimentarmos o sensor o tempo todo, ele sofre corrosão eletroquímica mais rápido. Isso reduz a vida útil do sensor. Para resolver esse problema, recomendamos que você não alimente o sensor o tempo todo, mas apenas quando for ler o valor do sensor. Isso pode ser feito conectando o pino VCC do sensor a um pino digital do Arduino e colocando o pino do Arduino em HIGH e LOW antes e depois da leitura, respectivamente.

This image is created using Fritzing. Click to enlarge image
Código Arduino - Lendo o Valor do Sensor de Água
Passos Rápidos
- Copie o código acima e abra no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Mergulhe o sensor na água devagar (em um copo de água).
- Veja o resultado no Serial Monitor. O valor é 0 quando o sensor não está tocando em nada.
※ Nota:
O sensor não foi projetado para ficar totalmente submerso; apenas as trilhas expostas na PCB podem entrar em contato com a á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 lido com um valor limite. O limite é determinado na parte de calibração deste tutorial.
Vamos ver um exemplo específico. O Arduino acende um LED se a água for detectada.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código Arduino - Detectando Vazamento de Água
Como Medir o Nível da Água
Se você quiser dividir a altura máxima da água em alguns níveis e medir o nível atual, pode usar o método do código abaixo. Observe que a altura máxima da água é igual à altura do sensor. O código abaixo divide a altura máxima 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. Se você quiser torná-lo preciso, pode medir os valores limite para cada nível. Veja a parte de calibração
Calibração do Sensor de Nível de Água
O valor de saída do sensor depende não só do nível da água, mas também da condutividade da água. A água pura não é condutora. A água que contém minerais e impurezas é condutora. Quanto mais condutora for a água, mais sensível o sensor será. Por outro lado, o valor de saída também varia de acordo com a tensão fornecida ao pino VCC do sensor.
Para ter leituras precisas do sensor de água, recomendamos que você calibre o sensor para o tipo específico de água que pretende monitorar.
Antes de determinar o limite para disparar uma ação, você deve medir o valor real lido do sensor fazendo um teste.
Como fazer o teste:
- Use o sketch acima para ler o valor do sensor.
- Mergulhe o sensor na água até o nível que você quer usar como limite.
- Anote o valor que o sensor mostra no Serial Monitor.
- Use esse valor como o limite em que você pretende disparar uma ação.
Este teste pode exigir algumas tentativas e erros.
O teste também pode ser usado para encontrar:
- O valor SENSOR_MIN, quando o sensor não está imerso na água
- O valor SENSOR_MAX, quando o sensor está totalmente imerso na água
- Um valor limite para detectar vazamento de água
- Os valores limite para cada nível da sua escala.
Vídeo
O vídeo de demonstração abaixo usa o código a seguir:
Desafie-se
- Enviar um e-mail ao detectar vazamento de água
- Enviar uma mensagem SMS ao detectar vazamento de água
- Fazer um alarme sonoro ao detectar vazamento de água