// Assumes a 10K@25℃ NTC thermistor connected in series with a 10K resistor.
#include <DHT.h>
#include "EmonLib.h"
// Define os pinos para os sensores
#define DHT_PIN_INTERNO 5 // Pino para o sensor interno
#define DHT_PIN_EXTERNO 4 // Pino para o sensor externo
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
#define Vrede 129 // define a tensão RMS da rede(valor lido com multimetro)
#define InputSCTGeral 18 // define o canal analógico para o sinal do SCT = pino 18
#define InputSCTExtrusor 19 // define o canal analógico para o sinal do SCT = pino 19
#define I_calibration 60 // fator de calibração da corrente - leia minhas dicas no tutorial
// Cria objetos para os sensores
DHT dhtInterno(DHT_PIN_INTERNO, DHT22);
DHT dhtExterno(DHT_PIN_EXTERNO, DHT22);
EnergyMonitor EnerMonitor; //Cria uma instancia da classe EnergyMonitor
double Corrente_Geral = 0 ;
double Corrente_Extrusor = 0 ;
float Tempo = 0;
void setup() {
Serial.begin(115200);
dhtInterno.begin();
dhtExterno.begin();
analogReadResolution(10);
pinMode(15, INPUT); //sensor ntc bico
pinMode(2, INPUT); //sensor ntc mesa
EnerMonitor.current(InputSCTGeral, I_calibration); // configura pino SCT e fator de calibração
EnerMonitor.current(InputSCTExtrusor, I_calibration); // configura pino SCT e fator de calibração
}
void loop() {
// Lê a temperatura e a umidade do sensor interno
float tempInterno = dhtInterno.readTemperature();
float umidInterno = dhtInterno.readHumidity();
int tempbico = analogRead (15);
int tempmesa = analogRead (2);
float celsiusbico = 1 / (log(1 / (1023. / tempbico - 1)) / BETA + 1.0 / 298.15) - 273.15;
float celsiusmesa = 1 / (log(1 / (1023. / tempmesa - 1)) / BETA + 1.0 / 298.15) - 273.15;
Corrente_Geral = EnerMonitor.calcIrms(1480); // calculo da corrente RMS
Corrente_Extrusor = EnerMonitor.calcIrms(1480); // calculo da corrente RMS
// Lê a temperatura e a umidade do sensor externo
float tempExterno = dhtExterno.readTemperature();
float umidExterno = dhtExterno.readHumidity();
// Exibe os valores no monitor serial
Serial.print("Sensor Interno - Temperatura: ");
Serial.print(tempInterno);
Serial.print(" °C, Umidade: ");
Serial.print(umidInterno);
Serial.println("%");
Serial.print("Sensor Externo - Temperatura: ");
Serial.print(tempExterno);
Serial.print(" °C, Umidade: ");
Serial.print(umidExterno);
Serial.println("%");
Serial.print("Temperatura Bico: ");
Serial.print(celsiusbico);
Serial.println(" ℃");
Serial.print("Temperatura Mesa: ");
Serial.print(celsiusmesa);
Serial.println(" ℃");
Serial.print("Corrente Geral: ");
Serial.print(Corrente_Geral);
Serial.println(" A");
Serial.print("Corrente Extrusor: ");
Serial.print(Corrente_Extrusor);
Serial.println(" A");
delay(1000); // Aguarda antes de ler novamente
}
/*
Medidor de Corrente e Energia com Arduino
Eletrogate 13 de setembro de 2017Atualizado em: 25 ago 20229 min
Introdução
Neste artigo vamos montar um medidor de energia CA (corrente alternada) usando o Arduino UNO.
Medidores de energia fazem parte do dia a dia de qualquer residência, prédio ou comércio.
Vários modelos de empresas tradicionais como a Clamper e Nansem estão disponíveis no mercado
com faixas de preço variadas.
Os componentes chave do medidor são os sensores de corrente e tensão. Dependendo da tecnologia
e das especificações de medição, o produto final pode ficar mais caro ou mais barato. Para essa
montagem vamos utilizar um sensor de corrente CA não invasivo 100A SCT-013.
O medidor de energia consiste basicamente em um sensor de corrente e um de tensão conectados a
um circuito microprocessado, que no caso é o Arduino UNO. Fazemos a leitura das duas variáveis
elétricas básicas e a partir delas determinamos a potência elétrica instantânea e a energia
consumida em um determinado intervalo de tempo, que é dado pela potência instantânea integrada
no período de tempo de medição.
Caso a potência elétrica seja constante, basta multiplicar a potência pelo tempo de consumo.
Assim, uma lâmpada de 100W ligada por 2 horas irá consumir 200 Wh(watt-hora). Caso a potência
elétrica seja dada por uma função, digamos p(t), a energia é calculada fazendo-se a integral
de p(t) no período de medição.
No nosso caso, vamos medir a potência instantânea a partir do sensor de corrente. A energia será
calculada por meio de um somatório (que na prática é o que uma integral faz). Assim, vamos
considerar um passo de integração de 1 segundos. Para cada passo vamos medir a potência elétrica
e encontrar a energia correspondente a esse intervalo e ir somando todos esses valores em uma
variável, que será apresentado na LCD.
Vamos apresentar em um display LCD os valores de corrente e energia calculada a partir do momento
que o Arduino é energizado.
Sobre o Autor
Vitor Vidal
Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura,
tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle,
desenvolvimento de projetos eletrônicos e sua estante de livros.
https://blog.eletrogate.com/medidor-de-corrente-e-energia-com-arduino-sensor-de-corrente-e-tensao/
*/