Skip to main content

Air Quality Monitor


Understanding and controlling indoor air quality can reduce the risk of health concerns and improve the comfort of building occupants.

This Air Quality Monitor Reference Design demonstrates how to measure ambient air quality within an indoor environment using the Golioth IoT platform.

Specifically, the following environmental parameters can be monitored using the onboard sensors:

  • 🦠 Airborne particulate matter (PM)
  • 😷 COβ‚‚
  • πŸ’¦ Relative humidity
  • 🌑️ Temperature
  • πŸ’¨ Pressure

The sensor readings are streamed back to the Golioth Cloud where the data is stored and can be made available to external services for visualization and analysis.

Business Use Case​

Buildings are responsible for 40 percent of global energy consumption and people spend about 90% of their time indoors. A number of adverse health impacts have been associated with poor ventilation and exposure to airborne particulate matter (PM). Furthermore, increased COβ‚‚ levels may be a proxy indicator for risk of COVID-19 exposure indoors.

Indoor Air Quality (IAQ) monitoring can create healthier, more comfortable work spaces, and protect employees from harmful exposure to airborne pollutants. Increased awareness of the impact of poor air quality on health, along with the global impact of COVID-19, is expected to increase demand for intelligent monitoring and control of building HVAC systems. According to the Department of Energy, HVAC systems use about 35% of a building's energy on average. By measuring IAQ parameters, energy consumption can be optimized by ensuring that ventilation is based on actual demand.

The Golioth IoT cloud platform can dramatically accelerate the development, deployment, and management of intelligent demand-based IAQ solutions at scale.

Blog post​

Read about the release of this reference design in the Air Quality Monitor blog post.

How we built it​

Modular Hardware​

The reference design hardware is built using the Golioth Aludel Mini prototyping platform, which integrates an Adafruit Feather-compatible processor module and two MikroE Click sensor boards into a compact enclosure. It also includes the Ostentus front panel that features an ePaper display for sensor readings, back-lit LED indicators, and capacitive touch buttons. We designed this platform to demonstrate how it’s possible to quickly develop a proof-of-concept using widely available off-the-shelf modules. You'll find step-by-step instructions below showing how you can build a similar prototype yourself using widely-available development boards from our partners.

For low-power cellular connectivity, we’re using the same SparkFun nRF9160 Thing Plus module used in other Golioth reference designs. 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 board with a Bosch BME280 humidity (+temperature/pressure) sensor
  2. MikroE HVAC Click board with a Sensirion SCD41 CO2 sensor and Sensirion SPS30 particulate matter (PM) sensor

Device Photos​

Hardware Block Diagram​

Open-source Firmware​

The firmware source code and pre-built firmware images for this reference design are available on GitHub under a permissive Apache-2.0 license.


The Air Quality Monitor firmware is based on the Golioth Reference Design Template. Changes from the upstream template are periodically pulled into new releases of this firmware. Check out the firmware CHANGELOG for a detailed list of changes included in each release.

Golioth SDK & Cloud Services​

The Air Quality Monitor firmware uses the Golioth Zephyr SDK to securely connect to the Golioth Cloud, which provides a tightly integrated set of services specifically designed for managing fleets of IoT devices at scale. This includes device authentication, device state and time-series data storage, fleet-wide settings, remote log storage, remote procedure call (RPC), and over-the-air (OTA) firmware updates. 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.

Sensor data from the onboard air quality sensors is streamed back to Golioth Cloud endpoints and stored in the LightDB Stream time-series database. Using Output Streams, this data can seamlessly be made available to a growing list of external services.

The Settings Service is used to implement custom fleet-wide device settings that can be managed from the Golioth Cloud. Individual settings can be configured at the project or device level and can be managed via the web console or the REST API. For example, this reference design implements a CO2_SENSOR_ALTITUDE setting that can be configured per-device during the installation process to achieve the highest accuracy of CO2 sensor readings.

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

The Logging Service enables the firmware to send remote log messages from the device. Stored logs can be queried and filtered by timestamp, device, tag, module, and log level.

The device firmware also supports Golioth's Over-The-Air (OTA) Update Service to enable fleet-wide management of device firmware updates. The Golioth Cloud enables granular control over firmware updates, including support for staged rollouts and cohort management.

See the Air Quality Monitor firmware README for a complete description of all services and settings supported by the device firmware.

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 concentration, and particulate matter concentration measured by each device:

Next Steps​

Build it yourself​

We provide follow-along guides showing how to build this reference design using widely available off-the-shelf development boards from our partners. We call this Follow-Along Hardware, and we think it's one of the quickest and easiest ways to get started building an IoT proof-of-concept with Golioth.

You will learn how to assemble the hardware, flash a pre-built firmware image onto the device, and connect to the Golioth cloud in minutes. The follow-along hardware runs the same open-source firmware as the custom Golioth hardware described above, and we provide instructions on how to build it yourself if you want to make changes for your specific application.

To get started, choose one of the follow-along guides below:

Request a demo​

This Air Quality Monitor reference design is a great starting point for building your own proof-of-concept. The next step is to integrate the components used in the follow-along hardware into your own custom hardware implementation and build a custom firmware image that connects your device to the Golioth Cloud.

Schedule a demo!

If you would like a demo of this reference design, please contact [email protected].