NAME
Device::Chip::SGP4x - chip driver for SGP40 and SGP41
SYNOPSIS
use Device::Chip::SGP4x;
use Future::AsyncAwait;
my $chip = Device::Chip::SGP4x->new;
await $chip->mount( Device::Chip::Adapter::...->new );
await $chip->execute_conditioning;
while(1) {
await Future::IO->sleep(1);
my ( $raw_NOx, $raw_VOC ) = await $chip->measure_raw_signals;
printf "NOx = %d, VOC = %d\n", $raw_NOx, $raw_VOC;
}
DESCRIPTION
This Device::Chip subclass provides specific communication to a Sensirion SGP40 or SGP41 attached to a computer via 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.
MOUNT PARAMETERS
addr
The I²C address of the device. Can be specified in decimal, octal or hex with leading 0 or 0x prefixes.
METHODS
The following methods documented in an await expression return Future instances.
execute_conditioning
await $chip->execute_conditioning;
Performs a conditioning operation.
execute_self_test
await $chip->execute_self_test;
Performs a self-test operation.
measure_raw_signals
( $adc_VOC, $adc_NOx ) = await $chip->measure_raw_signals;
Performs a sampling cycle and returns the raw ADC values from the sensor elements.
Optionally, compensation values for humidity and temperature can be passed as named parameters. If not supplied, the following defaults apply:
( $adc_VOC, $adc_NOx ) = await $chip->measure_raw_signals(
humidity => 50, # in units of % RH
temperature => 25, # in units of degrees C
);
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>