IoT · PWA · STACK 2026 (GDGoC ITB)
BreathSafe
OngoingSTACK 2026 — GDGoC ITB
A clip-on personal PM2.5 monitor for online motorcycle-taxi (ojol) drivers: a sensor module on the rider’s mask, cabled to a waist-worn battery, with glanceable LED air-quality bands and a Progressive Web App that summarizes each shift’s exposure.

Problem
Around seven million online motorcycle-taxi drivers work in Indonesia, but fixed air-quality stations cannot measure the air alongside each rider. On 30 October 2026, the RSUD Tanjung Priok rooftop station reported PM2.5 of 102.87 µg/m³ and an ISPU of 175 (“Unhealthy”).
Solution
BreathSafe is a sensor module on the rider’s mask, cabled to a waist-worn battery. A PMS5003 sensor and a 5 V blower sample the air near the face; three LEDs show PM2.5 bands, a red LED at a safe stop prompts a mask check, and the app then shows when and where exposure peaked. Riders can optionally share an anonymous summary (time per band only) with their driver group.
My role
Team member
Technology stack
- Chrome Progressive Web App on Android (Web Bluetooth)
- PMS5003 PM2.5 sensor
- nRF52840 board
- AHT20 humidity sensor
- 5 V blower for air sampling
Current status
Ongoing — a competition entry for STACK 2026 by GDGoC ITB (Case 2: Stronger Communities and Everyday Services), team “Mirza Batagor Phd”. The abstract is written; the hardware is not yet built or tested, and the images are concept renders, not photos of a prototype. Hardware freeze: 27 November 2026. Final Day, if selected: 16 December 2026.
Supports skills
- IoT product development
- Data Science
- User research
Field notes behind the problem Exploratory
- Six exploratory interviews in October 2026: five drivers and one student-worker
- Four reported dust-related eye irritation; four reported riding 5–10 hours per day
- One had a cough that made them stop working
- These accounts are exploratory and give no evidence of prevalence or causation
Core user flow (design) Design
- Three steady LEDs show project-defined PM2.5 bands
- At a safe stop, red prompts a mask check
- The app shows when and where exposure peaked, plus a private end-of-shift summary in Indonesian
- Optional: an anonymous group summary for mask-check planning (planned; synthetic data in the demo). Location data stays on the rider’s phone
Planned MVP and validation Planned
- Chrome PWA on Android using Web Bluetooth, with humidity logged for bias correction
- Weight and fit testing across all masks, a breakaway connector, day-and-night LED tests, and on-road helmet validation
- Two iterations: one bench unit and two pilot units
- Unit-agreement tests and, if reference access is confirmed, R² > 0.90
Not yet validated Unvalidated
- LED readability and mask-check follow-through
- Whether shared group summaries are compiled faster than manual counting
- Battery runtime (3–5 hours is unverified and will need duty-cycling)