CO2 Monitor using SCD41 sensor

Posted on
  • I have been using the ST7302 low power display that I described in a previous post for a number of projects. Here it is being used for a continuous monitor and display of CO2 levels using a SCD41 sensor (see below). The display is driven by a Seeed XIAO BLE nRF52840 module flashed with Espruino.

    The sensor is mounted below the circuit board in the picture of the prototype (top). The CO2 sensor also measures temperature and humidity.

    Measurements are taken every 5 minutes and recorded every 10 minutes. The fully charged 800mah Lipo lasts well over two weeks.

    Recorded measurements are displayed (see below) and can be retrieved using bluetooth. In addition, the current reading of CO2, temperature and humidity is included in the manufacturers data in the BLE advertising messages.

    Measuring CO2 is a great way of telling how well ventilated a room is. Fresh air is about 420 ppm (up from 280 ppm in the year 2000!) and above 1000 ppm is a bit stuffy leading to drowsiness,

    The monitor flashes a green led every 5 seconds when CO2 exceeds 1000 ppm, alternately red then green when the level is above 1200 ppm and red when the level is above 1400 ppm.

    The code and more details can be found in my github repository here.

  • That looks great - thanks for posting it up!

    Those displays do look nice - I finally received some here but haven't had a chance to play properly yet.

    As you're advertising the data, you could consider using and then if you have Home Assistant running in your house, it should automatically gather in the measurements and log/display them (or even allow you to action things in your house like opening a velux based on them)

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

CO2 Monitor using SCD41 sensor

Posted by Avatar for jeffmer @jeffmer