nanoFramework.Iot.Device.Bmxx80
1.2.696
Prefix Reserved
See the version list below for details.
dotnet add package nanoFramework.Iot.Device.Bmxx80 --version 1.2.696
NuGet\Install-Package nanoFramework.Iot.Device.Bmxx80 -Version 1.2.696
<PackageReference Include="nanoFramework.Iot.Device.Bmxx80" Version="1.2.696" />
paket add nanoFramework.Iot.Device.Bmxx80 --version 1.2.696
#r "nuget: nanoFramework.Iot.Device.Bmxx80, 1.2.696"
// Install nanoFramework.Iot.Device.Bmxx80 as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.Bmxx80&version=1.2.696 // Install nanoFramework.Iot.Device.Bmxx80 as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.Bmxx80&version=1.2.696
BMP280/BME280/BME680 Device Family
BMxx80 is a device family that senses temperature, barometric pressure, altitude, humidity and VOC gas.
SPI and I2C can be used to communicate with the device (only I2C implemented so far).
Documentation
The implementation supports the following devices:
- BMP280 temperature and barometric pressure sensor (Datasheet)
- BME280 temperature, barometric pressure and humidity sensor (Datasheet)
- BME680 temperature, barometric pressure, humidity and VOC gas sensor (Datasheet)
Usage
BME280
Important: make sure you properly setup the I2C pins especially for ESP32 before creating the I2cDevice
, make sure you install the nanoFramework.Hardware.ESP32 nuget
:
//////////////////////////////////////////////////////////////////////
// when connecting to an ESP32 device, need to configure the I2C GPIOs
// used for the bus
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);
For other devices like STM32, please make sure you're using the preset pins for the I2C bus you want to use.
// bus id on the MCU
const int busId = 1;
I2cConnectionSettings i2cSettings = new(busId, Bme280.DefaultI2cAddress);
using I2cDevice i2cDevice = I2cDevice.Create(i2cSettings);
using Bme280 bme80 = new Bme280(i2cDevice)
{
// set higher sampling
TemperatureSampling = Sampling.LowPower,
PressureSampling = Sampling.UltraHighResolution,
HumiditySampling = Sampling.Standard,
};
// Perform a synchronous measurement
var readResult = bme80.Read();
// Note that if you already have the pressure value and the temperature, you could also calculate altitude by using
// var altValue = WeatherHelper.CalculateAltitude(preValue, defaultSeaLevelPressure, tempValue) which would be more performant.
bme80.TryReadAltitude(defaultSeaLevelPressure, out var altValue);
Debug.WriteLine($"Temperature: {readResult.Temperature?.DegreesCelsius:0.#}\u00B0C");
Debug.WriteLine($"Pressure: {readResult.Pressure?.Hectopascals:0.##}hPa");
Debug.WriteLine($"Altitude: {altValue.Meters:0.##}m");
Debug.WriteLine($"Relative humidity: {readResult.Humidity?.Percent:0.#}%");
BMP680
// The I2C bus ID on the MCU
const int busId = 1;
I2cConnectionSettings i2cSettings = new(busId, Bme680.DefaultI2cAddress);
I2cDevice i2cDevice = I2cDevice.Create(i2cSettings);
using Bme680 bme680 = new Bme680(i2cDevice, Temperature.FromDegreesCelsius(20.0));
// reset will change settings back to default
bme680.Reset();
// Perform a synchronous measurement
var readResult = bme680.Read();
// Print out the measured data
Debug.WriteLine($"Gas resistance: {readResult.GasResistance?.Ohms:0.##}Ohm");
Debug.WriteLine($"Temperature: {readResult.Temperature?.DegreesCelsius:0.#}\u00B0C");
Debug.WriteLine($"Pressure: {readResult.Pressure?.Hectopascals:0.##}hPa");
Debug.WriteLine($"Relative humidity: {readResult.Humidity?.Percent:0.#}%");
BMP280
// bus id on the MCU
const int busId = 1;
I2cConnectionSettings i2cSettings = new(busId, Bmp280.DefaultI2cAddress);
I2cDevice i2cDevice = I2cDevice.Create(i2cSettings);
using var i2CBmp280 = new Bmp280(i2cDevice);
// set higher sampling
i2CBmp280.TemperatureSampling = Sampling.LowPower;
i2CBmp280.PressureSampling = Sampling.UltraHighResolution;
// Perform a synchronous measurement
var readResult = i2CBmp280.Read();
// Print out the measured data
Debug.WriteLine($"Temperature: {readResult.Temperature?.DegreesCelsius:0.#}\u00B0C");
Debug.WriteLine($"Pressure: {readResult.Pressure?.Hectopascals:0.##}hPa");
You also have 3 examples on how to use this device binding are available in the samples folder.
The following fritzing diagram illustrates one way to wire up the BMP280 with an MCU like ESP32 using I2C:
General:
Bmp280 | MCU |
---|---|
Vin | Power pin |
GND | Ground |
I2C:
Bmp280 | MCU |
---|---|
SCK | I2C clock pin |
SDI | I2C data pin |
Connection Type
The following connection types are supported by this binding.
- I2C
- SPI
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Iot.Device.Common.WeatherHelper (>= 1.2.693)
- nanoFramework.System.Buffers.Binary.BinaryPrimitives (>= 1.2.693)
- nanoFramework.System.Device.I2c (>= 1.1.16)
- nanoFramework.System.Device.Model (>= 1.2.693)
- nanoFramework.System.Math (>= 1.5.43)
- UnitsNet.nanoFramework.Duration (>= 5.61.0)
- UnitsNet.nanoFramework.ElectricResistance (>= 5.61.0)
- UnitsNet.nanoFramework.Length (>= 5.61.0)
- UnitsNet.nanoFramework.Pressure (>= 5.61.0)
- UnitsNet.nanoFramework.RelativeHumidity (>= 5.61.0)
- UnitsNet.nanoFramework.Temperature (>= 5.61.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on nanoFramework.Iot.Device.Bmxx80:
Repository | Stars |
---|---|
dotnet/samples
Sample code referenced by the .NET documentation
|
|
nanoframework/Samples
🍬 Code samples from the nanoFramework team used in testing, proof of concepts and other explorational endeavours
|
Version | Downloads | Last updated |
---|---|---|
1.2.704 | 101 | 12/18/2024 |
1.2.696 | 83 | 12/16/2024 |
1.2.673 | 280 | 10/23/2024 |
1.2.656 | 157 | 10/3/2024 |
1.2.639 | 162 | 9/6/2024 |
1.2.631 | 128 | 8/28/2024 |
1.2.613 | 156 | 8/9/2024 |
1.2.601 | 98 | 7/26/2024 |
1.2.590 | 150 | 7/17/2024 |
1.2.573 | 154 | 6/19/2024 |
1.2.570 | 117 | 6/14/2024 |
1.2.560 | 146 | 5/29/2024 |
1.2.552 | 142 | 5/17/2024 |
1.2.536 | 226 | 4/15/2024 |
1.2.514 | 177 | 3/22/2024 |
1.2.494 | 192 | 2/28/2024 |
1.2.474 | 202 | 1/24/2024 |
1.2.462 | 199 | 1/5/2024 |
1.2.458 | 172 | 12/20/2023 |
1.2.456 | 142 | 12/13/2023 |
1.2.442 | 244 | 11/15/2023 |
1.2.436 | 141 | 11/10/2023 |
1.2.416 | 170 | 11/8/2023 |
1.2.403 | 235 | 10/6/2023 |
1.2.396 | 222 | 9/27/2023 |
1.2.384 | 230 | 9/6/2023 |
1.2.378 | 193 | 8/16/2023 |
1.2.369 | 269 | 8/2/2023 |
1.2.363 | 172 | 7/28/2023 |
1.2.357 | 161 | 7/19/2023 |
1.2.354 | 220 | 7/14/2023 |
1.2.345 | 193 | 6/21/2023 |
1.2.341 | 168 | 6/14/2023 |
1.2.337 | 203 | 6/7/2023 |
1.2.335 | 148 | 6/2/2023 |
1.2.329 | 160 | 5/26/2023 |
1.2.316 | 200 | 5/16/2023 |
1.2.313 | 159 | 5/12/2023 |
1.2.308 | 188 | 5/11/2023 |
1.2.302 | 163 | 5/10/2023 |
1.2.297 | 181 | 5/3/2023 |
1.2.273 | 336 | 3/17/2023 |
1.2.267 | 291 | 3/10/2023 |
1.2.263 | 270 | 3/8/2023 |
1.2.259 | 311 | 2/27/2023 |
1.2.256 | 259 | 2/24/2023 |
1.2.253 | 252 | 2/22/2023 |
1.2.222 | 393 | 1/9/2023 |
1.2.217 | 349 | 1/6/2023 |
1.2.215 | 306 | 1/6/2023 |
1.2.212 | 326 | 1/5/2023 |
1.2.210 | 356 | 1/4/2023 |
1.2.208 | 321 | 1/3/2023 |
1.2.203 | 339 | 12/28/2022 |
1.2.159 | 421 | 11/14/2022 |
1.2.157 | 362 | 11/9/2022 |
1.2.155 | 361 | 11/6/2022 |
1.2.153 | 377 | 11/5/2022 |
1.2.141 | 438 | 10/25/2022 |
1.2.128 | 420 | 10/22/2022 |
1.2.125 | 426 | 10/12/2022 |
1.2.87 | 540 | 9/15/2022 |
1.2.66 | 432 | 9/4/2022 |
1.2.63 | 426 | 9/3/2022 |
1.2.47 | 457 | 8/15/2022 |
1.2.40 | 467 | 8/6/2022 |
1.2.38 | 462 | 8/5/2022 |
1.2.28 | 476 | 8/1/2022 |
1.2.13 | 488 | 7/24/2022 |
1.2.10 | 451 | 7/23/2022 |
1.1.147.4251 | 547 | 7/8/2022 |
1.1.145.58726 | 447 | 7/7/2022 |
1.1.135.7416 | 476 | 7/1/2022 |
1.1.133.52556 | 488 | 6/30/2022 |
1.1.123.24311 | 472 | 6/27/2022 |
1.1.121.35854 | 444 | 6/26/2022 |
1.1.116.8772 | 487 | 6/24/2022 |
1.1.113.2032 | 468 | 6/23/2022 |
1.1.109.32999 | 490 | 6/16/2022 |
1.1.102.51394 | 444 | 6/15/2022 |
1.1.99.36719 | 445 | 6/14/2022 |
1.1.97.17326 | 461 | 6/13/2022 |
1.1.92.53000 | 492 | 6/8/2022 |
1.1.75.16702 | 471 | 6/1/2022 |
1.1.72.29765 | 464 | 5/31/2022 |
1.1.67.25390 | 473 | 5/27/2022 |
1.1.64.21380 | 455 | 5/26/2022 |
1.1.59.7661 | 472 | 5/24/2022 |
1.1.58.10097 | 473 | 5/23/2022 |
1.1.54.28879 | 454 | 5/23/2022 |
1.1.44.45306 | 502 | 5/6/2022 |
1.1.40 | 492 | 5/5/2022 |
1.1.11 | 511 | 4/19/2022 |
1.1.3 | 522 | 4/15/2022 |
1.1.1 | 461 | 4/14/2022 |
1.0.300 | 541 | 3/31/2022 |
1.0.288-preview.114 | 136 | 3/25/2022 |
1.0.288-preview.113 | 123 | 3/25/2022 |
1.0.288-preview.104 | 115 | 3/22/2022 |
1.0.288-preview.103 | 115 | 3/21/2022 |
1.0.288-preview.100 | 125 | 3/19/2022 |
1.0.288-preview.99 | 135 | 3/18/2022 |
1.0.288-preview.98 | 119 | 3/18/2022 |
1.0.288-preview.95 | 134 | 3/15/2022 |
1.0.288-preview.93 | 119 | 3/15/2022 |
1.0.288-preview.87 | 130 | 3/10/2022 |
1.0.288-preview.86 | 147 | 3/8/2022 |
1.0.288-preview.77 | 141 | 2/27/2022 |
1.0.288-preview.75 | 135 | 2/26/2022 |
1.0.288-preview.65 | 183 | 2/18/2022 |
1.0.288-preview.63 | 126 | 2/16/2022 |
1.0.288-preview.61 | 134 | 2/12/2022 |
1.0.288-preview.58 | 136 | 2/10/2022 |
1.0.288-preview.53 | 129 | 2/9/2022 |
1.0.288-preview.48 | 157 | 2/4/2022 |
1.0.288-preview.41 | 149 | 1/31/2022 |
1.0.288-preview.29 | 148 | 1/28/2022 |
1.0.288-preview.20 | 149 | 1/27/2022 |
1.0.288-preview.19 | 139 | 1/27/2022 |
1.0.288-preview.18 | 146 | 1/27/2022 |
1.0.288-preview.5 | 147 | 1/24/2022 |
1.0.288-preview.1 | 139 | 1/21/2022 |
1.0.272 | 527 | 1/10/2022 |
1.0.259 | 528 | 12/9/2021 |
1.0.258 | 354 | 12/7/2021 |
1.0.164 | 1,122 | 9/9/2021 |
1.0.157 | 384 | 9/4/2021 |
1.0.154 | 346 | 8/30/2021 |
1.0.153 | 372 | 8/14/2021 |
1.0.151 | 368 | 8/6/2021 |
1.0.146 | 379 | 7/22/2021 |
1.0.138 | 395 | 7/18/2021 |
1.0.136 | 427 | 7/17/2021 |
1.0.135 | 179 | 7/16/2021 |
1.0.134 | 187 | 7/15/2021 |
1.0.133 | 203 | 7/14/2021 |
1.0.131 | 204 | 7/8/2021 |
1.0.130 | 500 | 7/6/2021 |
1.0.129 | 182 | 7/6/2021 |
1.0.127 | 192 | 7/5/2021 |
1.0.126 | 193 | 7/5/2021 |
1.0.125 | 202 | 7/5/2021 |
1.0.122 | 232 | 6/30/2021 |
1.0.121 | 218 | 6/29/2021 |
1.0.120 | 206 | 6/29/2021 |
1.0.119 | 248 | 6/28/2021 |
1.0.118 | 250 | 6/20/2021 |
1.0.111 | 207 | 6/14/2021 |
1.0.110 | 256 | 6/9/2021 |
1.0.109 | 178 | 6/8/2021 |
1.0.106 | 215 | 6/1/2021 |
1.0.104 | 260 | 5/29/2021 |
1.0.103 | 224 | 5/28/2021 |
1.0.97 | 195 | 5/28/2021 |
1.0.90 | 198 | 5/27/2021 |
1.0.64 | 187 | 5/26/2021 |
1.0.19 | 241 | 5/21/2021 |