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

Eficiência Energética com Arduino: Monitoramento e Controle

A eficiência energética é uma preocupação crescente em um mundo onde a demanda por energia está em constante aumento. A capacidade de monitorar e controlar o consumo de energia de forma eficiente pode resultar em economias significativas tanto financeiras quanto ambientais. Com o uso do Arduino, um microcontrolador de código aberto, é possível criar sistemas que ajudam a gerenciar e otimizar o uso da energia em diferentes aplicações. Este artigo irá apresentar um projeto de monitoramento e controle de consumo energético utilizando Arduino, destacando sua importância e como ele pode ser implementado.

Projeto:

O projeto consiste em criar um sistema de monitoramento e controle de consumo de energia elétrica utilizando um Arduino. O objetivo é medir o consumo de energia de um dispositivo elétrico e controlar seu funcionamento para otimizar o uso de energia. O sistema irá monitorar a corrente elétrica e a tensão, calcular o consumo de energia e, com base em parâmetros predefinidos, acionar ou desligar o dispositivo para economizar energia.

Lista de componentes:

  • 1 Arduino Uno
  • 1 Sensor de Corrente ACS712 (20A)
  • 1 Sensor de Tensão ZMPT101B
  • 1 Módulo Relé 5V
  • 1 Display LCD 16x2 com I2C
  • 1 Protoboard
  • Jumpers
  • Resistor 10kΩ (1 unidade)
  • Potenciômetro 10kΩ (1 unidade)

Exemplos:

Código de Monitoramento de Energia

#include <LiquidCrystal_I2C.h>

// Define o endereço do LCD e o tamanho do display
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Pinos do sensor de corrente e tensão
const int currentSensorPin = A0;
const int voltageSensorPin = A1;

// Variáveis para armazenar os valores medidos
float current = 0.0;
float voltage = 0.0;
float power = 0.0;

void setup() {
  // Inicializa o LCD
  lcd.begin();
  lcd.backlight();

  // Configura os pinos do sensor como entrada
  pinMode(currentSensorPin, INPUT);
  pinMode(voltageSensorPin, INPUT);

  // Mensagem inicial no LCD
  lcd.setCursor(0, 0);
  lcd.print("Energy Monitor");
  delay(2000);
  lcd.clear();
}

void loop() {
  // Lê os valores dos sensores
  int currentReading = analogRead(currentSensorPin);
  int voltageReading = analogRead(voltageSensorPin);

  // Converte as leituras para valores reais
  current = (currentReading - 512) * 0.185; // Conversão para amperes
  voltage = voltageReading * (5.0 / 1023.0) * 220; // Conversão para volts

  // Calcula a potência
  power = current * voltage;

  // Exibe os valores no LCD
  lcd.setCursor(0, 0);
  lcd.print("I: ");
  lcd.print(current);
  lcd.print(" A");

  lcd.setCursor(0, 1);
  lcd.print("V: ");
  lcd.print(voltage);
  lcd.print(" V");

  lcd.setCursor(8, 1);
  lcd.print("P: ");
  lcd.print(power);
  lcd.print(" W");

  delay(1000);
}

Código de Controle de Energia

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int relayPin = 7;
const int currentSensorPin = A0;
const int voltageSensorPin = A1;

float current = 0.0;
float voltage = 0.0;
float power = 0.0;
float powerThreshold = 100.0; // Limite de potência para desligar o dispositivo

void setup() {
  lcd.begin();
  lcd.backlight();

  pinMode(relayPin, OUTPUT);
  pinMode(currentSensorPin, INPUT);
  pinMode(voltageSensorPin, INPUT);

  lcd.setCursor(0, 0);
  lcd.print("Energy Control");
  delay(2000);
  lcd.clear();
}

void loop() {
  int currentReading = analogRead(currentSensorPin);
  int voltageReading = analogRead(voltageSensorPin);

  current = (currentReading - 512) * 0.185;
  voltage = voltageReading * (5.0 / 1023.0) * 220;

  power = current * voltage;

  lcd.setCursor(0, 0);
  lcd.print("I: ");
  lcd.print(current);
  lcd.print(" A");

  lcd.setCursor(0, 1);
  lcd.print("V: ");
  lcd.print(voltage);
  lcd.print(" V");

  lcd.setCursor(8, 1);
  lcd.print("P: ");
  lcd.print(power);
  lcd.print(" W");

  if (power > powerThreshold) {
    digitalWrite(relayPin, LOW); // Desliga o dispositivo
    lcd.setCursor(0, 1);
    lcd.print("Dispositivo OFF");
  } else {
    digitalWrite(relayPin, HIGH); // Liga o dispositivo
    lcd.setCursor(0, 1);
    lcd.print("Dispositivo ON ");
  }

  delay(1000);
}

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.