Esempio n. 1
0
        private async void onTimer(object state)
        {
            string temperatureText, pressureText;

            try
            {
                var sensorData = await _bmp180.GetSensorDataAsync(Bmp180AccuracyMode.UltraHighResolution);

                temperatureText  = sensorData.Temperature.ToString("F1");
                pressureText     = sensorData.Pressure.ToString("F2");
                temperatureText += "C - hex:" + BitConverter.ToString(sensorData.UncompestatedTemperature);
                pressureText    += "hPa - hex:" + BitConverter.ToString(sensorData.UncompestatedPressure);

                WeatherData data = new WeatherData
                {
                    Temperature = sensorData.Temperature,
                    Pressure    = sensorData.Pressure
                };
                var client = new HttpClient();
                //client.BaseAddress = new Uri("http://192.168.0.105/WebMonitor");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                string weather = JsonConvert.SerializeObject(data);
                HttpResponseMessage response = await client.PostAsync("http://192.168.0.105:5001/Home/AddWeatherData", new StringContent(weather));

                Console.WriteLine(response.StatusCode.ToString());
            }
            catch (Exception ex)
            {
                temperatureText = "Sensor Error: " + ex.Message;
                pressureText    = "Sensor Error: " + ex.Message;
            }
        }
Esempio n. 2
0
        private async void _periodicTimer_Tick(object sender, object e)
        {
            Bmp180SensorData sensorData = null;

            // Read and format Sensor data
            try
            {
                sensorData = await _bmp180.GetSensorDataAsync(Bmp180AccuracyMode.UltraHighResolution);

                Temperature = sensorData.Temperature;
                Pressure    = sensorData.Pressure;
                Altitude    = sensorData.Altitude;
                LastUpdated = DateTime.UtcNow.ToString();
            }
            catch (Exception)
            {
                LastUpdated = "Sensor Error! Can't get values from sensor.";
            }

            if (sensorData != null)
            {
                // reference: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-csharp-csharp-getstarted#create-a-simulated-device-app
                // send to IoT Hub
                SendDeviceToCloudMessagesAsync(sensorData);
            }
        }
Esempio n. 3
0
        private async void onTimer(object state)
        {
            string temperatureText, pressureText;

            try
            {
                var sensorData = await _bmp180.GetSensorDataAsync(Bmp180AccuracyMode.UltraHighResolution);

                temperatureText  = sensorData.Temperature.ToString("F1");
                pressureText     = sensorData.Pressure.ToString("F2");
                temperatureText += "C - hex:" + BitConverter.ToString(sensorData.UncompestatedTemperature);
                pressureText    += "hPa - hex:" + BitConverter.ToString(sensorData.UncompestatedPressure);
            }
            catch (Exception ex)
            {
                temperatureText = "Sensor Error: " + ex.Message;
                pressureText    = "Sensor Error: " + ex.Message;
            }
        }
        /// <summary>
        /// Este metodo se ejecuta segun el tiempo definido en el archivo de configuracion para leer datos del sensor
        /// </summary>
        /// <param name="state"></param>
        public async void TimerCallback(object state)
        {
            string temperatureText;

            try
            {
                var sensorData = await _bmp180.GetSensorDataAsync(Bmp180AccuracyMode.UltraHighResolution);

                temperatureText  = sensorData.Temperature.ToString("");
                temperatureText += "°C";


                var temperatureDataPoint = new
                {
                    deviceKey   = deviceKey,
                    deviceName  = deviceName,
                    temperatura = sensorData.Temperature,
                    fecha       = DateTime.Now
                };
                var messageString = JsonConvert.SerializeObject(temperatureDataPoint);
                var message       = new Microsoft.Azure.Devices.Client.Message(Encoding.ASCII.GetBytes(messageString));
                message.Properties["Ambiente"] = ambiente;
                autoResetEvent.WaitOne();
                await deviceClient.SendEventAsync(message);

                autoResetEvent.Set();
            }
            catch (Exception ex)
            {
                var a = ex.StackTrace;
                temperatureText = "Sensor Error: " + ex.Message;
            }

            //// actualizaciones de la interfaz de usuario... deben ser invocados en el subproceso de interfaz de usuario
            var task = this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                temperatura.Text = temperatureText;
            });
        }