Пример #1
0
        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));
        }
Пример #2
0
        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);
        }