Differenze tra le versioni di "Gruppo Meteo/Pluviometro"

Da raspibo.
Jump to navigation Jump to search
(Creata pagina con '= Note di progettazione di un pluviometro con interfaccia I2C = Se rimaniamo nell'ambito del "Tipping bucket rain gauge" direi che tutti mettono a disposizione uno switch per...')
 
 
(9 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
 
= Note di progettazione di un pluviometro con interfaccia I2C =
 
= Note di progettazione di un pluviometro con interfaccia I2C =
  
Se rimaniamo nell'ambito del "Tipping
+
== Pluviometro gravimetrico ==
bucket rain gauge" direi che tutti mettono a disposizione uno switch per
+
=== Note ===
il conteggio e cambiare pluviometro non dovrebbe essere critico.
+
==== Celle di carico ====
 +
* https://www.interfaceforce.com/support/technical-library/
 +
* https://electronics.stackexchange.com/questions/106143/does-this-loadcells-creep-mean-that-i-can-not-let-a-constant-load-on-the-loadce
  
Bisognerebbe parametrizzare superficie dell'imbuto e volume dello scatto
+
==== Amplificatore ====
come parametri a compilation time
+
* https://github.com/sparkfun/HX711-Load-Cell-Amplifier
 +
* https://www.homotix.it/vendita/celle-carico/amplificatore-per-celle-carico-con-hx711
 +
* https://homotix_it.e-mind.it/upld/repository/File/hx711.pdf
  
Qui pensavamo di utilizzare un piccolo microcontroller (arduino nano o
+
==== Libreria ====
simili) con batteria in tampone per effettuare il conteggio (con
+
* https://github.com/bogde/HX711
attenzione alle funzioni "antirimbalzo") e mettere a disposizione i dati
 
su bus I2C.
 
L'host dovrebbe quindi fare due operazioni tramite I2C:
 
a) richiedere il conteggio da ultimo reset
 
b) richiedere il reset del conteggio fino al momento dell'operazione a)
 
  
questa sequenza per non perdere nessun evento considerando quindi a) e b)
+
== Pluviometro a bascula ==
come una singola transazione
 
  
In questo modo la cumulata sarebbe sempre garantita vista la presenza
+
Se rimaniamo nell'ambito del "Tipping bucket rain gauge"
della batteria in tampone.
+
([http://it.wikipedia.org/wiki/Pluviometro#Pluviografi_a_doppia_vaschetta_basculante pluviometro a bascula]) tutti i modelli mettono a disposizione uno switch per
 +
il conteggio delle "basculate" e trasformarlo in un pluviometro I2C non è critico.
 +
 
 +
Maggiore attenzione alle funzioni antirimbalzo fa fatta per gli interruttori reed piuttosto che quelli a effetto di hall.
 +
 
 +
Qui abbiamo utilizzato un piccolo microcontroller (arduino nano o
 +
microduino o simili) per mettere a disposizione i dati su bus I2C.
 +
 
 +
L'host ha a disposizione queste operazioni tramite I2C:
 +
* START    : reset del contatore di basculate (da effettuare all'avvio)
 +
* STOP      : prepara alla lettura del contatore rendendo disponibile l'ultimo stato nel buffer di lettura
 +
* STARTSTOP : effettua uno START e uno STOP in modo atomico
 +
 
 +
Una sequenza di lettura vede quindi:
 +
al boot:
 +
* START (setup)
 +
 
 +
per ogni lettura per valore incrementale parziale:
 +
* STARTSTOP    (prepare)
 +
* lettura del conatore (get)
 +
 
 +
in alternativa
 +
 
 +
per ogni lettura per valore incrementale totale:
 +
* STOP    (prepare)
 +
* lettura del conatore (get)
 +
 
 +
Questa sequenza permette di non perdere nessun evento.
 +
In questo modo la cumulata sarebbe sempre garantita particolrmente se verrà prevista la presenza
 +
di una batteria tampone.
 +
 
 +
L'alimentazione può essere fatta tramite lo stesso cavo quadripolare I2C
 +
 
 +
Una funzione interessante da implementare potrebbe essere quella di calibrazione del pluviometro tutta da sviluppare con parametri da salvare in eeprom.
  
 
L'utilizzo di un RTC locale e un firmware leggermente più sofisticato
 
L'utilizzo di un RTC locale e un firmware leggermente più sofisticato
Riga 30: Riga 61:
 
Alcuni RTC hanno una batteria in tampone che potrebbe essere utilizzata anche per
 
Alcuni RTC hanno una batteria in tampone che potrebbe essere utilizzata anche per
 
alimentare il microcontroller.
 
alimentare il microcontroller.
 
L'alimentazione potrebbe essere fatta tramite il cavo quadripolare I2C
 
  
 
Una evoluzione ancora piu' sofisticata per la gestione energetica potrebbe essere quella di mettere il microcontroller in modalità sleep di risparmio energetico risvegliato dall'interrupt del contatto del pluviometro o dall'alimentazione sul bus I2C; in questo modo i consumi potrebbero essere minimi e permettere lunghi periodi di funzionamento stand alone.
 
Una evoluzione ancora piu' sofisticata per la gestione energetica potrebbe essere quella di mettere il microcontroller in modalità sleep di risparmio energetico risvegliato dall'interrupt del contatto del pluviometro o dall'alimentazione sul bus I2C; in questo modo i consumi potrebbero essere minimi e permettere lunghi periodi di funzionamento stand alone.
 
In una fase iniziale di sviluppo invece dell'interfaccia di comunicazione I2C potrebbe essere utilizzata la porta seriale con jsonrpc molto piu' facile da consifurare e diagnosticare.
 

Versione attuale delle 14:54, 4 mar 2019

Note di progettazione di un pluviometro con interfaccia I2C

Pluviometro gravimetrico

Note

Celle di carico

Amplificatore

Libreria

Pluviometro a bascula

Se rimaniamo nell'ambito del "Tipping bucket rain gauge" (pluviometro a bascula) tutti i modelli mettono a disposizione uno switch per il conteggio delle "basculate" e trasformarlo in un pluviometro I2C non è critico.

Maggiore attenzione alle funzioni antirimbalzo fa fatta per gli interruttori reed piuttosto che quelli a effetto di hall.

Qui abbiamo utilizzato un piccolo microcontroller (arduino nano o microduino o simili) per mettere a disposizione i dati su bus I2C.

L'host ha a disposizione queste operazioni tramite I2C:

  • START : reset del contatore di basculate (da effettuare all'avvio)
  • STOP : prepara alla lettura del contatore rendendo disponibile l'ultimo stato nel buffer di lettura
  • STARTSTOP : effettua uno START e uno STOP in modo atomico

Una sequenza di lettura vede quindi: al boot:

  • START (setup)

per ogni lettura per valore incrementale parziale:

  • STARTSTOP (prepare)
  • lettura del conatore (get)

in alternativa

per ogni lettura per valore incrementale totale:

  • STOP (prepare)
  • lettura del conatore (get)

Questa sequenza permette di non perdere nessun evento. In questo modo la cumulata sarebbe sempre garantita particolrmente se verrà prevista la presenza di una batteria tampone.

L'alimentazione può essere fatta tramite lo stesso cavo quadripolare I2C

Una funzione interessante da implementare potrebbe essere quella di calibrazione del pluviometro tutta da sviluppare con parametri da salvare in eeprom.

L'utilizzo di un RTC locale e un firmware leggermente più sofisticato potrebbe permettere di gestire su host un DB direttamente ad eventi o comunque un rain rate molto più risolto. Per non bruciare la eeprom il DB dovrebbe essere tutto in memoria ram e potrebbe essere utile l'uso di un round robin dove memorizzare time stamp e contatore.

Alcuni RTC hanno una batteria in tampone che potrebbe essere utilizzata anche per alimentare il microcontroller.

Una evoluzione ancora piu' sofisticata per la gestione energetica potrebbe essere quella di mettere il microcontroller in modalità sleep di risparmio energetico risvegliato dall'interrupt del contatto del pluviometro o dall'alimentazione sul bus I2C; in questo modo i consumi potrebbero essere minimi e permettere lunghi periodi di funzionamento stand alone.