Inspiration

We wanted to break down barriers for anyone interested in air quality monitoring. Instead of struggling with complicated software installs, drivers, or coding, why not make it as simple as plugging a sensor into a USB port and opening a browser? The idea was to empower hobbyists, researchers, and engineers alike to easily access and understand pollution data anytime, anywhere.

What it does

This project transforms your browser into a powerful air quality monitoring tool. By connecting any UART sensor via a USB adapter, you get instant real-time readings, dynamic graphs, and data logging—all without installing anything. It works offline, supports multiple sensor models, and adapts to different protocols through customizable configurations.

How we built it

We leveraged the Web Serial API and wrote everything in pure JavaScript to keep the system lightweight and platform-independent. Each sensor’s unique communication style is captured in JSON config files, allowing the app to decode data correctly, no matter the protocol or checksum method. This modular design made it easy to add support for new sensors.

Challenges we ran into

The biggest hurdle was dealing with the quirks of many proprietary sensor protocols—especially binary ones requiring byte-stuffing to avoid misinterpretation. Ensuring stable USB connections across browsers and devices was tricky too. We also had to make the interface flexible enough to handle everything from simple to complex sensors seamlessly.

Accomplishments that we're proud of

We built a truly universal, zero-install solution that works offline and supports a broad range of popular sensors out of the box. Adding byte-stuffing support unlocked compatibility with complex devices like the Sensirion SPS30. Plus, the ability to pick from multiple sensors within one config file made it even more user-friendly.

What we learned

We discovered how powerful modern browsers can be for hardware integration, breaking traditional software boundaries. We also learned that flexibility is key—supporting a wide variety of sensors meant designing for adaptability from day one. Finally, the importance of clear documentation and user-friendly design became crystal clear.

What's next for PolluSensWeb - Your UART Pollution Sensor In Browser

Adding more sensors into default JSON. Ultimately, we want to build a community where users share configurations and collaborate to make air quality monitoring accessible worldwide.

More videos:

  1. Connecting multiple sensors simultaneously
  2. Adding a new sensor configuration

Currently supported sensors:

  1. Panasonic SN-GCJA5
  2. Honeywell HPMA115S0-XXX
  3. Air Master AM7 Plus
  4. Plantower PMSA003-S
  5. Plantower PS3003A (inherits from PMSA003-S)
  6. Plantower PMS1003 (inherits from PMSA003-S)
  7. Plantower PMS5003 (inherits from PMSA003-S)
  8. Plantower PMS7003 (inherits from PMSA003-S)
  9. Plantower PMS6003 (inherits from PMSA003-S)
  10. Plantower PMS9103 (inherits from PMSA003-S)
  11. Plantower PMS3003 (inherits from PMSA003-S with custom frame length)
  12. Nova PM SDS011
  13. Sensirion SPS30
  14. SHUYI SY210

more coming soon...

Share this project:

Updates