diff --git a/README.md b/README.md index bf3b9bf..59e289b 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,101 @@ -# BME280 Micropython driver for the BME280 sensor - -This is a driver for the Bosch BME280 temperature/pressure/humidity sensor, -for use with MicroPython on Pycom of ESP8266 boards. It is also compatible with -the BMP280 which provides the same interface but temperature + pressure only. - -Two different variants of the library are supplied. bme20_int.py uses integer -arithmetic, bme280_float.py uses float arithmetic for the compensation of the -raw values. The results are (almost) the identical, but the format of the -returned values differs. - -## About the BME280 - -The Bosch BME280 Environmental Sensor is a combined temperature, pressure and -humidity sensor. It can communicate via I2C or SPI; this driver uses I2C. - -See the datasheet at https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME280_DS002.pdf -for details. - -## Class - -bme= BME280(i2c=i2c, mode=BME280_OSAMPLE_8, address=BME280_I2CADDR) - -mode is the setting for oversampling of the humidity value, address the i2c -address used. - -## Properties - -### values = BME280.values - -The `values` property is a convenience function that provides a tuple of -human-readable string values to quickly check that the sensor is working. -In practice, the method to use is `read_compensated_data()` which returns -a `(temperature, pressure, humidity)`-tuple - -### altitude = bmp.altitude -Altitude in m. The altitude is calculated based on the value given to -the property sealevel (see below). Obviously, this value does not have to be the -sealevel pressure, but any pressure you may select, for instance to measure -altitude difference in general. - -### bmp.sealevel = sealevel -### sealevel = bmp.sealevel -Setting and getting the pressure for altitude calculation. -The default is 101325 Pa, but you can use your local -QNH in Pa, or set a local pressure to determine altitude difference. - -### dew_point = bmp.dew_point -Returns the dew_point temperature (°C) calculated from the actual temperature and humidity. - -## Methods - -### values = read_compensated_data(result = None) - -Values is an array of either integers (bme280_int.py) of floats (bme280_float.py), -holding the values of temperature, pressure and humidity. -The format differs for integers and floats: - -#### Integer formats: -* `temperature`: the temperature in hundredths of a degree Celsius. For example, -the value 2534 indicates a temperature of 25.34 degrees. -* `pressure`: the atmospheric pressure. This 32-bit value consists of 24 bits -indicating the integer value, and 8 bits indicating the fractional value. To get -a value in Pascals, divide the return value by 256. For example, a value of -24674867 indicates 96386.2Pa, or 963.862hPa. -* `humidity`: the relative humidity. This 32-bit value consists of 22 bits -indicating the integer value, and 10 bits indicating the fractional value. -To get a value in %RH, divide the return value by 1024. For example, a value of -47445 indicates 46.333%RH. - -#### Float formats -* `temperature`: the temperature in degree Celsius. -* `pressure`: the atmospheric pressure in Pascal. -* `humidity`: the relative humidity in percent. - -If the parameter result is supplied as an array of the appropriate type, The -return values will in addition be stored in that array, and the array will be -returned. - -### read_raw_data(result) -Store the raw sensor data into the array result, which must provide space for three -32 bit integers, as provided for instance by `array("i", [0, 0, 0])`. This -method is used internally. - -### Example - -Copy `bme280_float.py` onto the board. Then: - -``` python -# -# this script assumes the default connection of the I2C bus -# On pycom devuces that is P9 = SDA, P10 = scl -# -import machine -import bme280_float as bme280 - -i2c = machine.I2C() -bme = bme280.BME280(i2c=i2c) - -print(bme.values) -``` +# BME280 Micropython driver for the BME280 sensor + +This is a driver for the Bosch BME280 temperature/pressure/humidity sensor, +for use with MicroPython on Pycom of ESP8266 boards. It is also compatible with +the BMP180 which provides the same interface but temperature + pressure only. + +Two different variants of the library are supplied. bme20_int.py uses integer +arithmetic, bme280_float.py uses float arithmetic for the compensation of the +raw values. The results are (almost) the identical, but the format of the +returned values differs. + +## About the BME280 + +The Bosch BME280 Environmental Sensor is a combined temperature, pressure and +humidity sensor. It can communicate via I2C or SPI; this driver uses I2C. + +See the datasheet at https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME280_DS002.pdf +for details. + +## Class + +bme = BME280(i2c=i2c, mode=BME280_OSAMPLE_8, address=BME280_I2CADDR) + +mode is the setting for oversampling of the humidity value, address the i2c +address used. + +## Properties + +### values = BME280.values + +The `values` property is a convenience function that provides a tuple of +human-readable string values to quickly check that the sensor is working. +In practice, the method to use is `read_compensated_data()` which returns +a `(temperature, pressure, humidity)`-tuple + +### altitude = bme.altitude +Altitude in m. The altitude is calculated based on the value given to +the property sealevel (see below). Obviously, this value does not have to be the +sealevel pressure, but any pressure you may select, for instance to measure +altitude difference in general. + +### bme.sealevel = sealevel +### sealevel = bme.sealevel +Setting and getting the pressure for altitude calculation. +The default is 101325 Pa, but you can use your local +QNH in Pa, or set a local pressure to determine altitude difference. + +### dew_point = bme.dew_point +Returns the dew_point temperature (°C) calculated from the actual temperature and humidity. + +## Methods + +### values = read_compensated_data(result = None) + +Values is an array of either integers (bme280_int.py) of floats (bme280_float.py), +holding the values of temperature, pressure and humidity. +The format differs for integers and floats: + +#### Integer formats: +* `temperature`: the temperature in hundredths of a degree Celsius. For example, +the value 2534 indicates a temperature of 25.34 degrees. +* `pressure`: the atmospheric pressure. This 32-bit value consists of 24 bits +indicating the integer value, and 8 bits indicating the fractional value. To get +a value in Pascals, divide the return value by 256. For example, a value of +24674867 indicates 96386.2Pa, or 963.862hPa. +* `humidity`: the relative humidity. This 32-bit value consists of 22 bits +indicating the integer value, and 10 bits indicating the fractional value. +To get a value in %RH, divide the return value by 1024. For example, a value of +47445 indicates 46.333%RH. + +#### Float formats +* `temperature`: the temperature in degree Celsius. +* `pressure`: the atmospheric pressure in Pascal. +* `humidity`: the relative humidity in percent. + +If the parameter result is supplied as an array of the appropriate type, The +return values will in addition be stored in that array, and the array will be +returned. + +### read_raw_data(result) +Store the raw sensor data into the array result, which must provide space for three +32 bit integers, as provided for instance by `array("i", [0, 0, 0])`. This +method is used internally. + +### Example + +Copy `bme280_float.py` onto the board. Then: + +``` python +# +# this script assumes the default connection of the I2C bus +# On pycom devuces that is P9 = SDA, P10 = scl +# +import machine +import bme280_float as bme280 + +i2c = machine.I2C() +bme = bme280.BME280(i2c=i2c) + +print(bme.values) +```