An essential aspect of measuring air quality is to determine the number of small particles. That is, things smaller than 10µm and 2.5µm. Such tiny particles are roughly the size of a microbe and can penetrate the lungs, causing many health issues.
But how we can measure such small things? Most often, this is done via laser scattering: a laser light source illuminates small particles as they are pulled through the detection chamber. As these particles pass through the laser beam, the variations in light intensity are recorded by a photodetector. Those variations can be further analyzed to determine number and size of particles.
Amongst other sensors that use this technology lies the Honeywell HPMA115S0-XXX, a calibrated sensor with digital output via UART protocol. The sensor can determine PM2.5 and PM10 in concentrations up to 1000µg/m3, with an accuracy of ±15%.
When measuring, the fan draws the air in through the air inlet. Particles in the air go through the detection chamber, where they pass through the laser beam. The light reflected off the particles is captured and analyzed by a proprietary algorithm, and the amount of particles in the air is determined. The sensor is internally calibrated, so all we have to do is read the results on the UART interface,
The sensor can operate in the -10°C to 50°C interval, with humidity up to 95%RH, non-condensing, Its lifespan is about 20,000 hr in continuous mode.
The sensor has a very small connector. The datasheet specifies the mating connector as Molex 51021-0800. Be warned, that part no. is only for the plastic housing, it comes without pins.
I deeply hate crimping such smaller connectors, so I tried to find an easier alternative. And I have found some pre-crimped PicoBlade, Molex 06-66-0015 cables.
You might notice I haven’t populated the whole connector as some pins are not connected internally.
[Update May 18. 2018]: As correctly stated by Lloyd in the comments section, there was a mistake in the original blog post. I have inadvertently used a picture from the making of the project which showed incorrect wiring. This has been corrected and replaced with the picture below:
Wiring of the sensor requires only four pins:
Pin 2 (Vcc) goes to the 5V pin on the Arduino board.
Pin 6 (UART TX) goes to the RX pin of the Arduino board. This pin uses 3.3V logic level.
Pin 7 (UART RX) goes to the TX pin of the Arduino board. This pin uses 3.3V logic level.
PIN 8 (GND) goes to GND pin of the Arduino Board.
Pin 1 (3.3V output) is left unused. The wire is in not connected, as the Arduino board provides its own 3.3V power supply.
Please observe the pin numbering, with the rightmost pin being pin #1 (close to the fan), and the leftmost pin being pin #8.
Now, the sensor is ready to be used. What about communicating with an Arduino?