There are lots of projects on the web about Air Quality Index (AQI) monitoring with a Raspberry Pi. I recently went through the exercise of setting this up again after a few years and wanted to capture the 2022 version of the implementation.
The first step is of course choosing the PM2.5 sensor. For this project I used the cheapy and widely available SDS011 PM2.5 sensor. (AliExpress, <$20; Datasheet).
The sensor usually comes with a serial-to-USB converter. The ikalchev/py-sd011 package (Github) implements an easy-to-use Python 3 interface to query the SDS011 sensor.
I have written an AQI monitoring service in Python 3 that builds on top of the sensor interface to run continuous monitoring and reporting of AQI: arunkv/aqi_monitor (Github). The reporting is done via Adafruit's IO service. Here's a screenshot of my live AQI dashboard: