[SOLVED] Da watt a wh

Scusate se non è proprio una domanda strettamente legata ad Arduino. Ho creato un circuito con Arduino ovviamente che misura la corrente che passa in un'utenza tramite dei trasformatori amperometrici a pinza. Arduino mi trasmette sulla seriale la corrente che trasformo in watt conoscendo ovviamente la tensione.
Considerando però che la corrente dell' utenza varia e di conseguenza i watt, come ricavo i wh ?
Nel senso che se avessi un consumo costante ad esempio di 800w basta sapere per quanto tempo sta acceso l'apparecchio.
Ma se la corrente continua a cambiare? Esempio: mia moglie asciuga i capelli per 5 minuti, ma magari accende i phon 10 secondi poi lo spegne per altri 30. Poi lo riaccende con velocità diversa e lo rispegne. Quanti kWh ha consumato il phon?

Precisazione per i moderatori: non lavoro direttamente con la 230v e non modifico nessun impianto.

Per istanti di tempo abbastanza piccoli l'assorbimento è costante, l'energia consumata è la somma di tutte queste fettine di consumo. Mille watt per un secondo sono 0.2778 Wh (1000 joule) di energia consumata.

Quindi dici di convertire ogni secondo i watt istantanei in wh e poi sommare il tutto?

Per evitare che sul lungo periodo gli arrotondamenti floating point causino grossi errori, io accumulerei direttamente i joule (1W = 1J/s). Se leggi esattamente una volta al secondo basta semplicemente sommare le letture dei watt usando solo numeri interi. Alla fine dividi per 3600 e hai i Wh, o dividi per 3600000 e hai i kWh. L'importante è che la lettura avvenga con periodo esatto di un secondo.

Dipende anche dalla frequenza di campionamento.
Il sistema ti invia una misura ogni secondo?

Quanti dati conservi in RAM sul PC e quanti ne passi su file?

EDIT

Claudio, abbiamo scritto la stessa cosa.

Visto che parliamo di alternata devi misurare comunque molto piú spesso di 1 volta al secondo per poter ricavare la corrente /tensione effettiva sommare quel valor regolarmente alla variabile sommaPotenza.

Ciao Uwe

Prima di tutto grazie a tutti.
Per ora non ho definito ancora dei tempi precisi per le letture. L'unica cosa che ho fatto è leggere il dato analogico sul pin A0 20 volte con pausa 1ms e poi uso il valore massimo che dovrebbe corrispondere al picco. Usando un raddrizzatore ho solo valori positivi.
Poi il ciclo si ripete.
Qui sta la difficoltà. Campiono un periodo intero e trasmetto il valore. Poi dopo quanto rifaccio i 20 campioni?
Vorrei anche precisare che questo esercizio non è né per fini commerciali ne per terzi. Serve solo a me per capire l'ordine di grandezza dei miei consumi anche spannometricamente. Non andrei mai a contestare una bolletta perché il mio circuito ha misurato 500wh al mese in meno. È solo per avere un'idea mia.

Usando un raddrizzatore ho solo valori positivi.

Su un raddrizzatore a ponte perdi fino 1,4V. Devi usare un raddrizzatore costruito con un amplificatore operazionale.

Hai guardato quanto costa un prodotto commerciale?

Ciao Uwe

In realtà devi leggere tensione e corrente e fare il prodotto almeno ogni millisecondo, se il carico non è puramente resistivo!

uwefed:
Su un raddrizzatore a ponte perdi fino 1,4V. Devi usare un raddrizzatore costruito con un amplificatore operazionale.

Hai guardato quanto costa un prodotto commerciale?

Ciao Uwe

Ciao Uwe, non e' l'hardware e come ottenere i watt che sono il problema. Questo l'ho gia' implementato e comparato con un wattmetro digitale della sorgenia. I valori sono comparabili con un minimo di scarto, ma come gia' detto non e' la precisione che mi interessa.

Sto pensando a come una volta ottenutti i watt e trasmessi ad un pc (ogni X tempo), elaborarli per ricavare i wh

Le letture su A0 sono all'interno di un loop di una scheda mega che fa altre cose, quindi non so come garantire che le letture siano fatte a tempi regolari e costanti

Ciao, con orgoglio e un po di soddisfazione personale (che poi è quello che mi spinge a fare questi progettini piuttosto che comprare un prodotto commerciale con pochi euro) ho trovato una soluzione interessante, magari non la migliore.
Praticamente il mio arduino mega, mentre fa anche altre cose nel ciclo loop, legge per 20 volte ogni 1ms il valore dal TA opportunamente condizionato. Ne ricava il massimo e lo passa via seriale al PC.
Il PC somma i dati ricevuti in una variabile finché non passano 1000ms dopodiché calcola la media dei valori ricevuti e divide tale media per 3600. Questo valore va a incrementare i Wh totali.
Il timer si azzera e il ciclo del pc si ripete indipendentemente da quante letture arduino riesca a trasmettere.
In pratica come suggerito da Claudio sommo il consumo di ogni secondo.

Come cambio il titolo con SOLVED?

edita il tuo primo post e potrai cambiare anche il titolo

Io ti consiglierei di fare le somme su Arduino e di mandare al pc solo i valori finali più raramente.
La trasmissione seriale rallenta e farla ad ogni lettura, cioè moltissime volte in un secondo, può portare ad inutili rallentamenti per le altre routine eseguite da Arduino.
Potresti sommarti le letture e un contatore delle letture e ogni tot tempo (secondi o anche minuti salvandoti il miilis dell'inizio raccolta dati) inviare il totale al pc che sarebbe già il consumo in un certo lasso di tempo.
Il pc avrebbe pochi dati nell'unità di tempo e dovrebbe solo sommare.

ma perchè re-inventare l'acqua calda? esiste una vasta letteratura qui sul forum su un progetto di energy monitor affidabile preciso e che tiene conto sia del fattore di potenza che delle possibili variazioni della tensione di rete....
vabbe', comunque, se lo OP è contento............

maubarzi:
Io ti consiglierei di fare le somme su Arduino e di mandare al pc solo i valori finali più raramente.
La trasmissione seriale rallenta e farla ad ogni lettura, cioè moltissime volte in un secondo, può portare ad inutili rallentamenti per le altre routine eseguite da Arduino.
Potresti sommarti le letture e un contatore delle letture e ogni tot tempo (secondi o anche minuti salvandoti il miilis dell'inizio raccolta dati) inviare il totale al pc che sarebbe già il consumo in un certo lasso di tempo.
Il pc avrebbe pochi dati nell'unità di tempo e dovrebbe solo sommare.

Ho pensato alla tua soluzione ed è ragionevole ma mi perderei l'informazione dei watt istantanei. Potrei vedere il progressivo dei wh ma era bello avere il colpo d'occhio anche dell'istantaneo.
Però grazie. Mi hai messo la pulce nell'orecchio che la trasmissione rallenta.