IoT Air Quality Monitor: A Golioth Reference Design

There is a growing cultural awareness of the significant health impacts of poor air quality, especially in the wake of the COVID-19 pandemic and natural disasters like the wildfires in California. Indoor air quality is an often overlooked aspect of workplace health and safety. Yet it has been shown to have a significant impact on employee productivity and wellbeing. By implementing an IoT air quality monitoring system, businesses can proactively measure and track air quality parameters such as CO2 and particulate matter levels. They can identify and address potential issues before they become problematic.

There are also significant business benefits that can be realized through the implementation of demand-based ventilation systems. According to the Department of Energy, HVAC systems use about 35% of a building’s energy on average. Businesses can optimize ventilation rates based on real-time occupancy levels and air quality parameters using indoor air quality monitors. This demand-based approach to ventilation can lead to significant energy savings and reduce HVAC maintenance costs.

Golioth makes it easy to develop and deploy a cloud-managed fleet of air quality monitors that can provide valuable insights into the air quality in your workspace.

The IoT Air Quality Monitor

Golioth’s latest IoT reference design provides an end-to-end example of how to quickly build an indoor air quality monitor proof-of-concept. The reference design measures temperature, humidity, relative pressure, as well as CO2 and particulate matter concentrations. These sensor measurements are periodically streamed to the Golioth cloud via a low-power LTE cellular connection. Using the Golioth REST API, the air quality data enables real-time control and visualization.

Let’s take a look at the hardware and software components of this reference design.


The Air Quality Monitor hardware is built using the new Golioth Aludel Mini prototyping platform, which integrates an Adafruit Feather-compatible processor module and two MikroE Click sensor boards into a compact enclosure. We designed this platform to demonstrate how it’s possible to quickly develop a proof-of-concept using widely available off-the-shelf modules.

It also includes the brand new Ostentus front panel that provides an ePaper display for sensor readings, back-lit LED indicators, and capacitive touch buttons.

For low-power cellular connectivity, we’re using the same SparkFun nRF9160 Thing Plus module used in other Golioth reference designs (such as the IoT Trashcan Monitor). This feather-compatible module integrates the Nordic nRF9160 System-in-Package (SiP), featuring an Arm Cortex-M33 application processor, an integrated LTE modem, and a GNSS receiver for cellular-based location-tracking. The nRF9160 is fully supported in Zephyr, and has the highest level of support in the Golioth platform (Continuously Verified).

This reference design integrates two off-the-shelf MikroE Click sensor boards:

  1. MikroE Weather Click with a Bosch BME280 humidity (+temperature/pressure) sensor
  2. MikroE HVAC Click with a Sensirion SCD41 CO2 sensor and Sensirion SPS30 particulate matter (PM) sensor

Check out the Project Page for the full parts list.


The firmware for this reference design uses the Golioth Zephyr SDK to implement device management features. This includes device authentication, streaming sensor data to Golioth’s LightDB Stream time-series database, logging, and over-the-air (OTA) firmware updates.

The Golioth Settings Service is used to implement custom run-time configurable device settings that can be managed from the Golioth Cloud. Settings can be configured at the project or individual device level and can be managed via the web console or the REST API.

For example, the Air Quality Monitor firmware implements a CO2_SENSOR_ALTITUDE setting that can be configured for each device to achieve the highest accuracy of the CO2 output signal across a large pressure range.

The firmware also implements the Golioth Remote Procedure Call (RPC) service. For example, the clean_pm_sensor RPC command can be called to trigger an on-demand cleaning of the particulate matter sensor.

Cloud Software

The Golioth Cloud provides a tightly integrated set of services specifically designed for managing fleets of IoT devices at scale:

  • LightDB State: bidirectional real-time device state database
  • LightDB Stream: database for storing time-series data
  • Logging: centralized device log storage
  • Settings: device settings management
  • OTA: Over-the-Air firmware updates with one-click rollback

You can access these services by logging into the Golioth web console, or programmatically from an authenticated device via the REST API or the Command Line Tools.

Data Visualization

The Golioth REST API makes it easy for external applications or services to access the sensor data streamed from the devices to the LightDB Stream time-series database.

We created a Grafana dashboard for the Air Quality Monitor that displays the real-time temperature, humidity, pressure, CO2, and particulate matter measurements sent by each device:

More Information

For more information about the Air Quality Monitor reference design, check out the project page:

Please contact [email protected] for access to the hardware design files and firmware source code for this and other Golioth reference designs. You can also drop us a note on our Forum or on our Discord if you would like to suggest ideas for other IoT reference designs you would like to see us build.


Talk with an Expert

Implementing an IoT project takes a team of people, and we want to help out as part of your team. If you want to troubleshoot a current problem or talk through a new project idea, we're here for you.

Start the discussion at