diff --git a/app/modules/bmp085.c b/app/modules/bmp085.c index 17a7651f..a1d9b580 100644 --- a/app/modules/bmp085.c +++ b/app/modules/bmp085.c @@ -74,7 +74,7 @@ static int ICACHE_FLASH_ATTR bmp085_init(lua_State* L) { bmp085_data.MC = r16(bmp085_i2c_id, 0xBC); bmp085_data.MD = r16(bmp085_i2c_id, 0xBE); - return 1; + return 0; } static uint32_t bmp085_temperature_raw_b5(void) { @@ -128,7 +128,7 @@ static int32_t ICACHE_FLASH_ATTR bmp085_pressure_raw(int oss) { p3 = r8u(bmp085_i2c_id, 0xF8); p = (p1 << 16) | (p2 << 8) | p3; p = p >> (8 - oss); - + return p; } @@ -159,7 +159,7 @@ static int ICACHE_FLASH_ATTR bmp085_lua_pressure(lua_State* L) { oss = 3; } } - + p = bmp085_pressure_raw(oss); B5 = bmp085_temperature_raw_b5(); diff --git a/docs/en/modules/bmp085.md b/docs/en/modules/bmp085.md new file mode 100644 index 00000000..9ea3d9a9 --- /dev/null +++ b/docs/en/modules/bmp085.md @@ -0,0 +1,67 @@ +# BMP085 Module + +This module provides access to the BMP085 temperature and pressure sensor. The module also works with BMP180. + +## bmp085.init() +Initializes the module and sets the pin configuration. + +#### Syntax +`bmp085.init(sda, scl)` + +#### Parameters +- `sda` data pin +- `scl` clock pin + +#### Returns +`nil` + +## bmp085.temperature() +Samples the sensor and returns the temperature in celsius as an integer multiplied with 10. + +#### Syntax +`bmp085.temperature()` + +#### Returns +`integer` temperature multiplied with 10. + +#### Example +```lua +bmp085.init(1, 2) +local t = bmp085.temperature() +print(string.format("Temperature: %s.%s degrees C", t / 10, t % 10)) +``` + +## bmp085.pressure() +Samples the sensor and returns the pressure in pascal as an integer. + +The optional `oversampling_setting` parameter determines for how long time the sensor samples data. +The default is `3` which is the longest sampling setting. Possible values are 0, 1, 2, 3. +See the data sheet for more information. + +#### Syntax +`bmp085.pressure(oversampling_setting)` + +#### Parameters +- `oversampling_setting` integer that can be 0, 1, 2 or 3. + +#### Returns +`integer` pressure in pascals. + +#### Example +```lua +bmp085.init(1, 2) +local p = bmp085.pressure() +print(string.format("Pressure: %s.%s mbar", p / 100, p % 100)) +``` + +## bmp085.pressure_raw() +Samples the sensor and returns the raw pressure in internal units. Might be useful if you need higher precision. + +#### Syntax +`bmp085.pressure_raw(oversampling_setting)` + +#### Parameters +- `oversampling_setting` integer that can be 0, 1, 2 or 3. + +#### Returns +`integer` raw pressure sampling value