private async void MeasureTimerTick(object sender, object e)
        {
            // read Temperature
            double temperature = await bme280Sensor.ReadTemperature();

            // convert to Fahrenheit
            double fahrenheitTemperature = temperature * 1.8 + 32.0;

            // read Proximity
            int proximity = vncl4010Sensor.ReadProximity();

            TemperatureStatus.Text = "The temperature is currently " + fahrenheitTemperature.ToString("n1") + "°F";
            var colorRead = await colorSensor.GetClosestColor();

            SolidColorBrush brush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, colorRead.ColorValue.R, colorRead.ColorValue.G, colorRead.ColorValue.B));

            this.Background = brush;

            await IoTHub.SendDeviceToCloudMessage(fahrenheitTemperature, colorRead.ColorName);

            await IoTCentral.SendTelemetryAsync(fahrenheitTemperature, colorRead.ColorName);
        }
        private async void InitializeDevices()
        {
            var gpio = GpioController.GetDefault();

            // show an error if there is no GPIO controller
            if (gpio is null)
            {
                interruptPin    = null;
                GpioStatus.Text = "There is no GPIO controller on this device.";
                return;
            }

            // set up interrupt pin for proximity sensor
            interruptPin = gpio.OpenPin(intPinNumber);

            // pull up interrupt pin as sensor will pull down to notify
            interruptPin.SetDriveMode(GpioPinDriveMode.InputPullUp);

            // initialize BME280 Sensor + Intitialize VNCL4010
            await Task.WhenAll(bme280Sensor.Initialize(), vncl4010Sensor.Initialize(), colorSensor.Initialize());

            // listen to interrupt pin changes
            interruptPin.ValueChanged += OnInterrupt;

            GpioStatus.Text = "Connecting to IoT Hub...";

            await IoTHub.ConnectToIoTHub();

            GpioStatus.Text = "Connecting to IoT Central...";

            IoTCentral.InitClient();

            GpioStatus.Text        = "";
            TemperatureStatus.Text = "Waiting for data...";

            // start measuring temperature and proximity
            measureTimer.Start();
        }