Misuriamo la velocità del vento con la uPLibrary

La versione 1.9 della uPLibrary si arricchisce di un altro managed driver per la gestione di un anemometro, strumento utilizzato per la rilevazione della velocità del vento. Il driver è generico, considerando il funzionamento comune per la maggior parte di tutti gli anemometri, ma nel mio caso ho effettuato i test utilizzando questo dispositivo.

7737.6710-WIND01_2A83196B

Quest’ultimo genera 4 impulsi al secondo al rilevamento di una velocità del vento pari a 10 Km/h; tali informazioni sono utili per determinare la velocità del vento reale contando gli impulsi in un intervallo di tempo che può essere impostato. Infatti, La classe Anemometerfornisce un costruttore i cui parametri sono i seguenti :

  • inPin : pin della board utilizzata ed a cui è collegato il segnale di output degli impulsi dell’anemometro;
  • calculatePeriod : periodo nell’ambito del quale il driver deve osservare e valutare la velocità del vento (il valore di default è 5000 ms);
  • referenceWindSpeed : velocità del vento di riferimento in Km/h (il valore di default è 10);
  • referencePulseForSecond : numero di impulsi per secondo di riferimento (il valore di default è 4);

Come si può osservare i valori di default del driver sono quelli relativi all’anemometro utilizzato per i test.

Al suo interno, la classe associa una InterruptPort al pin passato al costruttore ed in corrispondenza dell’event handler conta gli impulsi ricevuto dall’anemometro. Ad esso si aggiunge un Timer che, periodicamente sulla base del periodo fornito al costruttore, determina la velocità del vento in relazione degli impulsi contati. Tale valore è disponibile all’esterno della classe attraverso la proprietà WindSpeed. L’avvio ed il termine delle operazioni di rilevamento da parte del timer sono gestibili attraverso i metodi corrispondenti di Start() e Stop().

Anemometer anemometer = new Anemometer(Pins.GPIO_PIN_D0);
anemometer.Start();

while (true)
{
    Debug.Print("Wind speed = " + anemometer.WindSpeed);
    Thread.Sleep(1000);
}

Ricordo come sempre la disponibilità della libreria su Nuget !

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s