Sun May 19 00:38:13 PDT 2024

pocket co2 meter before it was cool

This is my CO2 meter. There aren't many like it, since I built it entirely from parts.

The controller is a Seeeduino Lotus, which is essentially an Arduino Uno with Grove sockets added to the PCB. It talks to the pair of 4 digit LED displays that display temp and CO2 concentration, a wifi module, and the star of the show, the Sensirion SCD30 non-dispersive infrared CO2 sensor. The box is a Hammond 1591 in IR Red, purchased from Vetco Electronics, which as far as I can tell is the last remaining electronic components store in the Seattle area and probably all of Washington state.

After getting the measurement and updating the displays, it uploads the results to a simple application server using thirty lines of Python that call Flask.py on bbot.org, which writes the results to a sqllite database and provides a database endpoint for a little web page that plots the results using Plotly.js.

(That page is now offline. While it's a great demo, a CO2 meter turns out to be an incredibly effective occupancy sensor, and I didn't feel like publishing when I was and was not home for everyone to see.)

It works, but not well. The wifi module is 2.4ghz-only, which is a heavily congested portion of the spectrum. Cramming all the parts into a small box with a few ventilation slots made it look great from a packaging standpoint, but made it terribly slow to respond to CO2 changes and resulted in substantial self-heating (The SCD30 gets its infrared light from a regular incandescent light bulb, which if you set the poll rate any higher than 10 minutes will warm up the whole sensor package) resulting in temperature readings reliably ten degrees above ambient. This resulted in version 2.0, detailed in the next blog post.


Posted by Samuel Bierwagen | Permanent link | File under: nerdery