Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
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.
Para criar um sistema de monitoramento de consumo hídrico com Arduino, você vai precisar dos seguintes componentes:
Conecte o Sensor de Fluxo de Água ao Arduino:
Conecte o Display LCD ao Arduino:
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++;
}
Bibliotecas Incluídas:
Wire.h
e LiquidCrystal_I2C.h
são usadas para controlar o display LCD via I2C.Configuração Inicial:
Loop Principal:
Função de Interrupção:
countPulse
incrementa o contador de pulsos cada vez que um pulso é detectado.