Collaudato con successo il sistema di segnalazione eccesso produzione tramite comunicazione paramiko con altro raspberry. Ora mi leggerò la guida alla programmazione dell'esp8266. Lunedì, poi, riceverò ennesimo Raspberry zero che collegherò al display per avere un riepilogo sinottico dei vari sensori. Credo che, alla fine, verrà qualcosa di abbastanza professionale. Nel frattempo sto raccogliendo i dati amperometro/inverter/ina219 per affinare il grafico che ho già arricchito con un centinaio di punti, sufficienti a delineare una curva esponenziale abbastanza regolare. Direi che posso essere soddisfatto, grazie al vostro aiuto.
Bene; quale SW hai utilizzato per l'ina219?
Nel frattempo mi sono arrivati il toroide ed un paio di moduli. Sul toroide ho cominciato a verificare la linearità della risposta in funzione dei carichi, utilizzando un approccio diverso: a parità di carico (in effetti sono 3, 96, 115 e 160 W), dopo aver preso ed annotato la corrente assorbita (tramite la pinza amperometrica) e tensione CA restituita dal toroide (tester digitale) ho aumentato il numero di spire, portandola da 1 (cavo passante) a 3 e successivamente a 5 (quindi da 160 w a 480 e 800 W). La risposta in tensione è stata lineare: il valore misurato con una spira è stato moltiplicato per 3 e 5, con leggerissime differenze, probabilmente dovute al fatto che il carico non è resistivo ma induttivo e del posizionamento del punto di misura. Appena possibile proverò con carichi maggiori sino ad arrivare ai 6KW.
30/08/2019, 10:27 (Questo messaggio è stato modificato l'ultima volta il: 30/08/2019, 10:35 da ippogrifo.)
PS
La risposta del toroide è lineare (max 2-3% di errore nella lettura) sino a 31,12 A AC. Verificato con carico resistivo di 3,12 A ed aumentando il numero di spire da 1 a 10. Con il carico iniziale di 3,12 A, l'uscita in alternata è 106 mV. Aggiungendo una spira l'uscita AC aumenta di circa 106/107 mV e così via. A 31,15 A, l'uscita e di circa 1046 mV.
La non linearità, pertanto, è molto probabilmente dovuta al condensatore: la carica di un condensatore è esponenziale, e si possono considerare aver raggiunto la max carica dopo 6-7 costanti di tempo.
Il sw che ho utilizzato per l'INA 219 è quello della adafruit (https://cdn-learn.adafruit.com/downloads...eakout.pdf). Non so se questo https://www.rototron.info/raspberry-pi-ina219-tutorial/ che pure ho provato sia diverso. Ho letto discussioni circa la validità di altri sw ma non mi sono voluto imbarcare in troppe variabili. Sto facendo il confronto della lettura comparandola con quella dell'inverter (ABB UNO) e dell'OWL intuition che ho acquistato tempo fa verificando che i risultati sono sovrapponibili. Il che conferma sul campo quanto da te constatato circa la buona linearità della lettura del sistema complessivo. Ho notato che, quando la corrente supera un certo valore ( ma non sempre ), compare il seguente msg :Secsh channel 16 open FAILED: open failed: Administratively prohibited. Non ho approfondito la causa perché, stranamente, le letture pare non ne ritentano. Credo, però, che sia indispensabile capirne causa e rimedi. Debbo mettere ancora a punto qualcosa del sistema (integrandolo con altro raspberry per visualizzazione dati) e poi gradirei le dritte di chi conosce python meglio di me (cioè chiunque). Infine, poiché a me interessano la produzione (e il consumo) giornalieri con dettaglio diciamo a 30 minuti penso di sommare watt/minuto che poi moltiplicherei per 30 supponendo che nell'arco di un minuto il consumo non cambi significativamente e che, comunque, gli errori tenderebbero ad annullarsi. Si può fare di meglio?
30/08/2019, 13:30 (Questo messaggio è stato modificato l'ultima volta il: 30/08/2019, 13:31 da ippogrifo.)
Al momento sto testando il SW di "rototron" o meglio la libreria che propone e che devo dire trovo veramente completa, in grado di gestire tutti i registri dell'ina219 (su Pi4, con esclusione di una funzione che non funzionerebbe). Sto aspettando l'arrivo dei diodi per completare il circuito di rilevamento e fare le verifiche. E' molto probabile che la segnalazione rticevuta faccia riferimento ad un possiibile overhead di qualche parametro; sicuramente va verificata la causa. Per quanto riguarda l'ottimizzazione del codice, se lo pubblichi sul sito, commentato, sicuramente qualcuno ti potrà dare una mano. Se certissimo della linearità delle letture il tuo ragionamento no fa una piega; ma a scanso di "equivoci" io farei una lettura ogni dieci secondi, incrementando quindi la variabile e poi dividendola per il numero delle letture nei 30 min (in altre parole una semplice media). Questo potrebbe compensare eventuali assorbimenti momentanei (no, non credo che gli errori si possano annullare senza una motivazione fisica rilevata).
Buongiorno. Io avevo installato il sw della rototron e dopo sono passato a quello della adafruit. Non ho riscontrato differenze. Tu li hai provati entrambi? Per quanto riguarda la risposta dell'INA 219 io ho verificato una non linearità (o, meglio, una forte curva esponenziale) sui valori bassi per poi passare ad un andamento abbastanza lineare. Allego il grafico. La mia cervellotica ipotesi farebbe ricadere l'anomalia sul diodo che, provocando una caduta di tensione, taglierebbe i valori minimi per poi diventare ininfluente al crescere della corrente. Che ne pensi? Comunque attendo tue più accurate misurazioni e deduzioni. D'altra parte, poiché la corrente massima misurabile è di 32 mV, ciò potrebbe non essere uno svantaggio perché è meglio comprimere i valori di prelievo modesti che quelli più elevati.
Al momento sto utilizzando, ma come test minimale, la libreria indicata da rototron e dopo una verifica dell'altra libreria, mi sembrano molto simili. Ho ricevuto qesta mattina i diodi ed ho quindi montato il tutto per le verifiche, anche utilizzando l'oscilloscopio per vdere cosa avviene nella realtà: la tua ipotesi di non linearità del diodo è giusta con resistenze di carico di basso valore (purtroppo nel datasheet del diodo non erano presenti i grafici con correnti inferiori ai 10 mA). Proverò quindi con resistenze (o trimmer multigiro, dell'ordine dei 10 Koms) per verificare se la partenza della curva, da te riportata, può migliorare (comunque è un ottimo risultato, visto che per i maggiori assorbimenti il grafico mostra un andamento lineare)
(31/08/2019, 13:21)ippogrifo Ha scritto: (comunque è un ottimo risultato, visto che per i maggiori assorbimenti il grafico mostra un andamento lineare)
Sono soddisfatto. Ma sono convinto si possa migliorare. L'apparato che ho in funzione (owl intuition) rileva correnti anche dell'ordine di poche decine di watt e funziona ugualmente con due toroidi. Quello che mi ha fatto decidere ad implementare questo apparato è l'impossibilità con l'attuale di gestire i dati a piacimento. Aspetto quindi le tue conclusioni per affinare oltre le aspettative le prestazioni del mio apparato. Ho messo in funzione un display da 3,5 " su un altro raspberry. Ora non mi resta che visualizzare dati e comandi su questo piccolo schermo. Ma...una domanda banale. Come si fa? io visualizzo il logo del raspi con una bella strada, ma ora? ci sono programmi che consentono di manipolare finestre con dati e pulsanti per creare una o più finestre personalizzate?
Al momento non ho il secondo toroide per fare le prove che ho in mente. Una migliore linearità si ottiene con una resistenze di carico (in parallelo al condensatore) di valore elevato, ma la misurazione diventa instabile a causa delle interferenze ambientali (l'ingresso del modulo, senza la resistenza da 0,1 ohm è ad alta impedenza), quindi dopo tutta una serie con divesi valori mi sono fermato ad una resistenza di 2 Kohms e condensatore da 100 uF. Farò ulterriori prove all'arrivo dei trimmer. Per quanto rigurda la realizzazione di interfacce grafiche esistono delle librerie (e/o moduli) che permettono la creazione di quanto necessita. Non saprei, però, cosa indicarti.
(31/08/2019, 18:53)ippogrifo Ha scritto: Una migliore linearità si ottiene con una resistenze di carico (in parallelo al condensatore) di valore elevato, ma la misurazione diventa instabile a causa delle interferenze ambientali (l'ingresso del modulo, senza la resistenza da 0,1 ohm è ad alta impedenza), quindi dopo tutta una serie con divesi valori mi sono fermato ad una resistenza di 2 Kohms e condensatore da 100 uF. Farò ulterriori prove all'arrivo dei trimmer.
io ho posto in parallelo a ciascun condensatore un trimmer multigiri da 10 kohm. Il problema è che se mantieni una resistenza elevata superi il valore limite dell'integrato per cui ti va out of range. l'alternativa, qualora interessasse tutta le scala dei valori, potrebbe essere quella di realizzare un secondo circuito in parallelo al primo, settato con resistenza elevata, per le letture di basso valore. Ma ci deve essere una soluzione più elegante in quanto, ripeto, il mio owl intuition rileva con buona accuratezza sia correnti minime che elevate. Che sia questione di librerie o di integrati non saprei. sono comunque curioso di conoscere i tuoi risultati.