← All projects

SPS30 Tray Logger

Windows tray app that logs Sensirion SPS30 particulate readings with a built-in PM1/2.5/4/10 dashboard.

SPS30 Tray Logger

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 .exe build 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.