Monitoring the Particulate Matters (PM) and Volatile Organic Compounds (VOC) in the air we breathe can help detect exposure to indoor pollutants. Such as VOCs emitted by furniture or by activities like cooking or woodworking. And PMs coming from the HVAC system, vacuuming, or outside air.
My initial need is to monitor a room with a 3D printer, and the air quality in a bedroom at night. Indeed, 3D printing emits fumes that are known to impact health, as documented for instance in this post: 3D Printing Fumes are Toxic (sorry!)
But thanks to monitoring, if concerning levels are detected, actions like filtering or ventilation can then be taken to improve air quality.
Unfortunately, although PM+VOC monitors are now common, I could not find an affordable one that had the reliability, sensors, graphing, 24/7 operation, or datalogging capabilities I was looking for. And many have shortcomings, as reported by users: screen turning off, cloud dependency, battery runtime, longevity...
The closest match were the open source monitors from Airgradient: basic kit ($67), all-included ($138). They are used worldwide by DIYers and communities, and the data collected is used to constantly improve sensor calibration & performance. Amazing user stories and technical posts can be found on their blog. However, modifying them to add my Must features would be pricey and kludgy.
Examples of a few monitors:
9-in-1 Monitor, $60-100, no datalogging |
Temptop PM2.5-10, TVOC, Formaldehide, data export, $170-200 |
![]() |
Airgradient One kit, $138 |
And none provides a way to trigger actions without a network connection, like turning on ventilation when levels are high.
On the other hand, in addition to PM/VOC levels, a programmable device could provide powerful features and flexibility, such as triggering ventilation, polling sensors in multiple rooms, controlling a 3D printer's accessories (LEDs, chamber heater, carbon filter...), or interfacing with Home Assistant.
So there, a fully airtight justification as to why I clearly had no choice but to develop my own air quality datalogger & control device 😂
The first version, V1, can record up to 2 PM/VOC sensors in a room. V2 will include wireless sensor nodes, i.e. the ability to collect data from devices in other rooms.
This post describes V1's architecture and features. The goal is to only use off-the-shelf parts: no custom PCB or cables, and no soldering. So anybody can put one together without specific tools, except for the enclosure and the high-capacity battery option.
2 more posts will follow, covering V1's implementation (code, schematics, prototyping) and results (3D printing emissions, bedroom nightly buildup, etc).
Everything is open source (Arduino code, CAD files...) and published on Github
Happy monitoring and clean air to all !
Form Factor
Preliminary CAD:
Screenshots (preliminary)
Below are screenshots from the current prototype to give a feel for its usage.
A screen snapshot feature is under development but not available yet. So for now phone pics will have to do:
![]() | |
PM & VOC values (from 2 Sen55s) |
![]() |
PM1,2.5,4,10ppm charts |
![]() |
Settings |
The screen mode is selected by the 3 buttons on top of the WIO Terminal:
- Sensor values
- Graphs
- Top Bar controls (Record, Settings, SD card, etc)
Navigating within each screen is then done via the WIO's joystick.
User Interface
Architecture
The WIO Terminal from Seeed Studio is the heart of the system. It is feature packed, with an ARM M4, a lot of memory, screen, enclosure, buttons, wifi, bluetooth, etc. Gigabytes of data can be recorded via its micro SD card slot. Crucially, it also has usually-well-documented interfaces, libraries, and code examples. At $29 (Feb'24) it was a no-brainer.
And, cherry on the béret, thanks to its 40pin Raspberry Pi header it can easily be unplugged and reused on other projects, making it extremely versatile.
It takes only a SEN55 and a USB-C cable to start measuring PM + VOC + NOx + T + RH, with the WIO.
The SEN55 sensor, from the Sensirion Swiss company, is a great sensor for light applications. It has a solid family track record, and comes with a detailed datasheet and extensive code examples, guides & documentation. It supposedly measures the following PM sizes: 1, 2.5, 4, 10μm.
At $35 (w cable) it is a bit pricey but, unlike most PM sensors, it also measures VOC, NOx, Temperature, Humidity, and performs auto compensation against T/RH, as well as auto cleaning.
Cheaper options: SEN50 (PM only), SEN54 (PM,VOC,T,RH), and the PMS5003 (PM only) from the Plantower Chinese company. The Sensirion and Plantower PM sensors are somewhat similar in performance and build quality
The total cost for this project can vary widely depending on seller, shipment, configuration. The bare minimum is ~$50, assuming a sensor cheaper than the SEN55. A full configuration like in the diagram above can reach over $200 if using US stores (maybe ~$70 via AliExpress?).
Optional Parts
RTC: the WIO Terminal's SAMD51 processor chip already has an internal RTC. However, it does not have a VBat circuit and its drift is very temperature dependent. If retaining date/time during power loss or operating without wifi network time is desired, an external RTC like the Adafruit PCF 8523 ($7) is recommended.
CO2: useful for detecting insufficient air change rates (ACH), like in a bedroom at night. The Adafruit 5187 ($45) board uses the Sensirion SCD40 NDIR sensor that takes true CO2 measurements (*). The SGP30 VOC/eCO2 is more affordable at $17 but only provides an equivalent-CO2 value.
Multigas (not recommended!): the Seeed Studio Multigas V2 ($30) board supposedly measures CO, NO2, C2H5OH Ethanol and VOC. But its readings are notoriously wrong, with no Seeed support. However, tenacious folks have developed some improved code. We'll see if it can help identify additional pollution trends or not.
LoRa: V2 is planned to support wireless sensor nodes communicating via radio as the WIO's bluetooth range seems very limited. Many options out there, like the Adafruit RFM69HCW 433MHz ($10) board.
Battery Pack: used for standalone measurements in the absence of USB-C power. The WIO Battery Chassis ($25) provides 650mAH of capacity, a BQ27441 LiPo SOC gauge, and expansion ports.
18650 battery pack: for multi-hour autonomous operation a large capacity battery is needed. Three cells can easily deliver over 9000mAH. Maybe they can simply be swapped with the LiPo pouch in the WIO battery pack, thus leveraging the existing power & SOC gauge circuits. We'll see.
Voila, that's it for the introduction to this project. I hope it was informative for some folks. Time to go back to the workbench and wrap up the HW & SW implementations.
Wait, who am I kidding ? Back to the couch and watching the Paris 2024 Olympics... Amazing !
________________________________________>>> Part 3 - Results: COMING !
Post Scriptum
(*) Sparkfun just introduced a combined SEN55 + SCD41 board. The SCD41 is a higher accuracy version of the SCD40 true-CO2 sensor. At $125 it is very expensive, but takes care of supplying the proper power voltages and only needs one I2C cable.
Update Thomas Salander released a youtube video (Sep'24)
that is a good introduction to some of the emissions from 3D printing.
Includes a home made Air Quality Monitor and results from various
filaments and air scrubbers. Not sure if the low PLA & PETG results
actually reflect their true emissions, or just the limitations of his
sensor selection. Will see in my own testing in the coming Part 3 - Results from the series above.
Comments
Post a Comment