Go Down

Topic: openenergymonitor ottimizzato per l'italia (Read 5807 times) previous topic - next topic

AlexP1

Buongiorno.
Da quando ho scoperto arduino vi ho tempestato di domande su decine di progetti diversi... Procedono tutti su binari paralleli, magari lentamente, per motivi lavorativi però piano piano riuscirò... YES I CAN! XD

La mia domanda. Qualcuno ha mai ottimizzato il progetto openenergymonitor.org(tra l'altro gettonatissimo) per quello che potrebbero essere i comuni impianti domestici italiani da 3KWh?
Io leggo molto, partendo dal progetto enerduino, passando per ArdEmon, sono finito per fissarmi su openenergymonitor. Purtroppo molte delle nozioni lette non mi appartengono, soprattutto potenze, sfasamenti, coefficenti... :smiley-eek:

Io pensavo di poter costruire un energymonitor, che desse in uscita i soli valori che poi trovo in bolletta per intenderci, semplice come enerduino ma più preciso e che possa dare il consumo reale di corrente e non quello conteggiato dal contatore.
Magari si potrebbe anche fare un parallelo, tra enerduino e openenergymonitor per rendersi conto delle differenze.
Il primo problema è stato il collegamento del sensore CT, ho trovato due collegamenti, quello "originale" del sito openenergymonitor.org(che credo usi un partitore per rialzare la parte negativa), e un altro metodo letto qui sul forum che usa un amplificatore operazionale.

Qual'è il sistema migliore?

Questo codice potrebbe andare bene con entrambi i metodi(operazionale o partitore)?

Code: [Select]
//Measuring AC mains energy use the non-invasive current transformer method
//Sketch calculates - Irms and Apparent power. Vrms needs to be set below.
//OpenEnergyMonitor.org project licenced under GNU General Public Licence
//Author: Trystan Lea

   //For analog read
   double value;

   //Constants to convert ADC divisions into mains current values.
   double ADCvoltsperdiv = 0.0048;
   double VDoffset = 2.4476; //Initial value (corrected as program runs)

   //Equation of the line calibration values
   double factorA = 15.2; //factorA = CT reduction factor / rsens
   double Ioffset = -0.08;
     
   //Constants set voltage waveform amplitude.
   double SetV = 230.0;

   //Counter
   int i=0;

   int samplenumber = 4000;

   //Used for calculating real, apparent power, Irms and Vrms.
   double sumI=0.0;

   int sum1i=0;
   double sumVadc=0.0;

   double Vadc,Vsens,Isens,Imains,sqI,Irms;
   double apparentPower;
   
void setup()
{
  Serial.begin(115200);
}

void loop()
{
   value = analogRead(0);
   
   //Summing counter
   i++;

   //Voltage at ADC
   Vadc = value * ADCvoltsperdiv;

   //Remove voltage divider offset
   Vsens = Vadc-VDoffset;

   //Current transformer scale to find Imains
   Imains = Vsens;
                 
   //Calculates Voltage divider offset.
   sum1i++; sumVadc = sumVadc + Vadc;
   if (sum1i>=1000) {VDoffset = sumVadc/sum1i; sum1i = 0; sumVadc=0.0;}

   //Root-mean-square method current
   //1) square current values
   sqI = Imains*Imains;
   //2) sum
   sumI=sumI+sqI;

   if (i>=samplenumber)
   { 
      i=0;
      //Calculation of the root of the mean of the current squared (rms)
      Irms = factorA*sqrt(sumI/samplenumber)+Ioffset;

      //Calculation of the root of the mean of the voltage squared (rms)                     
      apparentPower = Irms * SetV;

      Serial.print(apparentPower);
      Serial.print("C");     
      Serial.print(SetV);
      Serial.print("D");
      Serial.print(Irms);
      Serial.print("E");

      //Reset values ready for next sample.
      sumI=0.0;

   }
}

Scusate se mi sono dilungato e grazie.
Alessandro.

CH1980

Il metodo da te postato non è per nulla preciso: il voltaggio della linea e settato nel software e non misurato, così come lo sfasamento. Questo introduce un errore di misura molto pesante specie in presenza di carichi fortemente induttivi (motori / compressori / lampade con reattori) e per misure di consumi relativamente piccoli...
Ho visto altri progetti che misurano anche la tensione (con un trasformatore) e calcolano lo sfasamento via software (anzichè settare un valore arbitrario) che comunque hanno bisogno di essere calibrati con un altro misuratore per essere abbastanza precisi.
Alla fine mi sono affidato a dei misuratori di kWh su barra DIN con uscita S0 (un uscita sulla quale leggi un impulso in tensione ogni 0,5Wh consumato che poi viene semplicemente conteggiato da arduino per darti il consumo istantaneo e totale del periodo che imposti). Purtroppo il mio progetto è un pelo più complesso ed ho dei problemi col software e col tempo a disposizione, perciò è in standby, altrimenti ti avrei passato il tutto gla pronto... Se vuoi dare un'occhiata:
http://arduino.cc/forum/index.php/topic,61547.msg444816.html#msg444816
Altrimenti puoi conteggiare con un fototransistor direttamente gli impulsi del tuo contatore (solitamente un impulso = 1Wh) e procedere in modo analogo a conteggiare e mediare nel tempo con arduino.
Sul forum trovi dei progetti con la funzione cerca.
Ciao

mnicolato

Ciao Alessandro

Ho realizzato con Arduino una cosa simile, sfruttando il lampeggio del led sul contatore ENEL, in cui ogni  1000 flash equivalgono a 1 KW consumato.

http://arduino.cc/forum/index.php/topic,69907.msg519370.html#msg519370


Ciao
Marco Nicolato

Testato

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

AlexP1

#4
Sep 11, 2011, 09:13 am Last Edit: Sep 11, 2011, 09:48 am by AlexP1 Reason: 1
Quando tutto sembrava perso, alla fine del tunnel si udì una voce... XD

Grazie per le risposte, ormai non ci speravo più.
La soluzione di lettura via "lampeggi" è stata quella che mi ha fatto venire l'idea, cercavo di migliorarla, se così si può dire, perchè i lampeggi restano comunque i WH che segna il contatore e non in realtà quelli consumati...Certo, non è che volevo smascherare truffe o robe del genere contro il gestore, però avere consapevolezza di quello che succede è sempre una buona cosa...
In più avrei qualche difficoltà con i cablaggi.

I due progetti nei link postati li avevo letti, molto interessanti e ben strutturati, molto belle anche le finiture del PowerDuino, sembra un prodotto commerciale(che sarebbe un complimento, attenzione... :) )

Valuterò il prodotto da quadro di cui mi hai parlato, per lo più che i miei arduini sono proprio messi lì dentro...
PS: questo modulo din, sarebbe come questo?
http://www.energiacentronord.com/public/documents/MIZManuale.pdf

Grazie. Best regards.
Alessandro.

AlexP1

Ho trovato questo:

http://www.energiasolare100.it/contatore-monofase-a-due-cavi-guida-din-con-uscita-impulsi-p-670.html

Collego 5V al suo ingresso e dovrebbe mandare in uscita un segnale impulsivo (da 5V??), quindi lo alimento direttamente con arduino e poi leggo l'uscita. L'uscita sarà compatibile con arduino, vero?

Ciao.

Testato

molto bello, sarebbe quello ch una volta chiamavamo "Contatorino", va in cascata al contatore enel, tipo se vuoi alimentare due appartamenti con un solo contatore enel metti due di questi, oppure uno e poi fai la sottrazione, e sai quanto ha consumato un contatore rispetto all'altro.

in pratica e' per eliminare il fotodiodo da mettere sul led dell'enel giusto ?

per interfacciarlo non vrai problemi, devi dargli a parte i 5V pero'
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

AlexP1


molto bello, sarebbe quello ch una volta chiamavamo "Contatorino", va in cascata al contatore enel, tipo se vuoi alimentare due appartamenti con un solo contatore enel metti due di questi, oppure uno e poi fai la sottrazione, e sai quanto ha consumato un contatore rispetto all'altro.

in pratica e' per eliminare il fotodiodo da mettere sul led dell'enel giusto ?

per interfacciarlo non vrai problemi, devi dargli a parte i 5V pero'

Si praticamente si evita il fototransistor/fotodiodo sul contatore e la lettura avviene in modo pulito, cioè controlli quanta corrente ha consumato veramente e non quella conteggiata dal contatore che si vocifera essere poco preciso...

Perchè devo alimentarlo a parte e non con i 5v di arduino?
Un altra domanda, ho trovato un prodotto equivalente della finder...Perchè costa 146€!!!!!

Lasciamo perdere il fatto che quello postato da me in cina lo vendono 10$, potrebbero esserci milioni di motivi per questo, ma una differenza così marcata da 26€ a 146€...

Ciao

Testato

per alimentazione a parte intendevo diversa dalla 230V :)
si i 5v di asrduino andranno bene, non ho visto i consumi, controlla per sicurezza.

per i prezzi bho, solite storie di marketing  ^_^
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

CH1980

Ciao Alex, per quanto riguarda il "contatorino" come ti hanno gia detto, gli applichi i 5V sul pin S0 e questo ti restituisce impulsi compatibili con arduino. Puoi utilizzare i 5V forniti dalla scheda arduino per questo scopo.
Per i prezzi, quelli cinesi magari non hanno le stesse certificazioni di quello finder e comunque i prodotti cinesi costano meno di quelli europei (hai presente quando compri un giubbetto in un negozio cinese e poi trovi lo stesso giubbetto in una boutique italiana? Dubito li troverai allo stesso prezzo...); la precisione dichiarata comunque dovrebe rispondere al vero in entrambi i casi, perciò a parità di precisione scegli il prezzo minore.
Ciao!

AlexP1

Sarà come dici riguardo i prodotti cinesi, io penso che continuando così finiremo per pagare in qualunque cosa un prezzo esorbitante solo di certificazioni...

Per curiosità, tu quale contaotre di energia hai scelto? Per averne presi 8, non credo ti sia convenuto comprare i finder, soprattutto per poi lasciarne due inutilizzati...

La precisione è importante, ma il prodotto del link mi sembra ok sotto quell'aspetto. E poi non ci dimentichiamo che ero partito col sistemino della pinza amperometrica....

Ciao e grazie  a tutti. :)

leo72


Sarà come dici riguardo i prodotti cinesi, io penso che continuando così finiremo per pagare in qualunque cosa un prezzo esorbitante solo di certificazioni...

Se preferisci avere prodotti pieni di metalli pesanti non dichiarati, se preferisci comprare chip clonati da quelli originali in package di plastica ricavata dalle bottiglie dell'acqua minerale, se preferisci avere condensatori e resistenze fatti dai contadini quando non raccolgono il riso, se preferisci avere un PCB fatto con il cartoncino bristol, se preferisci comprare prodotti costruiti in stabilimenti che non rispettano le minime norme di sicurezza ed ambientali, accomodati pure..... Nessuno ti vieta di continuare a comprare in Cina.  XD

CH1980

Alla fine, dato che mi servivano 6 contatorini, ho optato anche io per il made in china (andeli adm25sc) ma quoto in pieno ciò che dice Leo72. Quindi non voglio consigliarti di prendere per forza i cinesi...
Dovresti comunque riuscire a trovare prodotti UE sui 40 / 50€ cercando online. Se te ne serve solo uno magari puoi affrontare la spesa maggiore più serenamente. Poi fai tu!  $)
Ciao!

AlexP1

Ma alla fine quello del link chi mi dice che è questa cineseria esagerata? Può uno store italiano vendere un prodotto che non ha le certficazioni minime?

In ogni caso, io sono uno che compra dappertutto. USA, Giappone, Europa in generale... Chi direbbe che un notebook asus è una cineseria? Forse nessuno...

Sono contro l'arduino taroccato, però non mi vergogno di risparmiare 90€ su un contatorino perchè non ha la certificazione, perdonatemi ma non m sento in colpa.
Anche i famosi relè allo stato solido, li ho pagati niente confronto ad uno della finder, 20€ ciascuno!

Non mi riesce di convincermi.
Alessandro.

hal3000


Ma alla fine quello del link chi mi dice che è questa cineseria esagerata? Può uno store italiano vendere un prodotto che non ha le certficazioni minime?


Se il contatore lo usi per misure "ufficiali" deve essere certificato MID (ovvero Measuring Instruments Directive), se invece lo usi per scopo diciamo didatico puoi benissimo prendere quello cinese :D

Per quanta riguarda il collegamento, nei datasheet, da quello che ho visto consigliano di mettere una resistenza di pullup o pulldown sul piedino S0+/S0-.

Go Up