Handheld air quality monitor

A battery-powered monitor for CO, NO₂, PM2.5 and PM10 with an LCD readout, LED warnings and a ThingSpeak cloud dashboard.
A handheld device that measures carbon monoxide, nitrogen dioxide, PM2.5 and PM10. It shows readings on an LCD, warns with LED indicators, runs on a rechargeable battery and uploads data over Wi-Fi to a ThingSpeak dashboard for remote access.
It is built on an Arduino Nano 33 IoT. We validated readings indoors and outdoors against reference sources, including a sealed-box test to check the sensors against a known environment.
What I did
- Designed the T-shaped enclosure in SolidWorks, with internal pockets sized to hold each component in place and air slots over the sensors, then iterated from early blue prototype cases to the final black print.
- Hand-soldered the Arduino, level shifter, power switch and wiring onto a dot board.
- Worked on sensor interfacing, hardware and software integration, PCB fabrication and calibration.
- Field-tested the device indoors and outdoors against reference sources.
What went wrong, and the fix
- Problem:
Charging meant opening the case and unplugging the battery.
Fix:Added an MHCD42 charge and power-management board with an external charging port.
- Problem:
A custom PCB meant to tidy the wiring made the device unstable once fitted.
Fix:Traced the fault to a connection misplaced by the external board maker, went back to the hand-soldered board and full function returned.
- Problem:
Early particulate readings were unstable.
Fix:Updating the sensor library fixed it.
From the bench
The finished handheld monitor in its black 3D-printed case
SolidWorks design of the T-shaped enclosure
Wired prototype sitting in the printed case
Hand-soldering the dot board
Early blue prototype cases
Custom PCB, later reverted after a fabrication fault
Sealed-box test setup for checking readings
Start-up screen on the device display