Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dafvid/micropython-bmp280
module for the BMP280 sensor
https://github.com/dafvid/micropython-bmp280
bmp280 esp8266 micropython
Last synced: 3 months ago
JSON representation
module for the BMP280 sensor
- Host: GitHub
- URL: https://github.com/dafvid/micropython-bmp280
- Owner: dafvid
- License: mit
- Created: 2018-05-02T15:24:24.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-11-18T16:21:09.000Z (12 months ago)
- Last Synced: 2024-04-30T06:32:19.068Z (6 months ago)
- Topics: bmp280, esp8266, micropython
- Language: Python
- Size: 38.1 KB
- Stars: 81
- Watchers: 5
- Forks: 24
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-micropython - micropython-bmp280 - Module for the BMP280 sensor. (Libraries / Sensors)
README
# micropython-bmp280
- https://www.adafruit.com/product/2651
- https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/pressure-sensors-bmp280-1.html
- https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp280-ds001.pdfInspired by
https://github.com/vitally/BMP280
https://github.com/micropython-IMU/micropython-bmp180## Constructor
**BMP280(i2c_bus, addr=0x76, use_case=BMP280_CASE_HANDHELD_DYN)**
* *i2c_bus* - the I2C bus to use
* *addr* - I2C address of the BMP280 (always the same)
* *use_case* - Use case to start the BMP280 with. Set to None to disable measuring on boot.## Enums
Values for different settings are defined in the following constants. Reference to manual section in parenthesis.
### Use cases (See 3.4, 3.8.2)
* BMP280_CASE_HANDHELD_LOW
* BMP280_CASE_HANDHELD_DYN (*default*)
* BMP280_CASE_WEATHER
* BMP280_CASE_FLOOR
* BMP280_CASE_DROP
* BMP280_CASE_INDOOR
### Oversampling setting (See 3.3.1, 3.8.2)
* BMP280_OS_ULTRALOW
* BMP280_OS_LOW
* BMP280_OS_STANDARD
* BMP280_OS_HIGH
* BMP280_OS_ULTRAHIGH
### Pressure oversampling (See 3.3.1)
* BMP280_PRES_OS_SKIP
* BMP280_PRES_OS_1
* BMP280_PRES_OS_2
* BMP280_PRES_OS_4
* BMP280_PRES_OS_8
* BMP280_PRES_OS_16
### Temperature oversampling (See 3.3.2)
* BMP280_TEMP_OS_SKIP
* BMP280_TEMP_OS_1
* BMP280_TEMP_OS_2
* BMP280_TEMP_OS_4
* BMP280_TEMP_OS_8
* BMP280_TEMP_OS_16
### IIR filter (See 3.3.3)
* BMP280_IIR_FILTER_OFF
* BMP280_IIR_FILTER_2
* BMP280_IIR_FILTER_4
* BMP280_IIR_FILTER_8
* BMP280_IIR_FILTER_16
### Standby settings for Normal measure (See 3.6.3)
* BMP280_STANDBY_0_5
* BMP280_STANDBY_62_5
* BMP280_STANDBY_125
* BMP280_STANDBY_250
* BMP280_STANDBY_500
* BMP280_STANDBY_1000
* BMP280_STANDBY_2000
* BMP280_STANDBY_4000
### Power modes
* BMP280_POWER_SLEEP
* BMP280_POWER_FORCED
* BMP280_POWER_NORMAL
### SPI 3-wire select
* BMP280_SPI3W_ON
* BMP280_SPI3W_OFF## Example
```python
from machine import I2C
from bmp280 import *bus = I2C()
bmp = BMP280(bus)bmp.use_case(BMP280_CASE_WEATHER)
bmp.oversample(BMP280_OS_HIGH)bmp.temp_os = BMP280_TEMP_OS_8
bmp.press_os = BMP280_PRES_OS_4bmp.standby = BMP280_STANDBY_250
bmp.iir = BMP280_IIR_FILTER_2bmp.spi3w = BMP280_SPI3W_ON
bmp.power_mode = BMP280_POWER_FORCED
# or
bmp.force_measure()bmp.power_mode = BMP280_POWER_NORMAL
# or
bmp.normal_measure()
# also
bmp.in_normal_mode()bmp.power_mode = BMP280_POWER_SLEEP
# or
bmp.sleep()print(bmp.temperature)
print(bmp.pressure)#True while measuring
bmp.is_measuring#True while copying data to registers
bmp.is_updating```
## TODO
* SPI support
* ~~Filters~~
* ~~Oversampling settings (half done)~~
* ~~Power modes~~
* ~~Standby setting for Normal mode~~