Distributed Air Quality Sensor Mesh with LoRa and Calibration
A mesh of low-cost outdoor air quality nodes for a campus, school or neighbourhood, linked over LoRa to one gateway and shown on a live street-level PM2.5 map. An IoT final year project where the real work is radio range in the field and calibrating cheap sensors so the data can be trusted.
Intermediate
A small team, or one strong student willing to learn something new.2 semesters · 2 to 3 students
7 to ship
4 optional extrasSuggested stack
What you should ship
- At least 5 outdoor nodes measuring PM2.5, PM10, temperature and humidity in weatherproof, ventilated enclosures
- LoRa link to a single gateway with a documented range and packet-loss survey of the real deployment area
- Gateway with store-and-forward buffering so a gateway or internet outage does not lose readings, proven by a pulled-cable test
- Co-location of every node with a reference instrument or official station for at least 2 weeks, and a fitted humidity correction applied to all data
- Node health telemetry (battery, signal strength, last seen, sensor fan status) with alerts for silent or drifting nodes
- Dashboard and public map showing corrected readings per node and the spatial gradient across the area over time
- Open dataset export (CSV plus a data dictionary) and a report on accuracy before and after correction
If you have time left
- Solar-powered nodes with measured autonomy through a run of cloudy days
- Automatic drift detection by comparing each node against its neighbours and the reference
- Publishing readings to OpenAQ or Sensor.Community so the data outlives the project
- Simple source attribution from time-of-day and wind direction patterns, such as a road or a brick kiln
The problem with one monitor per city
Official air quality stations are accurate and expensive, so there are very few of them. A city may have a handful, and they report one number for a large area. That number cannot tell a school that the gate facing the main road is far worse than the playground at the back, or tell residents that the lane next to a workshop spikes every evening. People who care about exposure (parents, school administrators, campus facilities teams, local journalists) need street-level data.
Cheap particulate sensors can provide it, but they come with known weaknesses. They read high in humid air, they drift, and outdoors they get wet, overheat, lose power and occasionally disappear. A network of them is only useful if someone handles those weaknesses properly.
What already exists and the gap
- PurpleAir sells consumer sensors that feed a public map. Its data is widely used, and the US EPA published a national humidity correction for it because raw readings run high.
- Sensor.Community is a volunteer network of DIY sensors that publishes open environmental data, built around Wi-Fi nodes in people's homes.
- OpenAQ aggregates government and, since 2021, low-cost sensor data into one open platform, but it does not deploy sensors.
- IQAir sells monitors and runs a city ranking map, mostly from single-point devices.
The gap is a deliberately planned network for one bounded area (a campus, a school cluster, a neighbourhood) that does not depend on Wi-Fi at every node, is calibrated locally against a reference, and reports its own health. Wi-Fi nodes only exist where someone has a router; LoRa nodes can go on poles, rooftops and boundary walls.
What you build
- Nodes: ESP32 plus a laser particulate sensor, a temperature and humidity sensor, and a LoRa radio, in an enclosure that keeps rain out but lets air in.
- Gateway: a LoRa receiver on a building with power and internet, buffering locally and forwarding to the server over MQTT.
- Backend: a time-series database, a correction step, and health monitoring.
- Dashboard: a map of nodes, time-series per node, a comparison view across nodes, and a public page anyone can open.
Users are the deployment owner (school or campus facilities), who sees node health and alerts, and the public, who see corrected readings.
The technically interesting part
Two problems carry this project.
Radio in the real world. LoRa range figures are measured in open fields. Through buildings and trees, range is far shorter and varies by spot. Walk the area with a test node, log RSSI, SNR and packet delivery at each candidate location, and choose spreading factor and placement from data. That survey is a real deliverable.
Calibration. Research on PurpleAir sensors finds relative humidity to be the main source of error, and correction models built for dry climates underperform in humid ones. Co-locate every node with a reference (an official station, or a borrowed research-grade monitor) for at least two weeks, fit a regression with humidity and temperature as inputs, validate it on held-out days, then apply it to all data. Report error before and after. The EPA's open-source sensortoolkit library shows how to compute the standard performance metrics. Show your supervisor the before and after plots; that is what makes the dataset credible.
How to evaluate it
- Accuracy: R squared, RMSE and mean bias against the reference, raw versus corrected, on held-out days.
- Network: packet delivery rate per node over the deployment and the range survey map.
- Resilience: unplug the gateway's internet for an hour and show zero lost readings after it returns.
- Uptime: percentage of expected readings received per node across at least 4 weeks, with every gap explained.
- Usefulness: show one real finding, such as the difference between the road-facing node and the quietest node at rush hour.
Suggested plan
- Weeks 1 to 3: pick the area, get permission for node sites, order parts, build one node on the bench.
- Weeks 4 to 6: enclosures, radio survey, gateway with buffering.
- Weeks 7 to 9: deploy all nodes and start co-location with the reference as early as possible.
- Weeks 10 to 14: backend, dashboard, health alerts.
- Second semester: collect weeks of data, fit and validate the correction, fix failed nodes, write up findings.
Deploy early. You need weeks of data, and enclosures always take longer than planned.
Path to a product
The first customer is a school, campus or housing society that wants to show parents or residents it is measuring air quality. Sell it as a small installation plus a monthly fee for hosting, calibration and maintenance, which is where the value sits because nodes need attention. NGOs and journalists working on air pollution are another route, often through grants. Scale by making installation repeatable: one enclosure design, one provisioning script, one calibration procedure.
Scope warning
Five nodes working well beat twenty planned and three working. Do not design your own PCB in the first semester, do not add gas sensors (cheap ones are even harder to calibrate), and do not attempt a city-wide pollution forecast model. Keep the mesh one hop to the gateway; true multi-hop routing is a separate project.
Learn what you need on Sefism
- DevOps and cloud roadmap : running the gateway, broker and database reliably for months.
- Data analytics cheat sheet : cleaning time-series and comparing sensors against a reference.
- OpenIntro Statistics : the regression and error metrics behind your calibration.
- Google Colab : fit and test correction models without a powerful laptop.
- PostgreSQL Documentation : if you store readings in TimescaleDB or plain Postgres.
Get help with this idea
This idea works when the calibration and the field survey are taken seriously. Tauseef can help you size the deployment, choose parts your team can actually source, and plan an evaluation examiners will respect. If you are new here, create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.