NAME
Device::Chip::PMS5003
- chip driver for PMS5003
SYNOPSIS
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 <leonerd@leonerd.org.uk>