NAME Device::Chip::BME280 - chip driver for BME280 SYNOPSIS use Device::Chip::BME280; use Future::AsyncAwait; my $chip = Device::Chip::BME280->new; await $chip->mount( Device::Chip::Adapter::...->new ); await $chip->change_config( OSRS_H => 4, OSRS_P => 4, OSRS_T => 4, MODE => "NORMAL", ); my ( $pressure, $temperature, $humidity ) = await $chip->read_sensor; printf "Temperature=%.2fC ", $temperature; printf "Pressure=%dPa ", $pressure; printf "Humidity=%.2f%%\n", $humidity; DESCRIPTION This Device::Chip subclass provides specific communication to a Bosch BME280 attached to a computer via an I²C adapter. The reader is presumed to be familiar with the general operation of this chip; the documentation here will not attempt to explain or define chip-specific concepts or features, only the use of this module to access them. METHODS The following methods documented in an await expression return Future instances. read_id $id = await $chip->read_id Returns the chip ID. read_config $config = await $chip->read_config Returns a HASH reference containing the chip config, using fields named from the data sheet. FILTER => OFF | 2 | 4 | 8 | 16 MODE => SLEEP | FORCED | NORMAL OSRS_H => SKIP | 1 | 2 | 4 | 8 | 16 OSRS_P => SKIP | 1 | 2 | 4 | 8 | 16 OSRS_T => SKIP | 1 | 2 | 4 | 8 | 16 SPI3W_EN => 0 | 1 T_SB => 0.5 | 10 | 20 | 62.5 | 125 | 250 | 500 | 1000 change_config await $chip->change_config( %changes ) Writes updates to the configuration registers. Note that these two methods use a cache of configuration bytes to make subsequent modifications more efficient. read_status $status = await $chip->read_status; read_raw ( $adc_P, $adc_T, $adc_H ) = await $chip->read_raw Returns three integers containing the raw ADC reading values from the sensor. This method is mostly for testing or internal purposes only. For converted sensor readings in real-world units you want to use "read_sensor". read_sensor ( $pressure, $temperature, $humidity ) = await $chip->read_sensor Returns the sensor readings appropriately converted into units of Pascals for pressure, degrees Celcius for temperature, and percentage relative for humidity. AUTHOR Paul Evans