A Simple Air Quality Monitor
by NotLikeALeafOnTheWind in Living > Health
913 Views, 14 Favorites, 0 Comments
A Simple Air Quality Monitor
We have done RGB LED panel projects over the years to show specific information, such as the time, local weather, school arrival and dismissal, schedules for inbound and outbound trains, and train delays. Information from Octaprint displays the status of jobs running on various 3-D printers in the workroom to other locations in the house. Some panels display only a single piece of information, while others display information in a ten to fifteen-second "display slice" on a rotating basis. The information modules are developed on a standalone basis before being integrated into the rotation on one of the multi-information displays. This instructable describes the creation of a module.
After reading articles about the potential health impacts of microplastics in 3D printing, fine particles from woodworking, and other sources of indoor air pollution, We decided to create an indoor air Quality module to add to the workroom, kitchen, and garage display boards.
The difference for this module is that the conditions in each location are monitored locally. Reporting the local conditions back to a central repository is not required.
The information of primary interest was airborne particles and CO2 ( Gas heaters in the garage during the winter.)
Supplies
Adafruit Matrix Portal S3 CircuitPython Powered Internet Display
or
Adafruit Matrix Portal M4 CircuitPython Powered Internet Display
Adafruit SCD-30 - NDIR CO2 Temperature and Humidity Sensor
Adafruit PMSA003I Air Quality Breakout
(2) 64x64 RGB LED Matrix Panels, for example
A 5v power supply, at least 10A.
A frame. Instructions for the one we used are found here or here.
The Requirments.
Unlike a project that started from scratch, this project used existing infrastructure which will constrain the operational environment. Which is consultant speak for "We have to use the stuff already in place." Unfortunately, in this particular case, the development has already split.
The original project used the Raspberry Pi to drive an RGB LED matrix panel. Later project versions used an Adafruit Matrix Portal board to drive the RGB LED matrix. The original software development environment was C. The Adafruit boards use Circuit Python. A further minor complication is that there are two versions of the Matrix Portal board, the S3 and M4. So, for simplicity's sake, we will only be using the Adafruit Matrix Porthole boards and the Circuitpython environment from now on.
So the requirements:
- Use the Adafriut Circuit Python environment on a Matrix portal board to display information on a minimum 64 x 32 LED panel.
- Display information about Particulate matter per 0.1L air at the 0.3um size
- Display information about Particulate matter per 0.1L air at the 0.5um size
- Display information about Particulate matter per 0.1L air at the 1.0um size
- Display C02 in PPM
- Display temperature
- Display relative humidity
- Display other information as display space available
- Display information about Particulate matter per 0.1L air at the 2.5um size
- Display information about Particulate matter per 0.1L air at the 5.0um size
- Display information about Particulate matter per 0.1L air at the 10um size
- Display PM 1.0 in Standard units
- Display PM 2.5 in Standard units
- Display PM 10 in Standard units
- Display PM 1.0 in Environmental units
- Display PM 2.5 in Environmental units
- Display PM 10 in Environmental units
- Display a visual indication of environmental conditions that are of concern.
So why these requirements? At this time, I am most concerned about the smallest particles. We have active dust collection for woodworking tools and room dust collectors near the 3D printers. I always wear a mask or respirator when cutting, sanding, or finishing work. It is nice to know how efficiently or inefficient the collectors are running.
Assemble the Frame
Instructions for some of the frames we used are found here or here. :
While we still recommend using a 15mm din rail for projects, a 7.5mm din rail can be used for short distances. A link to an 8020 series ten bracket for a short span of 7.5 mm din rail can be found here.
An interesting point to note is that while we used din rail in horizontal and vertical configurations, the PMSA003I in the horizontal configuration was slower to react. It took several minutes for the sensors to come close to the same value. The CO2 sensors (SCD-30) always stayed within a couple of percentage points of each other.
A diffuser may be added over the LED Matirx to improve visibility.
Add the Controler and Sensors
Each sensor was mounted to a DIN rail connection plate, which was attached to a DIN rail on the back of the LED panel mounting frame.
The mounting plates for the sensors we used can be found here.
Adafruit SCD-30: Printabels or Thingiverse
Adafruit PMSA003I Air Quality Breakout: Printabels or Thingiverse
The sensor modules are all connected with Sparkfun Qwiic cables.
Load the Code
The Code attached to this instructable is an example that will demonstrate what can be accomplished. It is not polished and does not demonstrate the integration into our household display system. It mostly cobbles together with the example code that Adafruti provides.
You will need some familiarity with the Circuit Python environment to run it. It also requires a working secrets.py file and a working internet connection. Not all of the fonts referenced are used for this example.
This link will get you started.
Depending on the RGB LED panel(s) used, you may need to adjust the display configuration. This link will help.
The demonstration code is attached below.
Downloads
Future Enhancements
Integrate the module into the Home Assistant.
Download local Air quality information for display and comparison.