Shinyei PPD42NS dust sensor

Stuttgart, the city I live in, is on first place for most particles in the city. But there is only one sensor in the city to measure the particles.

As OK Lab Stuttgart we want to get open data from the city or acquire our own data. In this case we want more data points for particles. And not only at one position in the city, but on as many as possible.

We decided to try the PPD42NS. Other projects used the PPD42NS before:

The datasheet of the PPD42NS from the shinyei website: http://www.sca-shinyei.com/pdf/PPD42NS.pdf. And some kind of deconstruction how the sensor works: http://takingspace.org/wp-content/uploads/ShinyeiPPD42NS_Deconstruction_TracyAllen.pdf

There are a few examples how the sensor is used with Arduino, i.e. http://www.seeedstudio.com/wiki/Grove_-_Dust_Sensor#Usage or https://github.com/Seeed-Studio/Grove_Dust_Sensor.

The arduino is not cheap enough to build lots of them and distribute them. And wifi is missing (or too expensive). So we decided to try the ESP8266 which is widely used in the hacker community at the moment.

Our sourcecode is at https://github.com/opendata-stuttgart/sensors-software/tree/master/esp8266/ppd42ns. But this is work in progress. The esp8266 is a lot faster than an arduino, so we have problems with very short peaks in the digital output of the sensor and need to smooth the signal. To illustrate the problem we made a few pictures with a digital oscilloscope:

ppd42ns oszilloscope imageppd42ns oszilloscope imageppd42ns oszilloscope imageppd42ns oszilloscope imageppd42ns oszilloscope image