NAME Device::Chip::SCD4x - chip driver for SCD40 and SCD41 SYNOPSIS use Device::Chip::SCD4x; use Future::AsyncAwait; my $chip = Device::Chip::SCD4x->new; await $chip->mount( Device::Chip::Adapter::...->new ); await $chip->start_periodic_measurement; while(1) { await Future::IO->sleep(1); my ( $co2, $temp, $humid ) = await $chip->maybe_read_measurement or next; printf "CO2 concentration=%dppm ", $co2; printf "Temperature=%.2fC ", $temp; printf "Humidity=%.2f%%\n", $hum; } DESCRIPTION This Device::Chip subclass provides specific communication to a Sensirion SCD40 or SCD41 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. 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. read_config $config = await $chip->read_config; Returns a HASH reference containing the compensation values from chip config. temperature_offset # in degrees C sensor_altitude # in metres ambient_pressure # in hPa start_periodic_measurement await $chip->start_periodic_measurement; Starts periodic measurement mode. read_measurement ( $co2concentration, $temperature, $humidity ) = await $chip->read_measurement(); Returns the latest sensor reading values. Returns a 3-element list, containing the CO竄� concentration in PPM, temperature in degrees C, and humidity in %RH. maybe_read_measurement ( $co2concentration, $temperature, $humidity ) = await $chip->maybe_read_measurement(); If the sensor has a new measurement ready, returns it. Otherwise, returns the last successful measurement reading. After initial startup, this will return an empty list before the first reading is available. get_serial_number $bytes = await $chip->get_serial_number; Returns a 6-byte encoding of the chip's internal serial number. AUTHOR Paul Evans <leonerd@leonerd.org.uk>