[Idea] Air Quality Monitoring

The Problem

Melting plastics in your home, even PLA, could be harmful to your health. Here are some research articles:

Tl;dr: it may be bad, more research is needed. No scaremongering, just science.

While we wait for additional research, an easy way to enable OctoPrint users to monitor air quality around their printer would:

  • Reduce the health risk of 3D printing at home
  • Help the community learn which filaments and brands present the highest/lowest risks
  • Increase awareness of potential health risks, and potentially research funding as a consequence
  • Increase interest and development of DIY enclosures and filtration systems
  • Encourage filament companies to actively work to reduce potentially harmful emmisions

Help Wanted...

I'm a Product Manager with some UX experience. While I might have a go at this myself eventually, I wouldn't consider any output "production-ready", and this really needs to be built to modern standards, modularity/encapsulation/etc, making it easy to maintain and contribute to, and relatively easy to add support for additional sensors and outputs in the long term once the framework of the plugin is in place. I can research, organise, plan, present, wireframe, etc.

Current Plugins

This one uses the SDS011 sensor. While it's a great start, it's complicated to install and has limited functionality.

I wasn't able to find any others.

Particulate Matter Sensor

The hardware should balance cost, accuracy, size and ease of acquisition to reduce the barrier for getting this set up. I'd suggest starting with a single sensor that balances these attributes, and add more in the future. At a minimum, the sensor should output measurements for 1.0 μm, 2.5 μm and 10 μm particles.

Options:

HoneyWell HPM HPMA115C0-003 and -004 https://www.honeywellscportal.com/honeywell-sensing-hpm-series-particle-sensors-datasheet-32322550-e-en.pdf

  • Factory calibrated, but relatively expensive and harder to use
    Plantower PMS5003
  • Well regarded in other projects and scientific experiments.
    Plantower PMS5003ST
  • Also includes formaldehyde, temperature and humidity sensors, but rarely mentioned online - no experiments, very few public projects, and if one sensor fails, it cannot be replaced individually.
    Plantower PMS7003
  • Similar to the PMS5003 but half the size
    Plantower PMSA003
  • Seems to be newer and smaller than the PMS7003. Hard to tell from the (untranslated) comparison table http://www.plantower.com/Templates/panteng/images/xxb.jpg
    SDS011
  • Doesn't seem to be as accurate as the other options.
    SDS021
  • Doesn't seem to be as accurate as the other options.
    SGP30
  • Board only, no case with fan/duct to provide continuous air flow across sensor.

So far, I think the Plantower PMSA003 is the one to go with, at least for an initial version and recommendation to users. This should be connected via USB to aid in support for various OctoPrint capable devices and for multiple sensors in a future version.

Questions:

  1. How can it be "calibrated" at home by an OctoPrint user?
  2. Humidity can affect the sensor reading, and consequently the humidity should also be measured and compensated for. How?

Humidity Sensor

Pending research

BME680

VOCs Sensor

Pending research

BME680

Serial UART to USB Adaptor

Some information about what these do and the various options can be found here: https://www.sjoerdlangkemper.nl/2019/03/20/usb-to-serial-uart/

The FT232R seems to be the most popular. It's easily available cheaply from AliExpress, has 6 pins, which will come in handy with certain sensor functions, and doesn't require drivers to be installed on a number of compatible platforms.

Requirements

  • Must always be as easy as possible to install.
  • Python 3 for compatibility with OctoPrint 1.4 onwards.

MVP

  1. What are the PM measurements in my enclosure/print area?
  2. Compensates for humidity.
  3. Use standby mode of sensor intelligently between readings to ensure longevity of parts, as they tend to have a stated lifetime before readings lose accuracy

MVP+1

  1. How do my measurements compare to my baseline when there is no 3D printing activity?
  2. Where do my measurements sit in the PM guidelines? https://en.wikipedia.org/wiki/Air_quality_index

MVP+2

What are the VOC measurements in my enclosure/print area? This includes MVP+1 requirements applied to VOCs.

MVP+3

What were the readings?

  1. Database of values over time
  2. Presentation of values over time

MVP+4

How do the readings compare with readings outside of the enclosure/print area?

  1. Support for two sets of sensors.

MVP+5

What are my readings for each filament?

  1. Integrate with Filament Manager or similar

MVP+6 and beyond

  1. Additional sensor support
    2.Support for N sets of simultaneous sensors
  2. Consider separating into a separate, standalone project for multi-location (whole home) air quality monitoring, with a 1st party OctoPrint integration

Reference Projects

The following projects use various sensors. I've been collecting these as references for interacting with the sensors.








https://hackernoon.com/how-to-measure-particulate-matter-with-a-raspberry-pi-75faa470ec35


https://forum.mysensors.org/topic/6404/next-generation-dust-sensor-for-mysensors
https://www.rigacci.org/wiki/doku.php/doc/appunti/hardware/raspberrypi_air

https://cassiopeia.hk/laserdust/

https://www.letscontrolit.com/wiki/index.php/PMSx003

Next Steps

  1. Continue research to fill the blanks above.
  2. Start collecting ideas and feedback. What do you think?
1 Like

Interesting idea. I've been making updates to the tasmota plugins that incorporate sensor data, both energy monitoring (if available) and temperature/humidity data as long as the tasmota firmware is able to support the sensors. I wonder if tasmota might support these types of sensors?

I am planning on adding a temperature/humidity sensor to my WiFi filament weighing sensor. It should be trivial to use the BME680 instead of the BME280 that I was originally planning to use.

It should also be able to support some of the other sensors. And since it's WiFi, it shouldn't be too hard to get OP to pull in the data from it.

Thanks! It looks like the PMS5003 and PMS7003 are supported, but they haven't listed the PMSA003. It sounds like it might work, though.

Which plugins might support them? This one?

I'm not entirely sure what Tasmota does. It sounds like you need 1x ESP8266 per sensor, and the ESP8266 would share the data output onward in a standardised format? Could be convenient for placing in different rooms, and also if your enclosure top is removable, but for something initial it might be more accessible to keep the cost and complexity down and plug directly into USB.

Temperature and humidity make sense I for a filament-related plugin, particularly as I'm sure a number of people will have a drybox for their filament (I will soon, sick of it snapping after a period without much printing) and will want to know their drybox is working as expected.

If this is something you might want to work on, it could be worth cloning your plugin and re-purposing the clone to support these sensors and appropriate output so it can be used alongside or independently of the WiFi weight plugin? Better than starting from scratch.

Yep, that's the one. My current development branch linked below has the integration. Of course it's currently only temp and humidity for environmental sensors. The tasmota firmware is installed on esp device (I've used mains power relays, specifically sonoff devices, and a nodemcu module successfully). The device handles the reading of data, the plugin just calls out and requests the current data and logs it.

To this, I would add that UFPs from teflon ("PTFE") are known to kill birds-as-pets ("teflon toxicosis"). The temperatures required are usually too high, practically-speaking, for 3D printers.

Although I would agree with the caution for any other type of filament, it feels to me that PLA printing is quite safe in the average environment (outside of a printer farm).

Not to be mean but it feels like the average user these days really doesn't think like a chemist/scientist.

I was asked once to create an in-the-barn milk fat measuring device for dairy farmers. I could easily create one for a scientist. But for a farmer? I passed on the project.

Short answer: don't have the user calibrate. Have the user indicate the measurements of the room they're in (square footage, for example) and behind-the-scenes you've provided a linear function to compensate.


All this said (and I applaud your efforts) I myself would just jump to the next logical step and work on filtering devices and products within this space rather than sensoring devices. In theory then, I might work up sensoring to measure the before/after for the sake of the brochure for the sales people.

To me, it's like there are two parallel universes: one in which many people in Hong Kong, say, are wearing sophisticated IoT devices which tell them how many UFPs they're breathing in and the second universe in which they're instead wearing trendy/fashionable steampunk gas masks.

1 Like

Good idea on calibration. I'm not sure at this point what calibration in this context is, so I'm still to work out how this can be approximated with a few settings options.

Filtering is definitely on my list as I slowly work to complete my enclosure, but there are some assumptions we need to unpack before switching focus from sensors to filters:

  • It is easy for the average user to discover, understand and build a suitable, reliable filter
  • The average user has their printer(s) in a (somewhat) airtight enclosure
  • The average user has a "safe" place to print parts for their filter in the meantime

I'd guess that those assumptions are false. There's also a relatively high cost (in time, money and plastic) to get from "printer on the table" to "enclosed and filtered". While trying to get to this stage, it'd be nice to be able to buy $20 of hardware, plug it in to a Pi, stick it next to the printer, and get some idea on if/when it's safe to go back in the room, and if it's worth me spending my time, money and plastic on building an enclosure and filtering system.

A parallel effort on a filter system for the masses would be great. I've struggled to find any existing public effort on this though, so thought I'd tackle it later.

I contracted for Robo 3D down in San Diego and was very interested in the topic since there were always many printers running all sorts of exotic filament at all times of the day. There was zero regard for the safety concerns and I tried to drag them kicking and screaming into that reality at least from an employee-safety standpoint.

The problem is that the HEPA standard specifies the ability to filter down to 0.3 microns - and the UFPs as measured by the researchers above ranged from 0.012 - 0.116 microns.

1 Like