NAME Device::Chip::PMS5003 - chip driver for PMS5003 SYNOPSIS use Device::Chip::PMS5003; use Future::AsyncAwait; my $chip = Device::Chip::PMS5003->new; await $chip->mount( Device::Chip::Adapter::...->new ); $chip->start; my $readings = await $chip->read_all; printf "Particulate matter readings are %d / %d / %d\n", @{$readings->{concentration}}{qw( pm1 pm2_5 pm10 )}; DESCRIPTION This Device::Chip subclass provides specific communication to a PLANTOWER PMS5003 particle concentration sensor attached to a computer via a UART adapter. (Though if the communication protocol is the same, it is likely also useful for a variety of other related sensors too). 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. start $chip->start; Begins the UART reading loop. This must be called before you can use "read_all". read_all $readings = await $chip->read_all; Waits for the next report packet from the sensor, then returns the readings contained in it. This is in the form of a two-level hash: concentration => HASH # containing pm1, pm2_5, pm10 atmost => HASH # containing pm1, pm2_5, pm10 particles => HASH # containing pm0_3, pm0_5, pm1, pm2_5, pm5, pm10 AUTHOR Paul Evans