Introduction:
Like many a bloke I like to tinker in my shed. Tinkering can be fixing, painting, wood and metal work, potting etc and often involves dust and or chemicals of some sort. In the photo below you can see my current project is refurbishing our 30 yo bedroom furniture which involves chemically stripping the original varnish, sanding back the stain, applying a liming white stain and varnish.
Reading James’ Environmental Monitor Project got me thinking about my exposure to dust, VOCs and chemical fumes. This project then is an air quality monitor that is relatively low cost, that works and signals visually the status of various monitored variables.
As a minimum I wanted to monitor air quality (as an index), PM2.5, VOC, NOx, CO2 and temperature.
Operation:
The values of these measured variables are displayed in detail on an LCD screen via a loop and enunciated visually via RGB LEDS as traffic lights (Green is Good, Amber is Meh, Red is Bad). This last part is important as I want to be able to glance up at the AQ Monitor while working to see how things are.
Also send the data to HA for historical graphs.
Here’s the PM2.5 data on a day I was sanding.
Here I was applying liming white stain in the morning and afternoon, and the next day varnish. The slow decrease on May 7 was I think due to the shed being closed up and the behaviour of the varnish vs the stain.
BOQ:
The first thing about the BOQ is that I tried to use components I had on hand where possible.
-
Pi 5 - Could have been a Pico (or two) but wireless is iffy in the shed and I have existing ethernet in there for CCTV. No reason for the Pi 5 other than I had one. Should be a lesser Pi 4 or 3. Comms is ethernet to my home network.
-
Pico 2 W - Drives the RGB LED strip and is only used as I could not get the driver to work on the Pi 5. I think it would work fine on a Pi 4 or less. Comms is serial USB to the Pi.
-
Sen55 environmental sensor - The project uses the PM2.5 and NOx parameters. Comms is I2C.
-
PiicoDev Air Quality Sensor ENS160 - The project uses the AQI, TVOC and eCO2 parameters. Comms is I2C.
-
PiicoDev Precision Temperature Sensor TMP117 - Could have used the Sen55 temperature parameter but I was not sure of the accuracy. Comms is I2C.
-
Freenove breakout board for Pico - Serves as a mounting platform for the Pico and provides screwed connections.
-
RGB LED Strip WS2812 - On hand. Provides the traffic light annunciation for the measured parameters.
-
5V Square USB Fan 3cm - Probably not required but I used one to push and one to pull air through the box to cool the Pi. Filters to be fitted.
-
LCD1602 - On hand. IC2 comms.
-
ABS Junction Box - This box didn’t come with a backplane, so I made one out of some 3mm acrylic sheet I had.
-
The switch was existing and serves some CCTV cams. I’ve just put it in the box for some protection.
Wiring Diagram:
Note: The non-standard wire colours shown for the Sen55 are correct for the device I received.






