Overview
A Windows tray application that logs Sensirion SPS30 particulate-matter readings and provides a built-in dashboard. Double-click the tray icon to open a clean view with tabs for the last 1h, 3h, 12h, 24h and All time, plotting PM1 / PM2.5 / PM4 / PM10 and showing quick stats (now / avg / max).
Features
- Tray icon with a quick menu: open dashboard, pause/resume sampling, quit.
- Auto-scans COM ports (COM3..COM40) or uses a fixed port.
- Daily CSV logging to
./logs/sps30_YYYY-MM-DD.csv. - Tkinter dashboard with Matplotlib plots and quick stats across time windows.
- Single-file, no-console
.exebuild via PyInstaller.
Install & run
py -m pip install pystray pillow sensirion-shdlc-driver sensirion-shdlc-sps matplotlib pyinstaller
py sps30_tray_logger_win.py
Configure
CONFIG.uart_port = "COM5" # or None to auto-scan COM3..COM40
CONFIG.sample_period_s = 5.0
Package as a single EXE
py -m PyInstaller --onefile --noconsole --name sps30-tray-logger sps30_tray_logger_win.py
Sampling continues in the background when the dashboard window is closed, and the app can auto-start on login via the Startup folder or Task Scheduler.