uPLibrary : un nuovo sensore di temperatura ed umidità

Inizio anno…la uPLibrary cresce e passa alla versione 1.9 !

Una delle nuove funzionalità aggiunte è il driver managed per il sensore di temperatura ed umidità SHT1X della Sensirion, che è disponibile in una comodissima breakout board della DFRobot.

1385.SHT1x_Humidity_a_50b6083927d83_397DE16D

Il protocollo di comunicazione previsto è un I2C non standard, per cui le classi del .Net Micro Framework dedicate all’I2C sono inutilizzabili. In questo caso, l’unica soluzione è il bit banging, attraverso il quale i segnali data e clock vanno pilotati direttamente da software. La classe implementata SHT1X mette a disposizione un costruttore al quale passare i due pin utilizzati per i segnali suddetti oltre alla tensione di alimentazione fornita al sensore. Quest’ultima informazione è necessaria per l’applicazione di alcune formule di compensazione per il calcolo del valore reale di temperatura ed umidità a partire dai dati letti dal sensore. I metodi esposti all’esterno sono banalmente i seguenti :

  • ReadTemperature() : fornisce la temperatura rilevata, sulla base dell’unità di misura passata come parametro;
  • ReadRelativeHumidity() : fornisce il valore dell’umidità relativa (in valore percentuale);

L’utilizzo del driver è pressoché immediato e mostrato di seguito con un semplice codice di esempio, utilizzando la scheda Netduino e collegando i segnali DATA e CLOCK del sensore rispettivamente ai pin digitali D0 e D1 della board. Ovviamente, è necessario anche il collegamento della massa (GND) e dell’alimentazione (VCC) in questo caso a 3,3 V.

double temp, humidity;
SHT1X sht1x = new SHT1X(Pins.GPIO_PIN_D0, Pins.GPIO_PIN_D1, SHT1X.Voltage.Vdd_3_5V);

while (true)
{
    temp = sht1x.ReadTemperature(SHT1X.TempUnit.Celsius);
    humidity = sht1x.ReadRelativeHumidity();
    Debug.Print("Temp = " + temp + " Humidity =  " + humidity);
    Thread.Sleep(1000);
}

Come sempre la libreria aggiornata è anche disponile su Nuget e quindi comodamente integrabile nella propria applicazione attraverso il relativo package manager di Visual Studio.

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