the goal is to read and save the raw output of a Shinyei PPD42 particle sensor to a local storage on a Raspberry Pi and out to the internet through the Open Pipe Kit. Later on, we'll be trying to translate the raw sensor data to standard presentation formats in um/m3. We want to make that conversion as transparent as possible so that calibrations or modifications to the raw count can be applied retroactively.
the driver is being worked on in this Github repository.
the Raw data:
The data coming out of an Shinyei PPD42 optical sensor is raw count of a particle size cutoff as the particles transit the optical sensor.
as particles transit, they generate a signal in the photodiode. A circuit reads this signal looking for spikes correlated with larger particles.
Output P1 is all particles above 1.2um and output P2 is all particles bigger than 2.5um. output P2 therefore contains P1. These two outputs are designed to be roughly equivalent to PM2.5 and PM10 particle sizes.
sampling the sensor
Shinyei recommends sampling the sensor by measuring the % of time that particles are transiting the sensor averaged over 30 seconds, for P1 and P2 individually.
Shinyei's documents: Size_Discrimination(PPD42NJ).pdf
the software strategy:
The goal is to make the data flow as flexible as possible. We’ll be using an Arduino-based device for PWM sampling of the sensor, bridging using Firmata to communicate with a Raspberry Pi running Open Pipe Kit.
On the ‘Pi / OPK
Firmata.js will be used to sample the sensors and send on to OPK, which will store the raw particle count, length of time of count, and timestamp for count start, calculated PM2.5/PM10 equivalences, and a record of the equivalence calculation.
Further work: the desired format
we want individual particle counts that correspond to EPA’s PM2.5 and PM10 standards. those standards are based on tools that differentiate between particles by separating them based on their drop in flight, and then weighing collected particles. our real-time monitor can’t do that, so we’re going to try to calculate an equivalence between Optical particle counts equivalence to the ug/m3 (of air) format of PM standards. that estimation is based on a calculation of equivalency between the albedo (brightness) and transit of a particle across an optical sensor and the “mass mean aerodynamic diameter,” which is a way of saying particles that fall through the air at the same rate as a perfect sphere of 10um or 2.5um. This will always be a little fuzzy.
To quote @DavidMack: The EPA definition of PM fractions can be found in 40 CFR Part 50, seehttp://www.ecfr.gov/cgi-bin/text-idx?tpl=/ecfrbrowse/Title40/40cfr50_main_02.tpl "particulate matter shall be measured in the ambient air as PM10 (particles with an aerodynamic diameter LESS THAN OR EQUAL to a nominal 10 micrometers)" and PM2.5 is a "LESS THAN OR EQUAL to a nominal 2.5 micrometers" The 50% cut point refers to the EFFICIENCY at which particles are removed by the selective inlet at the given size. So for PM10, the inlet removes 50% of particles at 10 microns but above 10 microns the removal efficiency increases and below 10 microns removal efficiency declines. Thus the resultant fraction is not a normal distribution (e.g. 50% above and 50% below) but a skewed distribution (see graph below). Also, the rate at which removal efficiency changes is referred to as the cut point SHARPNESS.