private async void Timer_Tick(object sender, object e) { timer.Stop(); try { dDhtReading = await dht22.GetReadingAsync().AsTask().ConfigureAwait(true); if (dDhtReading.IsValid) { var temperature = Convert.ToSingle(dDhtReading.Temperature); var humidity = Convert.ToSingle(dDhtReading.Humidity); lblTemperature.Text = string.Format("{0:0.0} °C", temperature); lblHumidity.Text = string.Format("{0:0.0} %", humidity); //_SuccessCount++; } else { lblLog.Text = "reading fail"; //_FailCount++; } } catch (Exception ex) { lblLog.Text = ex.ToString(); //_FailCount++; } finally { timer.Start(); } }
public async Task <TemperatureReadings> ReadAsync() { var reading = await _sensor.GetReadingAsync().AsTask(); var readings = new TemperatureReadings { //Temperature = reading.Temperature, //Humidity = reading.Humidity }; return(readings); }
internal async Task <(bool IsValid, double Temperature)> ReadAsync() { #if USE_PI var temperatureReading = await _sensor.GetReadingAsync(); var isValid = temperatureReading.IsValid; var temperatureNow = temperatureReading.Temperature; return(isValid, temperatureNow); #else var temperatureNow = new Random().NextDouble() * (30 - 18) + 18; return(await Task.FromResult((true, temperatureNow))); #endif }
private async Task GetSensorData() { tiSensor.Stop(); try { reading = await objDht.GetReadingAsync().AsTask(); if (reading.IsValid) { strLastSuccessTime = DateTime.UtcNow.ToString(); string strOperationText = "{0:0.0} °C, {1:0.0} %"; // 取得溫濕度的資料 var temperature = Convert.ToSingle(reading.Temperature); var humidity = Convert.ToSingle(reading.Humidity); strOperationText = string.Format(strOperationText, temperature, humidity); base.SetOperation(strOperationText, DateTime.UtcNow); // 送至IoT Hub await this.IoTHub.Send(reading.Temperature, reading.Humidity); } else { base.SetError("偵測裝置無法讀取"); // 讀不到資訊,等待一秒後再讀一次 await Task.Delay(TimeSpan.FromSeconds(1)); await this.GetSensorData(); } } catch (Exception ex) { base.SetError(ex.Message); } finally { tiSensor.Start(); } }
private async void MainPollDHT(GpioPin gpioPin, string Sensor) { Dht22 dht22 = new Dht22(gpioPin, GpioPinDriveMode.Input); DhtReading reading = await dht22.GetReadingAsync().AsTask(); Debug.WriteLine(string.Format("{0} DHT Valid {1}", Sensor, reading.IsValid)); if (reading.IsValid) { Debug.WriteLine(string.Format("{0} DHT Reading:", Sensor)); Debug.WriteLine(reading.Temperature); Debug.WriteLine(reading.Humidity); if (Sensor == "Intake") { intakeDHTData = (new DHTData() { Temp = reading.Temperature, Hum = reading.Humidity }); } else if (Sensor == "Outtake") { outtakeDHTData = (new DHTData() { Temp = reading.Temperature, Hum = reading.Humidity }); } else if (Sensor == "Main") { mainDHTData = (new DHTData() { Temp = reading.Temperature, Hum = reading.Humidity }); } System.Threading.Thread.Sleep(1000); string cmdString = "INSERT INTO [dbo].[sensorReadings] ([timestamp],[sensor],[temp], [hum], [retryCount]) "; cmdString += "VALUES('" + DateTime.Now + "','" + Sensor + "', '" + reading.Temperature + "', '" + reading.Humidity + "', '" + reading.RetryCount + "');"; cmd = new SqlCommand(cmdString, myConnection); try { cmd.ExecuteNonQuery(); } catch (SqlException e) { Debug.WriteLine(string.Format("Failed SQL- {0}", e.Message.ToString())); } catch (NullReferenceException e) { Debug.WriteLine(string.Format("Failed Bullshit- {0}", e.Message.ToString())); } catch (InvalidOperationException e) { Debug.WriteLine(string.Format("Failed Bullshit- {0}", e.Message.ToString())); } } else { //Error something here } }