public void Run(IBackgroundTaskInstance taskInstance) { _deferral = taskInstance.GetDeferral(); // get the deferral handle int count = 0; MAX7219 driver = new MAX7219(2); SevenSegmentDisplay ssd = new SevenSegmentDisplay(driver); BMP180 bmp = new BMP180(BMP180.Mode.HIGHRES); ssd.FrameClear(); ssd.FrameDraw(); ssd.SetBrightness(4); while (true) { temperature = bmp.Temperature.DegreesCelsius; data.Clear(); // is temperature less than 3 digits and there is a decimal part too then right pad to 5 places as decimal point does not take up a digit space on the display if (temperature < 100 && temperature != (int)temperature) { data.Append($"{Math.Round(temperature, 1)}C".PadRight(5)); } else { data.Append($"{Math.Round(temperature, 0)}C".PadRight(4)); } data.Append(Math.Round(bmp.Pressure.Hectopascals, 0)); if (blink = !blink) { data.Append("."); } // add a blinking dot on bottom right as an I'm alive indicator ssd.DrawString(data.ToString()); ssd.DrawString(count++, 1); ssd.FrameDraw(); Task.Delay(2000).Wait(); } }
public void Run(IBackgroundTaskInstance taskInstance) { _deferral = taskInstance.GetDeferral(); LED8x8Matrix matrix = new LED8x8Matrix(driver); BMP180 tempAndPressure = new BMP180(); while (true) { var message = $"{Math.Round(tempAndPressure.Temperature.DegreesCelsius, 1)}C, {Math.Round(tempAndPressure.Pressure.Hectopascals, 1)}hPa "; matrix.ScrollStringInFromRight(message, 70); } }
protected async void InitBanner() { matrix = new LED8x8Matrix(new Ht16K33()); strip = new LED8x8Matrix(new MAX7219(4, MAX7219.Rotate.None, MAX7219.Transform.HorizontalFlip)); matrix.SetBrightness(1); strip.SetBrightness(1); bmp180 = new BMP180(); // init temp and air pressure await InitLightAdc(); // init ldr on ads1015 adc ShowTempPressure(); ShowLightLevel(); }