Class: I2C::Driver::BME280

Inherits:
Object
  • Object
show all
Defined in:
lib/i2c/bme280.rb

Constant Summary collapse

I2C_ADDRESS =

I2C Bus address

0x76

Instance Method Summary collapse

Constructor Details

#initialize(device:, i2c_address: I2C_ADDRESS) ⇒ BME280

Returns a new instance of BME280.

Parameters:

  • device (Integer|String|I2C::Dev)

    The I2C device id of i2c-dev, a string that points to the i2c-dev device file or an already initialized I2C::Dev instance

  • i2c_address (Fixnum) (defaults to: I2C_ADDRESS)

    The i2c address of the BME280. Factory default is 0x76.

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/i2c/bme280.rb', line 10

def initialize(device:, i2c_address: I2C_ADDRESS)
  device = "/dev/i2c-#{device}" if device.is_a?(Integer)

  if device.is_a?(String)
    raise ArgumentError, "I2C device #{device} not found. Is the I2C kernel module enabled?" unless File.exists?(device)
    device = I2C.create(device)
  end

  raise ArgumentError unless device.is_a?(I2C::Dev)

  @device = device
  @i2c_address = i2c_address
end

Instance Method Details

#allHash

returns all sensor values in a hash t: temperature p: pressure h: humidity

Returns:

  • (Hash)

    All sensor values



29
30
31
# File 'lib/i2c/bme280.rb', line 29

def all
  data
end

#humidityFloat

Returns The humidity in percent (0.0-100.0).

Returns:

  • (Float)

    The humidity in percent (0.0-100.0)



44
45
46
# File 'lib/i2c/bme280.rb', line 44

def humidity
  data[:h]
end

#pressureFloat

Returns The pressure in hectoPascal.

Returns:

  • (Float)

    The pressure in hectoPascal



39
40
41
# File 'lib/i2c/bme280.rb', line 39

def pressure
  data[:p]
end

#temperatureFloat

Returns The temperature in Celsius.

Returns:

  • (Float)

    The temperature in Celsius



34
35
36
# File 'lib/i2c/bme280.rb', line 34

def temperature
  data[:t]
end