Gruppo Meteo/Pluviometro

Da raspibo.

Note di progettazione di un pluviometro con interfaccia I2C

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.

Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti