public void Run(IBackgroundTaskInstance taskInstance) { deferral = taskInstance.GetDeferral(); sampler = new HumidityTemperatureReading(); gpioCtrl = new GpioService(); samplerPin = gpioCtrl.Controller?.OpenPin((int)Settings.DHT11DataPinId); if (samplerPin != null) { sampler.Init(samplerPin); } timer = ThreadPoolTimer.CreatePeriodicTimer(OnTimer, TimeSpan.FromSeconds(60)); }
public ISensorReading ReadSensor() { var result = new HumidityTemperatureReading { Humidity = 0 }; using (Dht22 dht = new Dht22(_gpioPin)) { //sometimes the sensor returns NaN's while (result.Humidity == 0) { result.Temperature = dht.Temperature; result.Humidity = dht.Humidity; if (result.Humidity == 0) { System.Threading.Thread.Sleep(1000); } } } return(result); }