Medidor de consumo de energia
+18
NIQUE
Diego Silva
kimi.caca
CARLOS DANIEL
maurocesar
Vivi187
sidney2099
NEYCMS
wilsonalves
andre.luiz
giliardmoura
fabiano.amorim
jonasferreira
rafaelhenrique
elvislrs
Mathkiller
Felipe_Marques
Admin
22 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
Medidor de consumo de energia
Livraria
https://github.com/openenergymonitor/EmonLib
Interface com o arduino:
Source code
- Código:
// EmonLibrary examples openenergymonitor.org, Licence GNU GPL V3
#include "EmonLib.h" // Include Emon Library
//#include "RTClib.h"
#include <avr/eeprom.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#define eeprom_read_to(dst_p, eeprom_field, dst_size) eeprom_read_block(dst_p, (void *)offsetof(__eeprom_data, eeprom_field), MIN(dst_size, sizeof((__eeprom_data*)0)->eeprom_field))
#define eeprom_read(dst, eeprom_field) eeprom_read_to(&dst, eeprom_field, sizeof(dst))
#define eeprom_write_from(src_p, eeprom_field, src_size) eeprom_write_block(src_p, (void *)offsetof(__eeprom_data, eeprom_field), MIN(src_size, sizeof((__eeprom_data*)0)->eeprom_field))
#define eeprom_write(src, eeprom_field) { typeof(src) x = src; eeprom_write_from(&x, eeprom_field, sizeof(x)); }
#define MIN(x,y) ( x > y ? y : x )
/*
* __eeprom_data is the magic name that maps all of the data we are
* storing in our EEPROM
*/
struct __eeprom_data {
double flash_kwhtotal;
};
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
//Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16
//RTC_DS1307 RTC; // Create an instance
EnergyMonitor emon1; // Create an instance
//Cria variaveis globais
double kwhTotal;
double vlreais;
unsigned long ltmillis, tmillis, timems, previousMillis;
char charBuf[30];
void setup()
{
Serial.begin(9600);
display.begin();
display.setContrast(37);
/*if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
}*/
//Theoretical CT sensor calibration
//CT Ratio / Burden resistance = (100A / 0.05A) / 64 Ohms = 50
emon1.current(1, 29.41); // Current: input pin, calibration for 24 Ohms
eeprom_read(kwhTotal, flash_kwhtotal);
previousMillis = millis();
// text display tests
/*display.clearDisplay();
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0,0);
display.println("Hello, world!");
display.setTextColor(WHITE, BLACK); // 'inverted' text
display.println(3.141592);
display.setTextSize(2);
display.setTextColor(BLACK);
display.print("0x"); display.println(0xDEADBEEF, HEX);
display.display();
delay(2000);*/
}
void loop()
{
//Calculate amount of time since last realpower measurment.
ltmillis = tmillis;
tmillis = millis();
timems = tmillis - ltmillis;
double Irms = emon1.calcIrms(1480); // Calculate Irms only
//Calculate todays number of kwh consumed.
//kwhTotal = kwhTotal + ((realPower/1000.0) * 1.0/3600.0 * (timems/1000.0));
//Calculate todays number of kwh consumed.
kwhTotal = kwhTotal + (((Irms*127.0)/1000.0) * 1.0/3600.0 * (timems/1000.0));
Serial.print("Watts: ");
Serial.println(Irms*127.0); // Apparent power
Serial.print("Current: ");
Serial.println(Irms); // Irms
Serial.print("kwhTotal: ");
printFloat(kwhTotal, 10);
Serial.println("");
//grava na memoria a cada 1 minuto
if ((millis() - previousMillis)>4000)
{
Serial.println("Gravando na EEprom");
eeprom_write(kwhTotal, flash_kwhtotal);
previousMillis=millis();
}
//convert double em string
dtostrf(kwhTotal, 8, 7, charBuf);
//Multiplica pelo valor kilowatt hora R$ 0.35 Reais
vlreais = kwhTotal * 0.35;
// text display tests
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0,0);
http://display.println("Hello, world!");
display.print("KW/h:");
display.println(charBuf);
display.setTextSize(1);
display.setTextColor(BLACK);
display.print("Consumo Watts:");
//dtostrf(Irms, 10, 8, charBuf);
display.print(Irms*126);
display.println("Watts:");
display.println("");
display.print("R$: ");
dtostrf(vlreais, 8, 7, charBuf);
display.print(charBuf);
display.display();
//delay(2500);
}
void printFloat(float value, int places) {
// this is used to cast digits
int digit;
float tens = 0.1;
int tenscount = 0;
int i;
float tempfloat = value;
// make sure we round properly. this could use pow from <math.h>, but doesn't seem worth the import
// if this rounding step isn't here, the value 54.321 prints as 54.3209
// calculate rounding term d: 0.5/pow(10,places)
float d = 0.5;
if (value < 0)
d *= -1.0;
// divide by ten for each decimal place
for (i = 0; i < places; i++)
d/= 10.0;
// this small addition, combined with truncation will round our values properly
tempfloat += d;
// first get value tens to be the large power of ten less than value
// tenscount isn't necessary but it would be useful if you wanted to know after this how many chars the number will take
if (value < 0)
tempfloat *= -1.0;
while ((tens * 10.0) <= tempfloat) {
tens *= 10.0;
tenscount += 1;
}
// write out the negative if needed
if (value < 0)
Serial.print('-');
if (tenscount == 0)
Serial.print(0, DEC);
for (i=0; i< tenscount; i++) {
digit = (int) (tempfloat/tens);
Serial.print(digit, DEC);
tempfloat = tempfloat - ((float)digit * tens);
tens /= 10.0;
}
// if no places after decimal, stop now and return
if (places <= 0)
return;
// otherwise, write the point and continue on
Serial.print('.');
// now write out each decimal place by shifting digits one by one into the ones place and writing the truncated value
for (i = 0; i < places; i++) {
tempfloat *= 10.0;
digit = (int) tempfloat;
Serial.print(digit,DEC);
// once written, subtract off that digit
tempfloat = tempfloat - (float) digit;
}
}
Re: Medidor de consumo de energia
Boa nt...
Esse código que esta em cima eh o mesmo q foi aplicado no arduino no video? quais sao os valores do capacitor?? E outra perguntinha esse power adapter seria pra q?? Logo e q o sensor sera instalado no outra porta analogica??
Esse código que esta em cima eh o mesmo q foi aplicado no arduino no video? quais sao os valores do capacitor?? E outra perguntinha esse power adapter seria pra q?? Logo e q o sensor sera instalado no outra porta analogica??
Felipe_Marques- Mensagens : 15
Data de inscrição : 09/05/2012
Re: Medidor de consumo de energia
O circuito do video não usa o power adapter, o codigoé exatamente o mesmo e o power adapter é usado pra medir tensão
Re: Medidor de consumo de energia
qual o valor dos capacitores? Vcs vao colocar o sensor de tensão tbm para vender? Abraço... Sabe quando chegará o sensor?
Felipe_Marques- Mensagens : 15
Data de inscrição : 09/05/2012
Re: Medidor de consumo de energia
Gostaria de saber qual é o display de lcd usado, preciso montar um desses com urgência.
Mathkiller- Mensagens : 1
Data de inscrição : 25/10/2012
Problemas com A leitura do sensor.
Amigo montei este circuito conforme a figura a cima,mas meu sensor sem estar ligado no circuito, o arduino me da uma leitura de 0,2A de corrente, você sabe o que deve ser feita para "retirar" esse erro?
abraço
abraço
elvislrs- Mensagens : 4
Data de inscrição : 13/01/2013
Medidor de consumo de energia
Olá!
Você poderia me mandar o esquema com o valor do capacitor e dos resistores usados no circuito do ct sensor,gostaria também de saber qual a função destes componentes.
Muito Grato pela sua atênção !!!
Você poderia me mandar o esquema com o valor do capacitor e dos resistores usados no circuito do ct sensor,gostaria também de saber qual a função destes componentes.
Muito Grato pela sua atênção !!!
rafaelhenrique- Mensagens : 1
Data de inscrição : 13/01/2013
Re: Medidor de consumo de energia
http://openenergymonitor.org/emon/buildingblocks/how-to-build-an-arduino-energy-monitor
Problemas com A leitura do sensor.
Admin escreveu:Mexe nos valores da Burden resistance
Amigo mais quais valores seria interessante colocar?Abraço
elvislrs- Mensagens : 4
Data de inscrição : 13/01/2013
Problemas com A leitura do sensor.
elvislrs escreveu:Admin escreveu:Mexe nos valores da Burden resistance
Amigo mais quais valores seria interessante colocar?Abraço
Você pode me informar um valor de resistência de Burden que posso colocar e uma calibração para zerar a leitura ??
Grato amigo
elvislrs- Mensagens : 4
Data de inscrição : 13/01/2013
Display
Olá,
Estou tentando montar esse projeto, e gostaria de saber se alguém tem o diagrama de conexão do display.
Estou usando o Arduino Uno + EmonTx Shield.
Grato
Estou tentando montar esse projeto, e gostaria de saber se alguém tem o diagrama de conexão do display.
Estou usando o Arduino Uno + EmonTx Shield.
Grato
jonasferreira- Mensagens : 1
Data de inscrição : 13/03/2013
Re: Medidor de consumo de energia
Amigo por favor poderia me dar uma ajuda. Fiz o circuito e mesmo sem está ligado o sensor ele continua me informando o consumo em watts , o kw/h o valor em reais etc. Se ele esta medindo o consumo ele não deveria parar de me mostrar o consumo?Será se fiz algo errado? Aparentemente o meu circuito está igual o da figura. Obrigado
fabiano.amorim- Mensagens : 1
Data de inscrição : 02/04/2013
Re: Medidor de consumo de energia
Admin escreveu:O circuito do video não usa o power adapter, o codigoé exatamente o mesmo e o power adapter é usado pra medir tensão
no caso da tensao, posso usar um trafo ac-ac 9v como no projeto , sem retifica?
giliardmoura- Mensagens : 3
Data de inscrição : 24/05/2013
Re: Medidor de consumo de energia
Admin escreveu:O circuito do video não usa o power adapter, o codigoé exatamente o mesmo e o power adapter é usado pra medir tensão
no caso da tensao, posso usar um trafo ac-ac 9v como no projeto , sem retifica?
giliardmoura- Mensagens : 3
Data de inscrição : 24/05/2013
Re: Medidor de consumo de energia
Admin escreveu:O circuito do video não usa o power adapter, o codigoé exatamente o mesmo e o power adapter é usado pra medir tensão
no caso da tensao, posso usar um trafo ac-ac 9v como no projeto , sem retifica?
giliardmoura- Mensagens : 3
Data de inscrição : 24/05/2013
Re: Medidor de consumo de energia
Os valores dos resistor que você usou sao iguais ao do site do openenergy?
você poderia explicar este trecho?
//CT Ratio / Burden resistance = (100A / 0.05A) / 64 Ohms = 50
emon1.current(1, 29.41); // Current: input pin, calibration for 24 Ohms
você poderia explicar este trecho?
//CT Ratio / Burden resistance = (100A / 0.05A) / 64 Ohms = 50
emon1.current(1, 29.41); // Current: input pin, calibration for 24 Ohms
andre.luiz- Mensagens : 2
Data de inscrição : 21/04/2013
Medidor de tensão continua e alterna
Pessoal estou a desenvolver um projeto com o arduino e preciso de um medidor de tensão continua e um de tensão alterna. Pois o medidor de corrente já encontrei.
Melhor ainda era existir um dispositivo que fizesse leitura de valores de tensão e corrente num só.
Alguem conhece alguma coisa.
Abraço
Melhor ainda era existir um dispositivo que fizesse leitura de valores de tensão e corrente num só.
Alguem conhece alguma coisa.
Abraço
wilsonalves- Mensagens : 2
Data de inscrição : 31/05/2013
Esquema para Display nokia
Prezados, alguem poderia fornecer esquematico para ligar o display nokia do exemplo. Estou usando o Arduino Mega 2560.Obrigado desde já.
NEYCMS- Mensagens : 5
Data de inscrição : 02/06/2013
Mederador apaga aqui pfv
gostaria que excluísse esse tópico pro favor!
Última edição por sidney2099 em Seg 14 Out - 19:03, editado 2 vez(es) (Motivo da edição : quero excluir)
sidney2099- Mensagens : 1
Data de inscrição : 11/06/2013
Idade : 40
Localização : Belém
Sensor de 45 A
O que quer medir sidney 2099???
Estou a implementar o de sensor de corrente de 45A-http://sensing.honeywell.com/index.php?ci_id=3108&la_id=1&pr_id=54672
A questão é o output do sensor em ves de ser tensão é Sink/Source existe algum problema na medição o código é basicamente como o Anterior mas com valores alterados???
Quem souber que me dê uma ajuda na implementação deste sensor sff
Cumprimentos
Estou a implementar o de sensor de corrente de 45A-http://sensing.honeywell.com/index.php?ci_id=3108&la_id=1&pr_id=54672
A questão é o output do sensor em ves de ser tensão é Sink/Source existe algum problema na medição o código é basicamente como o Anterior mas com valores alterados???
Quem souber que me dê uma ajuda na implementação deste sensor sff
Cumprimentos
wilsonalves- Mensagens : 2
Data de inscrição : 31/05/2013
Arduino
Olá gostaria de saber qual seria o codigo para enviar as informações do consumo de energia do arduino para o computador sem ser necessario visualizar no display. E mais uma coisa o arduino trabalha com data?
Vivi187- Mensagens : 1
Data de inscrição : 30/09/2013
Re: Medidor de consumo de energia
Bom dia, estou usando um resistor de 33, qual os valores que coloco no código para calibrar?
maurocesar- Mensagens : 2
Data de inscrição : 13/11/2013
Página 1 de 2 • 1, 2
Tópicos semelhantes
» Medidor de consumo kw
» KWTotal fica sempre com o valor 0,000000000000
» Montagem do projeto medidor de energia eletrica
» Energia + Ethernet Shield + LCD
» KWTotal fica sempre com o valor 0,000000000000
» Montagem do projeto medidor de energia eletrica
» Energia + Ethernet Shield + LCD
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos
|
|