mattludwigs / bmp280

Use Bosch barometric pressure sensors in Elixir

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BMP280

Hex version CircleCI

Read temperature and pressure from Bosch BMP280 and BME280 sensors in Elixir.

Add {:bmp280, "~> 0.2.0"} to your project's dependencies. Here's an example use:

iex> {:ok, bmp} = BMP280.start_link(bus_name: "i2c-1", bus_address: 0x77)
{:ok, \#PID<0.29929.0>}
iex> BMP280.read(bmp)
{:ok,
 %BMP280.Measurement{
   altitude_m: 46.60861034844783,
   humidity_rh: 50.190531261362295,
   pressure_pa: 100766.41878837062,
   temperature_c: 17.373406414553756
 }}

Depending on your hardware configuration, you may need to modify the call to BMP280.start_link/1. See t:BMP280.options/0 for parameters.

All measurements are reported in SI units.

The altitude measurement is computed from the measured barometric pressure. To be accurate, it requires either the current sea level pressure or the current altitude. Here's an example:

iex> BMP280.force_altitude(bmp, 100)
:ok

Subsequent altitude reports should be more accurate until the weather changes.

Support for other Bosch barometric sensors

Successors to the BMP280 and BME280 look similar, but not tested yet. If you're using one of them, please help me by either verifying that they work or adding support for them.

About

Use Bosch barometric pressure sensors in Elixir

License:Apache License 2.0


Languages

Language:Elixir 100.0%