Sensor de nível de caixa d'água com Arduino - MakerHero
Capa blog - Sensor de Nível de Caixa d'água

Sensor de nível de caixa d’água com Arduino 4

O monitoramento do nível de água em uma caixa d’água é uma aplicação importante e prática para garantir o uso eficiente desse recurso vital. Este projeto propõe uma solução prática e acessível para o monitoramento do nível de água em uma caixa d’água, utilizando tecnologia Arduino e sensor de nível de água

monitoramento do nível de água em uma caixa d'água

Além de fornecer uma maneira eficaz de acompanhar os diferentes níveis de volume da caixa d’água, o projeto também apresenta a possibilidade de expansão, permitindo a integração de dispositivos adicionais para automação e controle do sistema. 

Objetivos

O objetivo principal deste tutorial é desenvolver um sistema de monitoramento de nível de água para caixas d’água utilizando tecnologia Arduino e sensores de nível de água. Este sistema permitirá identificar e sinalizar os diferentes níveis de água na caixa, proporcionando uma gestão mais eficiente do consumo e prevenindo problemas de escassez ou excesso. Adicionalmente, neste tutorial, vamos:

  • Integrar sensores de nível de água ao Arduino, permitindo a detecção dos distintos estados de enchimento da caixa d’água.
  • Utilizar uma fita de LED RGB para fornecer uma representação visual dos níveis de água na caixa, facilitando a visualização e o acompanhamento em tempo real.
  • Explorar oportunidades para ampliar as funcionalidades do projeto, como a integração de relés para o acionamento de dispositivos externos, tais como bombas d’água ou lâmpadas, conforme os níveis detectados.
  • Oferecer um guia completo, passo a passo, para a montagem do circuito, a programação do Arduino e a instalação dos componentes necessários.

Materiais necessários

Para seguir com este tutorial, você irá precisar dos seguintes componentes:

Além dos itens mencionados acima, você também precisará ter a Arduino IDE instalada em seu computador ou uma conta cadastrada na Arduino Cloud.

Como funciona um sensor de nível de água?

Um sensor de nível tipo chave é um dispositivo projetado para detectar os níveis de líquido em um recipiente ou reservatório, ativando ou desativando um sinal elétrico quando o nível de líquido atinge uma determinada altura. Existem vários tipos de sensores de nível de água, e o tipo chave refere-se a um tipo específico que opera de forma binária, ou seja, ele está ligado ou desligado, dependendo do nível da água.

sensor de nível de água

Um sensor de nível de água tipo chave geralmente é composto por uma haste e um cilindro de plástico que são instalados verticalmente no reservatório. Ao longo da extensão da haste, é estabelecida uma única posição de contato elétrico com o cilindro.

Quando o cilindro está na posição 1, o contato com a haste permanece fechado. No entanto, quando o cilindro é movido para a posição 2, o contato elétrico com a haste é interrompido, deixando-o aberto

contato elétrico aberto e fechado

Como testar o sensor de nível de água?

Para testar o sensor de nível de água, vamos construir um circuito simples utilizando um Arduino para monitorar a leitura digital. Devemos observar que, quando o cilindro estiver na posição 1, o sinal será interpretado como “ALTO”, enquanto na posição 2, o sinal será interpretado como “BAIXO”.

Para isso, montaremos o seguinte circuito:

testando o sensor de nível de água

E o seguinte código deverá ser carregado no Arduino:

#define pinoSensor 9

void setup() {
  Serial.begin(9600);
  pinMode(pinoSensor, INPUT);
}

void loop() {
  int estadoSensor = digitalRead(pinoSensor);
  Serial.print("Estado Sensor: ");
  Serial.println(estadoSensor);

  if (estadoSensor == 1) {
    Serial.println("Chave Fechada");
  }
  else  {
    Serial.println("Chave Aberta");
  }
  delay(5000);
}

No Monitor Serial da Arduino IDE, iremos observar o seguinte:

  • Quando o sensor de nível está na posição 1, a chave está fechada e a leitura na porta digital 9 é igual a 1
  • Quando o sensor de nível está na posição 2, a chave está aberta e a leitura na porta digital 9 é igual a 0

Monitor Serial da Arduino IDE

Como fazer um monitor de nível de água para a caixa d’agua?

Para monitorar o nível de água em uma caixa d’água, vamos empregar dois sensores, um posicionado na parte inferior e outro na parte superior. Isso nos permitirá monitorar três estados distintos: nível baixo, médio e alto.

Como fazer um monitor de nível de água para a caixa d’agua

Além dos dois sensores mencionados anteriormente, vamos integrar uma fita de LED para fornecer uma indicação visual do nível atual da caixa d’água.

Circuito eletrônico

Abaixo está o esquemático eletrônico do circuito que realiza o monitoramento do nível da caixa d’água utilizando um Arduino:

Circuito Eletrônico

As conexões realizadas são as seguintes:

Fita de LED RGB <-> Arduino Uno R4 Minima

+5V <-> 5V
DIN <-> Pino 11
GND <-> GND

Sensor de Nível de Água  (Sensor 1) <-> Arduino Uno R4 Minima

Cabo 1 <-> Pino 9
Cabo 2 <-> 5V

Sensor de Nível de Água (Sensor 2) <-> Arduino Uno R4 Minima

Cabo 1 <-> Pino 10
Cabo 2 <-> 5V

Resistor 220Ω (Sensor 1) <-> Arduino Uno R4 Minima

Terminal 1 <-> Pino 9
Terminal 2 <-> GND

Resistor 220Ω (Sensor 2) <-> Arduino Uno R4 Minima

Terminal 1 <-> Pino 10
Terminal 2 <-> GND

Instalação do sensor de nível na caixa d’água

A seguir, está a disposição recomendada para a instalação dos sensores de nível em uma caixa d’água. O Sensor 1 deve ser posicionado na parte inferior da caixa, enquanto o Sensor 2 deve ser colocado na parte superior. Ao seguir este arranjo, é possível monitorar três diferentes níveis:

  • Nível Baixo: Quando o Sensor 1 está com a chave aberta e o Sensor 2 está com a chave fechada.
  • Nível Médio: Quando tanto o Sensor 1 quanto o Sensor 2 estão com a chave fechada.
  • Nível Alto: Quando o Sensor 1 está com a chave fechada e o Sensor 2 está com a chave aberta.

Instalação do sensor de nível na caixa d’água

Código

Para garantir o funcionamento adequado do código a seguir, é imprescindível instalar a biblioteca FastLED, a qual é responsável pelo controle da fita de LED RGB WS2812 5050. Para realizar esta instalação, na Arduino IDE, siga os passos: vá em “Ferramentas” > “Gerenciador de Bibliotecas”, pesquise por “FastLED (Daniel Garcia)” e clique em “Instalar”.

Após a conclusão da instalação da biblioteca, proceda com o upload do código fornecido para a placa Arduino.

Importante! O número de LEDs da fita pode ser ajustado na linha 9.

// Programa: Monitoramento do nível da caixa d'água com Arduino
// Autor: Rosana Guse

#include <FastLED.h>  // Inclui a biblioteca FastLED para controlar os LEDs

#define PINO_SENSOR_1 9   // Define o pino do primeiro sensor
#define PINO_SENSOR_2 10  // Define o pino do segundo sensor
#define PINO_LED      11  // Define o pino para os LEDs
#define NUMERO_LEDS   4   // Define o número de LEDs

CRGB leds[NUMERO_LEDS];  // Cria uma matriz de LEDs do tipo CRGB com o número definido de LEDs

void setup() {
  Serial.begin(9600);  // Inicializa a comunicação serial
 
  pinMode(PINO_SENSOR_1, INPUT);  // Configura o pino do primeiro sensor como entrada
  pinMode(PINO_SENSOR_2, INPUT);  // Configura o pino do segundo sensor como entrada

  FastLED.addLeds<NEOPIXEL, PINO_LED>(leds, NUMERO_LEDS);  // Adiciona LEDs NeoPixel 
  à matriz LED
}

void loop() {
  int estadoSensor1 = digitalRead(PINO_SENSOR_1);  // Lê o estado do primeiro sensor
  int estadoSensor2 = digitalRead(PINO_SENSOR_2);  // Lê o estado do segundo sensor

  Serial.print("Estado Sensor 1: ");  // Exibe o estado do primeiro sensor no monitor serial
  Serial.print(estadoSensor1);
  Serial.print(" | ");
  Serial.print("Estado Sensor 2: ");  // Exibe o estado do segundo sensor no monitor serial
  Serial.println(estadoSensor2);

  // Verifica os estados dos sensores e ativa a cor correspondente nos LEDs
  if (estadoSensor1 == LOW && estadoSensor2 == HIGH) {
ativarCor(CRGB::Red);  // Nível Baixo
    Serial.println("Nível Baixo");
  }
  else if (estadoSensor1 == HIGH && estadoSensor2 == HIGH) {
    ativarCor(CRGB::Orange);  // Nível Médio
    Serial.println("Nível Médio");
  }
  else if (estadoSensor1 == HIGH && estadoSensor2 == LOW) {
    ativarCor(CRGB::Green);  // Nível Alto
    Serial.println("Nível Alto");
  }
 
  delay(1000);  // Delay para estabilização e redução da taxa de atualização
}

// Função para ativar a cor nos LEDs
void ativarCor(CRGB cor){
  for (int i = 0; i < NUMERO_LEDS; i++) {
    leds[i] = cor;  // Define a cor em cada LED
    FastLED.show();  // Atualiza os LEDs
    delay(30);  // Delay para controlar a velocidade de atualização dos LEDs
  }
}

Funcionamento

O projeto de monitoramento de nível da caixa d’água utiliza dois sensores de nível posicionados em locais estratégicos dentro da caixa. O Sensor 1 é instalado na parte inferior, enquanto o Sensor 2 é colocado na parte superior. Essa disposição permite monitorar três diferentes níveis de água:

  • Nível Baixo: Quando o Sensor 1 está ativado (chave aberta) e o Sensor 2 está desativado (chave fechada), indicando que a água atingiu um nível mínimo. Nesse caso, a fita de LED acende na cor vermelha, fornecendo um alerta visual.
  • Nível Médio: Quando ambos os sensores estão desativados (chaves fechadas), sugerindo que a água está em um nível intermediário. A fita de LED acende na cor laranja, indicando um nível moderado de água.
  • Nível Alto: Quando o Sensor 1 está desativado e o Sensor 2 está ativado, indicando que a água atingiu um nível máximo. Nesse caso, a fita de LED acende na cor verde, indicando que a caixa d’água está cheia.

Essa configuração permite que o usuário monitore facilmente o nível de água na caixa através das cores emitidas pela fita de LED, facilitando o controle e evitando possíveis problemas de falta ou excesso de água.

Além do monitoramento de nível de água, o projeto oferece a possibilidade de expandir suas funcionalidades. Uma adição interessante seria integrar um relé ao sistema. Com o relé, é possível acionar dispositivos como uma bomba d’água ou uma lâmpada, permitindo automatizar ações de acordo com os diferentes níveis de água detectados.

Para aprender mais sobre como utilizar um relé com o Arduino e implementar essas funcionalidades adicionais, recomenda-se consultar recursos específicos, como o post “Controlando lâmpadas com Módulo Relé Arduino“. 


Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.

Faça seu comentário

Acesse sua conta e participe

4 Comentários

  1. Acqua
    Artigo fantástico e muito útil! Estou impressionado com a clareza das instruções e a praticidade da solução para monitoramento de níveis de água com Arduino. A inclusão da fita de LED RGB para indicar visualmente os níveis é uma grande ideia. Estou ansioso para tentar isso em meu próprio projeto de automação doméstica. Parabéns pelo ótimo trabalho e por compartilhar conhecimentos tão valiosos.

    1. Top!
      Há possibilidade de incremento pare que seja possível os alertas serem visualizados em im Endereço na web.
      O que será gerado uma notificação por e-mail?
      Obrigado

      1. Olá Marcus.

        Seria possível sim, porém você teria que utilizar um script do google e blynk.

        Nós temos um outro tutorial que aborda envio via e-mail, que você pode tomar como base para modificar esse projeto do sensor de nível: https://www.makerhero.com/blog/como-usar-modulo-rele-wifi-esp8266-blynk/

        Caso queira, nós temos também o nosso kit especial notificador de e-mail, que possui um curso ensinando a montar e programar notificação por e-mail: https://www.makerhero.com/produto/kit-notificador-de-e-mails/

        Att.
        Vitor Mattos.
        MakerHero.

    2. Olá Emily.

      Obrigado pelo feedback.

      Ficamos a disposição.

      Att.
      Vitor Mattos.
      MakerHero.