Meadow.Foundation.Sensors.Atmospheric.Bme280 1.8.0.1

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Meadow.Foundation.Sensors.Atmospheric.Bme280 --version 1.8.0.1
NuGet\Install-Package Meadow.Foundation.Sensors.Atmospheric.Bme280 -Version 1.8.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Meadow.Foundation.Sensors.Atmospheric.Bme280" Version="1.8.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Meadow.Foundation.Sensors.Atmospheric.Bme280 --version 1.8.0.1
#r "nuget: Meadow.Foundation.Sensors.Atmospheric.Bme280, 1.8.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Meadow.Foundation.Sensors.Atmospheric.Bme280 as a Cake Addin
#addin nuget:?package=Meadow.Foundation.Sensors.Atmospheric.Bme280&version=1.8.0.1

// Install Meadow.Foundation.Sensors.Atmospheric.Bme280 as a Cake Tool
#tool nuget:?package=Meadow.Foundation.Sensors.Atmospheric.Bme280&version=1.8.0.1

Meadow.Foundation.Sensors.Atmospheric.Bme280

Bosch BME280 SPI and I2C absolute barometric pressure sensor

The Bme280 library is designed for the Wilderness Labs Meadow .NET IoT platform and is part of Meadow.Foundation.

The Meadow.Foundation peripherals library is an open-source repository of drivers and libraries that streamline and simplify adding hardware to your C# .NET Meadow IoT application.

For more information on developing for Meadow, visit developer.wildernesslabs.co.

To view all Wilderness Labs open-source projects, including samples, visit github.com/wildernesslabs.

Usage

Bme280 sensor;

public override Task Initialize()
{
    Resolver.Log.Info("Initializing...");

    //CreateSpiSensor();
    CreateI2CSensor();

    var consumer = Bme280.CreateObserver(
        handler: result =>
        {
            Resolver.Log.Info($"Observer: Temp changed by threshold; new temp: {result.New.Temperature?.Celsius:N2}C, old: {result.Old?.Temperature?.Celsius:N2}C");
        },
        filter: result =>
        {
            if (result.Old is { } old)
            {
                return (
                (result.New.Temperature.Value - old.Temperature.Value).Abs().Celsius > 0.5
                &&
                (result.New.Humidity.Value - old.Humidity.Value).Percent > 0.05
                );
            }
            return false;
        }
    );
    sensor.Subscribe(consumer);

    sensor.Updated += (sender, result) =>
    {
        Resolver.Log.Info($"  Temperature: {result.New.Temperature?.Celsius:N2}C");
        Resolver.Log.Info($"  Relative Humidity: {result.New.Humidity:N2}%");
        Resolver.Log.Info($"  Pressure: {result.New.Pressure?.Millibar:N2}mbar ({result.New.Pressure?.Pascal:N2}Pa)");
    };

    return Task.CompletedTask;
}

public override async Task Run()
{
    var conditions = await sensor.Read();
    Resolver.Log.Info("Initial Readings:");
    Resolver.Log.Info($"  Temperature: {conditions.Temperature?.Celsius:N2}C");
    Resolver.Log.Info($"  Pressure: {conditions.Pressure?.Bar:N2}hPa");
    Resolver.Log.Info($"  Relative Humidity: {conditions.Humidity?.Percent:N2}%");

    sensor.StartUpdating(TimeSpan.FromSeconds(1));
}

void CreateSpiSensor()
{
    Resolver.Log.Info("Create BME280 sensor with SPI...");

    var spi = Device.CreateSpiBus();
    sensor = new Bme280(spi, Device.Pins.D00.CreateDigitalOutputPort());
}

void CreateI2CSensor()
{
    Resolver.Log.Info("Create BME280 sensor with I2C...");

    var i2c = Device.CreateI2cBus();
    sensor = new Bme280(i2c, (byte)Bme280.Addresses.Default); // SDA pulled up

}

How to Contribute

Need Help?

If you have questions or need assistance, please join the Wilderness Labs community on Slack.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.8.0.8-beta 32 2/23/2024
1.8.0.7-beta 39 2/22/2024
1.8.0.6-beta 70 2/20/2024
1.8.0.5-beta 108 2/13/2024
1.8.0.4-beta 127 2/6/2024
1.8.0.3-beta 121 2/1/2024
1.8.0.2-beta 157 1/24/2024
1.8.0.1 239 1/20/2024
1.8.0 266 1/16/2024
1.7.0 237 1/9/2024
1.6.0.6-beta 234 1/3/2024
1.6.0.5-beta 255 12/27/2023
1.6.0.4-beta 238 12/20/2023
1.6.0.3-beta 249 12/19/2023
1.6.0.2-beta 291 12/12/2023
1.6.0 417 12/6/2023
1.5.0.1-beta 319 12/4/2023
1.5.0 333 11/28/2023
1.4.0.9-beta 288 11/28/2023
1.4.0.8-beta 288 11/27/2023
1.4.0.7-beta 307 11/8/2023
1.4.0.6-beta 300 11/7/2023
1.4.0.4-beta 300 11/1/2023
1.4.0.3 373 10/31/2023
1.3.4.10-beta 315 10/25/2023
1.3.4.9-beta 334 10/24/2023
1.3.4.8-beta 332 10/17/2023
1.3.4.7-beta 355 10/10/2023
1.3.4.6-beta 346 10/5/2023
1.3.4.5-beta 327 10/4/2023
1.3.4.4-beta 361 10/3/2023
1.3.4.3-beta 373 10/3/2023
1.3.4.2-beta 367 9/30/2023
1.3.4.1-beta 390 9/30/2023
1.3.4 432 9/26/2023
1.3.2.5-beta 391 9/21/2023
1.3.2.4-beta 360 9/20/2023
1.3.2.3-beta 365 9/19/2023
1.3.2.2-beta 344 9/15/2023
1.3.2.1-beta 386 9/14/2023
1.3.2-beta 394 9/13/2023
1.3.1.1-beta 420 9/5/2023
1.3.0 502 8/29/2023
1.2.1.11-beta 445 8/24/2023
1.2.1.9-beta 471 8/17/2023
1.2.1.8-beta 484 8/8/2023
1.2.1.6-beta 575 8/4/2023
1.2.0 578 8/1/2023
1.1.1.11-beta 525 7/24/2023
1.1.1.10-beta 559 7/22/2023
1.1.1.9-beta 538 7/22/2023
1.1.1.8-beta 527 7/21/2023
1.1.0 599 7/11/2023
1.0.2.1 601 6/3/2023
1.0.2 605 6/3/2023
1.0.0.1 549 5/30/2023
1.0.0 561 5/28/2023
0.99.0 594 5/28/2023
0.98.2-alpha 535 5/27/2023
0.98.0 598 5/6/2023
0.96.0 638 4/2/2023
0.95.0 661 3/5/2023
0.94.2 679 2/7/2023
0.94.1 674 2/2/2023
0.92.5 709 12/31/2022
0.90.0 759 11/23/2022
0.89.2 766 11/23/2022
0.5.61 776 11/21/2022
0.5.60 856 10/24/2022
0.5.57 863 5/30/2022
0.5.51 913 3/7/2022
0.5.49 746 12/21/2021
0.5.48 794 11/15/2021
0.5.47 753 11/8/2021
0.5.46 875 9/8/2021
0.5.45 762 8/5/2021
0.5.44 748 7/5/2021
0.5.43 804 5/25/2021
0.5.39 886 3/17/2021
0.5.35 896 2/8/2021
0.5.31 876 1/13/2021
0.5.27 883 1/4/2021
0.5.23 892 12/10/2020
0.5.19 954 10/26/2020
0.5.15 976 9/22/2020
0.5.11 1,016 7/15/2020
0.5.8 990 5/25/2020
0.5.7 1,138 3/27/2020
0.5.6 1,031 3/9/2020
0.5.5 1,127 2/17/2020
0.5.4 1,089 12/23/2019
0.5.3 1,021 11/19/2019
0.5.2 1,138 11/18/2019
0.5.1 1,141 10/21/2019
0.5.0 1,104 10/19/2019
0.1.0 1,107 11/19/2019