Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Monitorar o Consumo Hídrico Utilizando Arduino

O consumo hídrico é uma preocupação crescente em muitas partes do mundo, e a tecnologia pode ser uma grande aliada na gestão eficiente desse recurso. Utilizando a plataforma Arduino, é possível criar um sistema de monitoramento de consumo de água que pode ajudar a identificar desperdícios e otimizar o uso.

Neste artigo, vamos explorar como criar um sistema de monitoramento de consumo hídrico utilizando Arduino. Vamos abordar os componentes necessários, o esquema de montagem e o código necessário para implementar essa solução.

Componentes Necessários

Para criar um sistema de monitoramento de consumo hídrico com Arduino, você vai precisar dos seguintes componentes:

  • Arduino Uno
  • Sensor de Fluxo de Água (por exemplo, YF-S201)
  • Display LCD 16x2 com interface I2C
  • Resistores
  • Jumpers
  • Protoboard
  • Fonte de alimentação

Esquema de Montagem

  1. Conecte o Sensor de Fluxo de Água ao Arduino:

    • O sensor de fluxo de água geralmente possui três fios: vermelho (VCC), preto (GND) e amarelo (sinal).
    • Conecte o fio vermelho ao pino 5V do Arduino.
    • Conecte o fio preto ao pino GND do Arduino.
    • Conecte o fio amarelo a um dos pinos digitais do Arduino (por exemplo, o pino 2).
  2. Conecte o Display LCD ao Arduino:

    • Conecte os pinos VCC e GND do display LCD aos pinos 5V e GND do Arduino, respectivamente.
    • Conecte os pinos SDA e SCL do display LCD aos pinos A4 e A5 do Arduino, respectivamente.

Código de Exemplo

A seguir, um exemplo de código para monitorar o consumo hídrico utilizando Arduino:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Inicializa o display LCD com o endereço I2C 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int sensorPin = 2; // Pino digital ao qual o sensor está conectado
volatile int pulseCount = 0;
float flowRate = 0.0;
unsigned long oldTime = 0;

void setup() {
  // Configura o pino do sensor como entrada
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);

  // Configura a interrupção para contar os pulsos do sensor
  attachInterrupt(digitalPinToInterrupt(sensorPin), countPulse, FALLING);

  // Inicializa o display LCD
  lcd.begin();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Consumo de Agua");
}

void loop() {
  if ((millis() - oldTime) > 1000) { // Atualiza a cada segundo
    detachInterrupt(digitalPinToInterrupt(sensorPin));

    // Calcula a taxa de fluxo em litros por minuto
    flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / 7.5;
    oldTime = millis();
    pulseCount = 0;

    // Exibe a taxa de fluxo no display LCD
    lcd.setCursor(0, 1);
    lcd.print("Fluxo: ");
    lcd.print(flowRate);
    lcd.print(" L/min");

    attachInterrupt(digitalPinToInterrupt(sensorPin), countPulse, FALLING);
  }
}

void countPulse() {
  pulseCount++;
}

Explicação do Código

  1. Bibliotecas Incluídas:

    • Wire.h e LiquidCrystal_I2C.h são usadas para controlar o display LCD via I2C.
  2. Configuração Inicial:

    • O pino do sensor é configurado como entrada.
    • Uma interrupção é configurada para contar os pulsos do sensor de fluxo de água.
  3. Loop Principal:

    • A cada segundo, a taxa de fluxo é calculada e exibida no display LCD.
    • A taxa de fluxo é calculada com base no número de pulsos contados pelo sensor.
  4. Função de Interrupção:

    • countPulse incrementa o contador de pulsos cada vez que um pulso é detectado.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.