Air Quality Monitor I

Year:
2019

The Adafruit Feather M0 has a lot more power than most Arduino boards. This was handy as this project was working with 5 different IO devices: particulate sensor, screen, GPS, SD card reader, USB serial for debugging, and a LiPo battery.

The process I use for building all my complex Physical Computing projects is the same. Divide it into chunks, get each part working separately, then add them to the whole one at a time. Building up the system, debugging, and cleaning as I go.

First, getting the Plantronics Particulate Matter Sensor PMS-7003 to work.

PMS7003 working

Next, get the display and SD card working.

Working Display

Now I have the GPS working, I’m listening to satellites in my back garden! It’s picking up 6 different satellites – this suddenly feels like unobtainable high technology… in my hands.

GPS and Screen

I went through multiple iterations of the visual display. It’s a great way to experiment with interaction design, and a bit of Tufte. This version wasn’t final – it has the current particulate levels top left, GPS on the right, and the histogram to display the recent historic levels.
My favourite suggestion was a kind of Tamagotchi that would look sad or shrivel up if exposed to bad air.

Bar Graph

Circuits are working, and the code is getting close, so time to transfer to a soldered protoboard.

Prototype

I like to use protoboards and JST-XH 2.54mm sockets for one-off prototypes.

Building Protoboard

This is the worst form factor in the world! My professional work would have made it easy for me to design a 3D printed plastic box, but I like to use play projects to experiment and learn. I had an idea that this might be a big, bold wearable like a necklace or an epaulette. It’s clumsy and awkward, and by challenging conventions, I learned a lot about why we make products the way that we do.

The worst Form factor in the world

Here is the air quality sensor working on a laser cutter. The laser cutter is making a plywood dome lampshade.

Particulate sensor in use on the laser cutter

While writing to screen, it also data logs a string with time, date, location and particulate levels to the SD card in a format that neatly imports to spreadsheets for handling graphing. Can you tell when we turned the laser cutter on?

Graphing PMS output

Yes, that is a tribute to Burning Dan’s watermelon welder image.

Watermelon

I tried building up the code with Circuit Python – here is the particulate sensor working. I think Circuit Python has a lot of potential to replace Arduino – and the awesome team at Adafruit are putting a lot of effort into it, so it keeps getting better with every release. I’m not skilled enough with Python yet, and at the moment, Arduino has a lot more online resources, so I went back to Arduino. But one day, I think I will move to Circuit Python.

Circuit Python

When I get back to this, I will rework the form factor, either to be more sensible or more ridiculously improbable.

I’ve put the code up on Github: M0 Air Quality Monitor