NOTE: This project was a part of the authors' bachelor's thesis at Uppsala University.
The thesis can be found at:
MINTS is a star topology network of small, ground-level measurement stations equipped with sensors to monitor air quality and noise pollution in a dense, urban environment. The project aims to combat the flaws associated with traditional monitoring systems, which tend to be expensive, few in number, and often mounted on rooftops, farther from the directly affected areas on the ground.
The stations have been developed to allow for a plug-and-play system that can identify problematic ground-level areas at a greater scale. By continually monitoring affected areas more densely, it's possible to identify pollution patterns and to pinpoint local hotspots. The pollution data gathered by these stations can then be visualized in real-time on an interactive heatmap.
The primary beneficiaries of this project are the municipalities and the people who are troubled by pollution and traffic-related disturbances. Further, it provides the tools for responsive urbanism, making the day-to-day lives of citizens easier.
- Ground-level Measurements: measures ground-level PM and noise pollution.
- Real-Time Heatmap Generation: Real-time visualisations of pollution data.
- Low-Cost System: ~100 USD per node.
- Scalability: Support for upp to hundreds of nodes per gateway.
- Low-Power LoRa Communication: Optimised for long-range, battery-efficient data transmissions within an urban, ground-level environment.
For further details, please see chapters 3.3 and 3.4 in the thesis.
The measuring station is designed to be compact, energy-efficient, and easily expandable. It is powered by a 9V supply, providing a 4V overhead to handle battery degradation and protect voltage-sensitive components.
The software architecture consists of four parts working together: frontend, database, gateway, and node. The goal is to collect data from the connected sensors, transmit it to the gateway, which uploads it to the database, which can be read from the frontend to update the heatmap.
For further details, please see chapter 3.2 in the thesis.
| Component | Model / Details | Purpose & Key Specifications |
|---|---|---|
| Particle Sensor | SEN-HM3301 | Monitors airborne fine particle concentrations ( |
| Sound Sensor | Waveshare (LM386 Amp) | Captures acoustic data (50–20,000 Hz range, 52 dB sensitivity). |
| LoRa Module | Core1262-HF (TCXO) | Handles wireless communication between nodes and the gateway. |
| Microcontroller | Arduino Nano (ESP32-S3 SoC) | Serves as the main processing board for each individual node. |
| Gateway | Raspberry Pi 3 Model B (1GB) | Bridges communication between the node network and the server. |
| LoRa HAT | Waveshare LoRa & GNSS | Gateway add-on board based on the SX1262 radio chip. |
| Antennas | 2J0C15-868-C885G & Bundled HAT Antenna |
Nodes: 868MHz antenna via SMA to U.FL adapters. Gateway: High-gain antenna bundled with the HAT. |
| Misc. Electronics | Capacitors, Resistors, Regulators | • 2x Electrolytic capacitors (10uF, 16V/50V) • Resistors: 200Ω, 140Ω, 20Ω • LD1117V33 voltage regulator (steps down to 3.3V, up to 0.95A). |
| Power Supply | 6x AA Batteries per node | Dual AA battery holder configuration per measurement station. |
| Enclosure | Custom 3D Printed Case | Custom PLA plastic chassis featuring an integrated PM10 insect/debris filter. |
| Tool / Library | Type | Function |
|---|---|---|
| RadioLib | Open-source Library | Provides low-level control and configuration for the SX1262 LoRa module. |
| MapBox API | Mapping Platform | Powering the interactive, customizable heatmap and layer handling. |
| Firestore | Database | Cloud-hosted NoSQL database used for storing and syncing station data. |
To get a local copy up and running, follow these steps.
Before running the backend or frontend web application, ensure you have the following installed:
- Node.js (LTS version
v24.xor higher recommended) - npm (v11.x or higher)
- TypeScript
- C++
Navigate to the part of the project you want to run and follow the specific instructions in the respective READMEs.
├── database/ # Firestore security rules and configurations
├── frontend/ # Web application source code and components (built with Svelte)
├── gateway/ # Packet forwarder configurations and gateway management scripts
├── node/ # Arduino/C++ firmware and PIN layouts for the LoRa sensor nodes
└── README.md # Main project documentation and overview
See the Gantt chart/roadmap for a full view of the project development.
See also the open issues for a full list of proposed features (and known issues).
Distributed under the project_license. See LICENSE.txt for more information.
For questions, support, or collaboration, reach out to the team:
Filip Hellgren
Frontend and database developer
Email: filip.hellgren04@gmail.com
Github: www.github.com/Filip-Shellbranch
LinkedIn: www.linkedin.com/in/filip-hellgren
Jenny Nilsson
Frontend and database developer
Email: nilssonjennylinnea@gmail.com
Github: www.github.com/jeni1263
LinkedIn: www.linkedin.com/in/jenny-nilsson-a7ab6a411
David Olmedo
Node and gateway developer
Email: david@olmedo.se
Github: www.github.com/DaOl6717
LinkedIn: www.linkedin.com/in/davolm/
Tim Schönning
Node and gateway developer
Email: timschonning@gmail.com
Github: www.github.com/TimSchonning
LinkedIn: www.linkedin.com/in/tim-sch%C3%B6nning-29a621226/
-
We extend our sincere gratitude to the Sustainability InnoCenter for the generous funding and resources that made this project possible.
-
Special thanks to Stamatopoulos at Sustainability InnoCenter for his openness to our ideas, encouragement, and role in bringing this project to reality.
-
We are equally grateful to Svante Hagström at Sustainability InnoCenter for his support in managing external connections and facilitating collaboration throughout the process.
-
We would also like to express our appreciation to our examiner, Calkin Suero Montero, for her feedback and guidance through multiple revisions, all of which significantly improved the quality of this work.
-
Finally, we want to thank our Teaching Assistant, Kahlifa Fumo, for his guidance, technical insight, encouragement, and support throughout this project.