ESP8266 - Sensor de Água
Estes tutoriais ensinam como usar o sensor de água com o ESP8266. Vamos aprender:
- Como conectar o sensor de água ao ESP8266
- Como programar o ESP8266 para ler o estado do sensor de água.
- Como detectar vazamento de água, chuva e transbordamento de tanque, e medir o nível de água.
- Como calibrar o sensor 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 tem 3 pinos:
- O pino S (Signal) é uma saída analógica que deve ser conectada a uma das entradas analógicas do seu ESP8266.
- O pino + (VCC) fornece energia ao sensor e é sugerido usar uma tensão entre 3.3V – 5V.
- O pino - (GND) é uma conexão de terra.

Como o Sensor de Nível de Água Funciona
Em resumo, a tensão de saída no pino de sinal aumenta à medida que o sensor é exposto a mais água.
Vamos olhar com mais detalhe.
O sensor tem um conjunto de dez trilhas de cobre expostas, sendo cinco trilhas de alimentação e as outras cinco trilhas de sensoriamento. As trilhas são dispostas em paralelo, com uma trilha de sensoriamento entre cada duas trilhas de alimentação. A menos que estejam submersas em água, essas trilhas não estão conectadas.
As trilhas funcionam como um resistor variável (assim como um potenciômetro) cuja resistência varia de acordo com o nível de água:
- A resistência das trilhas é inversamente proporcional à altura da água.
- Quanto maior a quantidade de água em que o sensor está imerso, melhor é a condutividade, resultando em uma resistência menor.
- Quanto menor a quantidade de água em que o sensor está imerso, pior é a condutividade, resultando em uma resistência maior.
- A tensão de saída do sensor é determinada pela resistência.
Avaliar a tensão pode ser usado para determinar o nível de água.
Diagrama de Ligação
Em teoria, os pinos VCC e GND do sensor podem ser conectados aos pinos 5v e GND do ESP8266, respectivamente, para fornecer energia ao sensor.
No entanto, não é recomendado usar esse método na prática. Se o ambiente for úmido, fornecer energia ao sensor constantemente fará com que ele se corroa eletroquimicamente mais rápido, reduzindo sua vida útil. Para evitar isso, sugerimos alimentar o sensor somente quando você precisar ler o valor dele. Isso pode ser feito conectando o pino VCC do sensor a um pino digital de um ESP8266 e colocando o pino do Arduino em HIGH antes da leitura e em LOW depois.

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Código ESP8266 - Lendo o Valor do Sensor de Água
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Confira o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Copie o código e abra-o com a Arduino IDE.
- Clique no botão Upload da Arduino IDE para compilar e fazer upload do código para o ESP8266.
- Abaixe o sensor com cuidado em um copo de água.
- Veja o resultado no Serial Monitor; o valor deve ser 0 quando o sensor não está em contato com nada.
※ Nota:
O sensor não deve ficar completamente submerso; somente as trilhas expostas na PCB devem entrar em contato com a água. Tenha cuidado ao instalá-lo.
Como Detectar Vazamento de Água
Para identificar vazamento de água, chuva e transbordamento de tanque, só precisamos comparar o valor lido com um valor limite que é determinado na seção de calibração deste tutorial.
Vamos considerar um caso específico. Se água for detectada, o ESP8266 ativará um LED.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código ESP8266 - Detectando Vazamento de Água
Como Medir o Nível de Água
Se você quiser medir o nível atual de água dividindo a altura máxima em vários níveis, o código a seguir pode ser usado. Observe que a altura máxima da água é equivalente à altura do sensor. Este código divide a altura máxima em quatro níveis.
※ Nota:
- SENSOR_MIN e SENSOR_MAX são determinados por meio do processo de calibração.
- O método de mapeamento mencionado acima não é preciso. Mesmo assim, ele é adequado para muitas aplicações. Se você quiser deixar os resultados mais precisos, pode medir os valores limite de cada nível. Para mais informações, consulte a seção de calibração no final deste tutorial.
Calibração do Sensor de Nível de Água
O valor de saída do sensor é determinado por dois fatores: o nível de água e a condutividade da água. A água pura não é condutiva, mas, quando há minerais e impurezas presentes, ela se torna condutiva. Quanto mais condutiva é a água, maior é a sensibilidade do sensor. Além disso, o valor de saída também é afetado pela tensão fornecida ao pino VCC do sensor.
Para obter leituras precisas do sensor de água, sugerimos calibrá-lo para o tipo específico de água que você pretende monitorar.
Antes de definir o limite para iniciar uma ação, é necessário medir o valor real obtido do sensor por meio de um teste.
Instruções para o teste:
- Utilize o sketch fornecido acima para ler o valor do sensor.
- Mergulhe o sensor na água, certificando-se de que ele esteja no nível limite desejado.
- Anote o valor informado pelo sensor no Serial Monitor.
- Use esse valor como o limite para disparar uma determinada ação.
Pode ser necessário um pouco de experimentação para concluir este teste.
O teste também pode ser usado para descobrir:
- O valor de SENSOR_MIN, quando o sensor não está submerso no líquido
- O valor de SENSOR_MAX, quando o sensor está totalmente submerso no líquido
- Um valor limite para detectar vazamento de água
- Os valores de fronteira para cada estágio da sua escala de níveis.
※ Nota:
Este tutorial usa a função analogRead() para obter dados de um ADC (Conversor Analógico-Digital) conectado a um sensor ou a outra parte. O ADC do ESP8266 funciona bem para projetos em que você não precisa de leituras muito precisas. Mas lembre-se: o ADC do ESP8266 não é muito preciso para medições detalhadas. Se o seu projeto precisa ser muito preciso, você pode usar um ADC separado, como o ADS1115, com o ESP8266, ou usar um Arduino como o Arduino Uno R4 WiFi, que tem um ADC mais confiável.
Vídeo
Desafie-se
- Ao detectar vazamento de água,
- Envie um e-mail,
- Envie uma mensagem SMS,
- E faça um alarme sonoro.