Sensor Playground

Ever wondered what the quality of the air is in your home?

Similar projects worth following
I was feeling poorly late Summer '21 and during that time, my wife made a comment about the quality of the air in our home. Since I wasn't sleeping well during that period, it got me thinking that perhaps I should do a quick project to measure it. I did some research into various sensors, bought a few and set up a breadboard circuit that measured CO2, PM2.5, temperature, humidity and TVOC. I connected the thing to the IoT cloud and built a few dashboards to let me watch. What I found was a little concerning.


Seeing the data produced by the breadboard project, it seemed to me that I ought to make this permanent and lay out a PCB for it. I was initially inclined to design it just as an air-quality sensor platform but I tend to lean toward more generalized solutions when it comes to these things. As the design of the circuit proceeded, I started thinking about what else I might want to do with this..

: With the breadboard design, I found that the CO2 concentration in my house was too high at various points throughout the day.  VOC's tended to peak here and there, but not into what I'd generally be concerned about.  When I added the PM2.5 sensor, I was able to correlate things like high-pollen days and air-quality notices, which gave me confidence in the data I was seeing...  Among other reasons, this was primary in helping me decide to do a PCB for the project.  Using the data I collected, I was able to adjust a number of things in our home, which in turn brought the CO2 and VOC levels much more into line with recommended levels.  Take a look here for some details about what I found and how I dealt with it.  If you're curious about my home's current indoor air-quality, this link will show you.  

As I was working on the schematic, I started wondering if maybe this could be used as more of an experimenter platform, allowing me to test out various sensors and do some code to support them both locally and in the cloud.  At that point, I decided to design the circuit/PCB in that direction.

I wanted to make it easy to build, easy to program for and flexible about what processor is used.  I also wanted to make sure there was some kind of user-input and some kind of output available in case anyone wanted to have something interactive or just needed to see what the thing is doing.

With those criteria in mind, here is a summary of the result:

  • The board makes nearly exclusive use of through-hole design, so it should be easy to build for someone with basic soldering skills.  It's a 2-layer design and is pretty inexpensive.
  • It's powered from a common micro-USB connector and power brick.
  • It provides a rotary encoder (with button), along with two other discrete buttons.  These meet my criteria for having some form of user input.
  • It supports both the Espressif ESP32 DevKit module footprint, as well as the common Feather module form-factor (Testing of feather boards is ongoing.  So far the AdaFruit Feather Huzzah 8266, Feather M0 AdaLogger, & Feather ESP32-S2 boards have been tried).  This allows for considerable choice regarding which processor module you want to use.
  • It has a header for a simple I2C OLED display.  Several compatible displays are available from places like AdaFruit and SparkFun.
  • The board targets use of I2C and SPI sensors or other similar devices.  There are header landing-pads for three I2C sensors, and headers for an added 2 SPI devices.
  • There is a header for a UART-based device.
  • The GPIO that is used for the rotary-encoder and pushbuttons is brought out to a header in case you choose not to use those devices.
  • Each of the connection points for I2C and SPI devices can be populated with either a socket header or a pin header, depending upon your needs.
  • There are test points for the +5V and +3.3V power supplies.
  • There's even a helpful little LED that indicates if the +3.3V supply is powered.
  • There are a variety of mounting holes on the board so you can mount the sensors you choose.

I mainly used the Arduino environment for the code part.  That's certainly not required and many of the Feather modules that are available can run MicroPython or CircuitPython.  As I also mentioned, I use to provide IoT cloud connectivity.  They have a great product and for what many people need, the free tier is more than sufficient.  I've tried out a variety of other offerings and for my taste and pocketbook, Adafruit is a winner.

Note: f you want to see the air-quality in my home, look here.  If you don't have an account, the data won't update on its own, so you'll need to refresh the page if you want to see changes. (This is running on an Adafruit Feather Huzzah, 8266)

The schematic and printed circuit board were designed with KiCad and I used PCBWay to prototype the boards.  I've used them...

Read more »

  • Change of seasons...and next steps...

    tdw03/19/2022 at 00:29 0 comments

    Recently, I've been noticing that the CO2 levels are running somewhat higher than they have been over the last few months.  Checking into the situation with our furnace a bit closer, I notice that it hasn't been running as much over the last week or so, since our outdoor temps have been moderate.  The "bounciness" I've been seeing shows pretty clearly the scheduled blower operation, that is keeping the CO2 levels down against the less-frequent heating cycles.

    On another note, I'm going to start work on another module for the SP.  Will be adding an ADC board to allow us to use analog sensors.  Perhaps multi-channel with some input scaling...  Just now starting to think about what it would need.

View project log

  • 1
    Step 1

    Look here for instructions

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates