Close
0%
0%

Your Air Pollution Sensor in Browser

Integrate any UART-based pollution sensor with polluSensWeb. Everything runs locally in the browser — no drivers, no cloud. Easy.

Similar projects worth following
polluSensWeb is a simple, no-fuss tool for reading and plotting data from UART air quality sensors—like PM2.5, VOCs, and similar stuff. It runs straight in your browser, so you don’t need to install anything. Just plug in your sensor, open the page, and go.
You can load custom JSON configs for different sensors, parse raw binary frames (yes, with checksum control), and see live charts update in real time. Everything runs locally; you may not have an internet connection. 25 sensors already supporting, more coming!

PolluSensWeb: Visualize Your Air Sensor Data Right in the Browser

polluSensWeb is a lightweight web-based serial interface and charting tool for visualizing and logging data from UART pollution sensors (PM2.5, VOC, etc). 

No installs, no drivers — just plug it in and open the page.

Imagine you’ve got an air quality sensor on your desk. It’s plugged in over USB, spitting out numbers through a UART connection. You want to see what it’s saying—PM2.5, VOCs, maybe some temperature data—but you don’t want to dig through hex dumps or write a bunch of code just to see a simple chart.

That’s exactly why polluSensWeb exists.

You open a web page. That’s it. No drivers. No apps. No command lines. Just Chrome or Edge, or any browser that supports Web Serial. Connect the sensor, pick your sensor from a dropdown, and instantly, your data comes alive. 

It reads raw binary frames, it logs every packet (makes byte stuffing if needed), so you can peek under the hood. Want a chart with red for PM2.5 and blue for PM10 on the same chart? Just check a few boxes.  Click “Save CSV” and walk away with a full log—timestamps and all data.

It’s open-source, offline-friendly, and small enough to run on an old PC. Everything happens in your browser. 

Tinkering with sensors, wanting a faster way to see what’s really in the air around you?

So go ahead. Plug in a sensor. Open the browser and watch the air data come to live charts.

Live version (Chrome, Edge, Opera):
https://pollusensweb.pages.dev/

Source code + config format:
https://github.com/WeSpeakEnglish/polluSensWeb

More sensors are coming to the default JSON :), but you can already add your custom right away!

My video on how to add a new sensor in 5 mins:

As for now, by default, JSON  configuration is supported, following sensors already (in the drop-down list in the web interface):

  1. Panasonic SN-GCJA5
  2. Honeywell HPMA115S0-XXX
  3. Air Master AM7 Plus
  4. Plantower PMSA003-S
  5. Plantower PS3003A
  6. Plantower PMS1003
  7. Plantower PMS5003
  8. Plantower PMS7003
  9. Plantower PMS6003
  10. Plantower PMS9103
  11. Plantower PMS3003
  12. Nova PM SDS011
  13. Sensirion SPS30
  14. SHUYI SY210
  15. TERA NextPM
  16. SenseAir S8 004-0-0053
  17. SenseAir S88 Residential
  18. SenseAir S88 LP
  19. SenseAir S88 GH
  20. SenseAir K30
  21. SenseAir K33
  22. SenseAir eSENSE
  23. SenseAir S8 004-0-0017
  24. SenseAir K33 ICB
  25. Sensirion SCD30
  26. More coming soon...

UPD: polluSensWeb just gained a powerful new feature - HTTP webhook support.

The app can now push every parsed sensor frame directly to any endpoint you choose, using customizable headers and JSON body templates.

The coolest part: both headers and body support placeholders (e.g., {{field:PM2_5}}, {{ts}}, or full field loops), letting you map sensor data into any API format without touching the code. This makes it dead-simple to forward PM readings into home automation systems, databases, online dashboards, or your own custom server.

Webhook requests can be triggered on every packet or at a user-defined interval, and a built-in “Test Send” button helps verify output instantly.

In short: your DIY air sensor can now talk to anything on the internet, no extra coding and SW needed.

New sensor configurations, bugs, or improvements? Feel free to fork the project, open an issue, send a pull request, or maybe star it on GitHub!

polluSensWeb-1.3.zip

feat: more sensors added refactor: css, js separated

x-zip-compressed - 14.90 kB - 10/06/2025 at 05:04

Download

polluSensWeb-1.2.zip

Support of byte stuffing, Sensirion SPS30 supports

x-zip-compressed - 13.62 kB - 07/13/2025 at 11:34

Download

polluSensWeb-1.1.zip

x-zip-compressed - 12.89 kB - 07/01/2025 at 14:57

Download

  • New features implemented

    Aleksei Tertychnyi06/30/2025 at 15:58 3 comments

    1. Implemented limited log (1000 packets by default) 

    2. Auto scroll enable/disable for log

  • Do you have sensors at home? You may help!

    Aleksei Tertychnyi06/28/2025 at 03:28 0 comments

    Hello All,

    Do you have something from following sensors:

    Winsen ZPH04 

     TEMTOP PM-900M
     MH-Z19 CO₂ sensor  
     MH-Z14 CO₂ sensor
     CM1106 CO₂ sensor
     SEN0231 (DF ROBOT HCHO sensor)
     ZE08B - HCHO
     ZPHS01C
     ZE08K-CH2O
     Cubic PM2008M-M
     Cubic PM2012SE-A
     HPMA115C0-004
     TERA Next PM

    If so, I’d be happy to assist you in creating a working configuration for it in polluSensWeb!
    If you’re using other serial-based sensors, please let me know which ones — I’d love if polluSensWeb will support more devices!
    Thank you in advance for any help or feedback — every bit counts!

    Best regards,
    Alex

View all 2 project logs

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates