Arduino was chosen for the hardware platform, this was an easy choice
because we had to prototype it quickly and wanted to produce only a
small batch of units.
To get keep enough measurements in memory during development an Arduino
mega 2560 was chosen and later kept.
The Arduino board is responsible for:
Analog readings from the dust sensor
I2C readings from the temperature and humidity sensor
PWM speed control of the FAN
RPM measurements from FAN tachometer
User communication, reading user configuration from UART and sending
CSV measurements to UART
Status/alert LED control, when something wrong is detected
Prototype shield v3
All the components had to be soldered and the prototype shield offer a
lot of room for soldering, and allowed us to keep the project nice and
Optical dust sensor
A SHARP GP2Y1010AU0F was chosen after some tests with other possible
The main advantage of this sensor is that the airflow traverses it in
straight line and the through hole is big enough. This way, under normal
conditions, no dust is accumulating inside the sensor and it can operate
for years with no maintenance. Of course, it has to be cleaned if there
is a severe dust pollution incident.
Measurements are easy to read.
It has only one channel for particles larger than .5 microns but this is
good enough for us. It is not calibrated and you need to calibrate it
yourself if you want some meaningful measurements.
Precise humidity and temperature sensor
Since optical dust measurement depends of IR refraction and that
refraction depends on dust particle surface moisture, a precise and
calibrated humidity sensor is convenient to tweak calibration factors
for year long analysis.
Honeywell HumidIcon HIH-6120 I2C is perfectly fulfilling this role.