Originally posted on MentalMunition.com, on 10/18/2013.
This week, the World Health Organiz...
Public Lab is an open community which collaboratively develops accessible, open source, Do-It-Yourself technologies for investigating local environmental health and justice issues.
Public Lab chatroom
Reset your password
Read more: publiclab.org/n/9818
Originally posted on MentalMunition.com, on 10/18/2013.
This week, the World Health Organization (WHO) took a major step by announcing that air pollution is carcinogenic to humans.
WHO also announced they are considering particulate matter, a major component of indoor and outdoor air pollution, as carcinogenic to humans as well.
The International Agency for Research on Cancer (IARC), a special unit inside WHO tasked with promoting international collaborations on cancer research, reached that conclusion after reviewing more than 1000 scientific papers on the carcinogenicity of air pollutants.
Air pollution and particulate matter will be included in IARC's Monograph, which is an encyclopedia of known carcinogens. Particulate matter will be classified as a Group 1 carcinogen, along with tobacco smoke and asbestos.
In an IARC press release , the Deputy Head of the Monographs Programme, Dr. Dana Loomis, said that the group's goal was to "evaluate the air everyone breathes rather than focus on specific air pollutants."
"The results from the reviewed studies point in the same direction: the risk of developing lung cancer is significantly increased in people exposed to air pollution," he said.
This finding elevates the urgency to clean up the air, both outdoors and indoors. But how does one find out the condition of the air in the first place? How healthy is your air?
Finding that answer can be difficult and expensive. Most Environmental Protection Agency-quality particulate matter monitors send air through a filter, which must be precisely weighed, and produce only one reading a day. Other EPA monitors that sample continuously cost more than $14,000 each to deploy.
Mass concentration is the norm for quantifying airborne particulate matter worldwide, and is usually expressed in micrograms of particulates per cubic meter of air (μg/m3). However, there are an increasing number of affordable particulate sensors coming on the market which rely instead on lasers and LEDs to count the number of particles instead.
For more background on the specifics of particulate matter sensing, please refer to earlier work on Mental Munition regarding particle counting sensors [3,4]. This post will focus on hacking together your own DustDuino prototype, which will allow you to monitor dust levels in your home (or back yard) from anywhere you have internet access, for about $100.
What will the end product look like, online? It will look a little like this (my own live DustDuino feed).
To make a DustDuino, you will need:
I did this Help out by offering feedback!
could defintely use this in plaquemines parish
picture of coal terminal pollution --check the one person's headlights
eustatic - Wow, that's quite a dust-up! Interesting that you mention Plaquemines, as I have in-laws in Louisiana. One lives not far from a large paper mill, which produces quite a smell.
I think this actually needs to be a wiki page for the tools tag to work. I could be wrong, though.
Yes - you could make a page at http://publiclab.org/wiki/dustduino and tag that?
I'm curious about two things - would this be appropriate for detecting silica particulate pollution, for communities with silicosis problems? And do you think that by skipping the wifi module and perhaps using a TinyDuino or something similar, we could cut the cost more? Tinyduino and digispark are like $12 vs Arduino's $40, and the wifi is $34; do you think a reasonable "low-end" pricepoint could be... ~$45?
Is this a question? Click here to post it to the Questions page.
I agree that the cost should be cut. It is prohibiting me from replicating this at the moment. Warren, can you post how to use those alternatives?
Warren and Aidan, you might be happy to know I've been developing a slimmed down board that will cut cost and energy consumption. Also looking at SD card as an option for local storage, perhaps with an RTC to give a time stamp for data logging.
This is being made possible with help from Internews, whose journalists I'll be training to deploy and service the DustDuino later in the year.
Here's an early alpha of the custom PCB, which was etched using a Modela CNC at the Champaign Urbana Community Fab Lab:
Awesome! Is this on github?
Aidan, I think the github link is in this writeup? I dunno, i'm a biologist, i don't speak github well.
Schroyer, that is cool. Bogalusa? or someplace in north louisiana?
I was thinking of using this as a possible screening tool with the ongoing PM sampling that we are doing in Plaquemines, in preparation for the Coal export dumping that is about to go down, due to the environmental victories in the NW against coal exports, and the pending Tar Sands refining that is going to produce large amounts of petroleum coke.
That drum sampler counts pm, but also comes with a lab that is identifying silicate, i think, from the physical samples. So perhaps if the dust duino code could spit out raw data from the sensor, some genius could re-interpret that raw data compared to the silica data we are getting with the other machine.
Because of the high expense (the drum monitor is $25k / 60 samples / year, for one machine) there's usually a limit to community monitoring, decisions have to be made about which community gets to use the machine...I'm hoping this could be both a low-cost tool that gives us more coverage, plus a way to avoid that kind of inter-community tension in "who gets the monitor" for five different communities, all of whom are suffering from asthma and dust, etc.
The particulates sensor being used for the DustDuino could not identify the composition of the particulate matter, but indeed could be helpful for your investigation. It would be great to get in contact with you and see how I might be able to help. Feel free to shoot me an email at email@example.com.
Also, I have in-laws in both Ouachita Parish and Baton Rouge. Had a chance to do some drone mapping in Ouachita Parish in November: https://mapknitter.org/map/view/prairie-bayou-la
Willie just posted a followup about a field-test of the optical sensor component: http://publiclab.org/notes/Willie/04-01-2014/field-testing-the-shenyei-pm-sensor
So I think the sensor the Speck is using, the "Syhitech DSM501A" (http://publiclab.org/notes/chrisbartley/04-15-2014/speck-particle-monitor) is ~$2, and the CMU folks said it compares well with the Shenyei ($15.90). I'm wondering about a radically cheap sensor that's just a Digispark ($12) plugged into the Syhitech sensor; it could cost < $20 total and just plug directly into your laptop. Or, could show an RGB LED with a color mapping for concentration.
Is reading from the Shenyei really as easy as this?
valP1 = digitalRead(8);
valP2 = digitalRead(9);
What do the values represent, or how do you scale them?
The Syhitech looks neat, especially for the price point, but I would like to see more peer-reviewed studies to confirm how well the sensor performs.
As for reading the Shineyi sensor, the process is more complicated than using digitalRead. The Arduino sketch and supporting documents in the GitHub repository should yield more information on how this all works.
Hi Folks! Great comment thread here. Just following up on Schroyer's lead: the github code had a nice link, in a commented section, to a useful resourceful for code for the sensor, on the "How Much Snow" site's Air Quality Sensing page.
Under the "Approach" section, they describe how the setup works. If I understand it: Willie's nice teardown of the Shenyei sensor shows that the sensor is shining an IR LED into an air gap inside the device, and the IR LED is collimated by a "light baffle" so that it comes out in a nice straight beam. There's also an IR photodiode that is looking at the same air gap -- using a focusing lens to enhance sensitivity, I guess, and gather light from the region of air that the IR LED beam is hitting.
The basic idea, I think, is that if there are no particles in the air, then IR photodiode won't see the collimated IR LED beam, which is directed off at an angle. But if a particle floats in front of the LED beam, the LED light may scatter off the particle at an odd angle, and some of the time this scattered light will be directed towards the photodiode. (Either this is how it works, or the photodiode is constantly receiving a certain amount of IR light; when a particle floats in front of the photodiode, we no longer see this light, and this is our indication that there's a particle in the air gap. But I think it's the former situation, because of the way in which the IR LED and the photodiode are angled.)
In any case, the IR photodiode puts out a voltage signal, which an Arduino can measure on a pin. It seems that the photodiode is constructed such that if it sees any IR light above a certain threshold, it sends out a "high" value, which seems to be 5V in the case of this particular photodiode. (This is the same functionality you'd want in e.g. an IR remote.) So you hook up an Arduino pin to the photodiode, and you write code that runs a 'timing loop' to measure what fraction of the time the photodiode pin is 'low' in a given sampling period (this is set by the "sampletime_ms" variable in the github code, which appears to be set to 30 seconds). This gives you what they're calling the "low pulse occupancy time" (see the figure here -- and they've derived a formula for how to relate the "low pulse occupancy time" to the "particles per .01 cubic feet".
So, that's all just to say -- in order to hook it up, you seem to need simply to be able to register a 'high' value on a digital pin -- easy peasy -- the rest of the code is just performing the 'low pulse occupancy time' calculation in the loop() function by setting a flag, starting and stopping a timer, etc -- pretty standard stuff. It looks like the Shineyi photodiode might require 5V, so you might need your microcontroller to be running at 5V (or, if it isn't, to be able to power a 5V device, and to handle 5V signals via a level shifter); and you might also need the microcontroller to be running at a certain minimal clock speed -- since they're using an UNO, 16 MHz is apparently sufficient.
Note: it looks like there's some additional discussion of this technique (using this particular sensor, I think) in an Arduino forum post, here.
Awesome commentary here.
By popular demand: a dustduino wiki page: http://publiclab.org/wiki/dustduino
Got to give the people...give the people what they want.
Thinking about this a bit further: when determining particle counts, is the "% low pulse occupancy time" technique relatively insensitive to temperature? Is the picture I'm supposed to have that regardless of actual air flow, the relative amount of time that the IR beam is interrupted by particles would be the same? Or would it be help to calibrate the device by measuring the temperature inside the air chamber, with e.g. a thermistor?
Aside: if it would help to calibrate the sensor by measuring actual air flow through the device, a 'hot wire anemometer', built using a theristor, might be a neat approach -- there's an open source design for such a device, here:
The Speck team indicates that airflow is a big issue. they're controlling with a fan. If I move the Speck around just a little bit the values change dramatically. Also, the EPA requires flow calibration before each filter test. I think calibrating for temp, humidity, and controlling airspeed (like Don's anemometer suggestion) are going to be crucial
Hi Matthew! Can I use the picture of the Dustduino in a presentation I'm giving on Wednesday? Hope all is well, did you get any sent off to Wisconsin?
Hi guys! I'm Italian and i'd like to build a Dustduino... How can I find the components of the Dustduino?
right above "Step 1" is a paragraph with links to the stores where parts are available.
Hey guys. I'm building a similar system, but instead of Shinyei PPD-42, I am using SHARP GP2Y1010AU0F dust sensor. However, I am not sure whether this sensor needs fan to direct air into the chamber or not. Does this sensor has that resistor heating elements too?
Any advice would be much appreciated! thank you!
here's the datasheet for that sensor.
@mathew wrote a great overview of lots of different ways that different projects/sensors measure particulates: http://publiclab.org/notes/mathew/05-05-2015/evaluating-low-cost-optical-dust-sensors
I think the long and short of it is that if the datasheet doesn't specify, you may have to open it up like Willie Shubert did: http://publiclab.org/notes/Willie/04-01-2014/field-testing-the-shenyei-pm-sensor
And I've been working with @mathew on running a whole batch of them at the same time, to compare: http://publiclab.org/notes/mathew/06-01-2015/plan-for-recording-shinyei-optical-sensors-using-open-pipe-kit
so it'd be great to try to write a matching Open Pipe Kit driver for that sensor too! How much does it cost?
@schroyer Putting together my own DustDuino now and heads up, the personal Xively data hosting is buggy as all hell now. Can't even get past creating a development device without getting a general Internal Server Error. I'm guessing they're maybe phasing out non-enterprise accounts?
I'm looking at some of the other data stream hosting options now. Any opinions before I go and start altering code?
I'm using thingspeak to post my data online as Xively is not free anymore or at least you can't use free account to post all this data online.
I've got one question though - if P1 channel is for counting particles 1-10 microns then why do you count PM 10 from channel P2? In your code:
float PM10count = countP2;
float PM25count = countP1 - countP2;
float PM10count = countP2;
float PM25count = countP1 - countP2;
Question for @Schroyer , @Willie , @imvec , @nanocastro , @jefffalk or anyone else who is able to answer this question - I understand that the Shinyei sensor must be placed vertically such that the chrome tube has a 'northwest' orientation. Are there important considerations for the housing of this sensor and the other electronics? Does the shinyei sensor need to be open to the air? Does it only need to be partially exposed? Should it be entirely closed to the air in a solid and opaque container?
Any and all help appreciated
Hi! As I understand the sensor needs to be vertical and inside a ventilated dark case but I'm not sooooo sure.
Maybe @GreenFrogg might also have an idea? @jitovien could you post a pic of the case open as you received it in the mail?
If its still a point.
From my archive.
The project I am involved in has changed to the SDS011.
You must be logged in to comment.
This is marked this as an activity for others to try.
Try it now
Click here to add some more details.
How long does this activity take?
How hard is this activity?
What kind of activity is it?
What is it's current status?