DEV Community

Cover image for Build an Air Pollution Monitor with a Raspberry Pi, a Particulate Matter sensor and IoT Central
Dave Glover for Microsoft Azure

Posted on

Build an Air Pollution Monitor with a Raspberry Pi, a Particulate Matter sensor and IoT Central

Build an Air Pollution Monitor with a Raspberry Pi, a Particulate Matter sensor and IoT Central


Born of necessity, this project tracked the air quality over Sydney during the height of the Australian bush fires. I wanted to gauge when it was safe to go outside, or when it was better to close up the apartment and stay in for the day.

Sydney, Dec 2019 Particulate matter readings
Readings for PM 2.5 and PM 10 approx 1000. Healthy levels should be between 0 ~ 10.

This is Sydney on a clear day, the photo was taken in May 2020, alas, during the COVID-19 pandemic lock down. On the upside, there is close to zero air pollution.


This is part of the #JulyOT IoT Tech Community series, a collection of blog posts, hands-on-labs, and videos designed to demonstrate and teach developers how to build projects with Azure Internet of Things (IoT) services. Please also follow #JulyOT on Twitter.


In this hands-on lab, you will learn how to create and debug a Python application on a Raspberry Pi with Visual Studio Code and the Remote SSH extension. The app requires the Pimoroni Enviro+ pHAT, and reads data from the PMS5003 particulate matter (PM) and BME280 sensors and streams the data to Azure IoT Central.

Parts required

  1. Raspberry Pi 2 or better, SD Card, and Raspberry Pi power supply
  2. Pimoroni Enviro+ pHAT
  3. PMS5003 Particulate Matter Sensor with Cable available from Pimoroni and eBay.

This lab depends on Visual Studio Code and Remote SSH development. Remote SSH development is supported on Raspberry Pis built on ARMv7 chips or better. The Raspberry Pi Zero is built on ARMv6 architecture. The Raspberry Pi Zero is capable of running the solution, but it does not support Remote SSH development.

Solution Architecture

Let's get started

Head to Raspberry Pi Air Pollution Monitor

There are five modules covering the following topic

  • Module 1: Create an Azure IoT Central application
  • Module 2: Set up your Raspberry Pi
  • Module 3: Set up your development environment
  • Module 4: Run the solution
  • Module 5: Dockerize the Air Quality Monitor solution

Source code

All source code available for the Raspberry Pi Air Pollution monitor


This tutorial builds on the Azure IoT Python SDK 2 samples.

Have fun and stay safe and be sure to follow us on #JulyOT.

Top comments (1)

fancheers profile image

Wow, this is a great idea that can protect the city and population from the effects of air pollution. Now everyone really needs this, I recently read several posts on and only became convinced of the need to act. Moreover, in big cities, where production is next to residential areas, there are also port cities or just cities where there are many vehicles in danger.