IoT Environmental Monitor + Real-Time Dashboard
A Raspberry Pi or Arduino sensor node that streams air quality data through MQTT to a Python backend, stores time-series records in PostgreSQL, and pushes live updates to a Next.js dashboard via WebSockets.
Why it matters
Deployed sensor data becomes a genuinely useful public health tool during wildfire season. The same architecture underpins industrial IoT monitoring, environmental compliance systems, and smart building dashboards.
Skills this builds
- WebSockets / real-time state
- IoT / sensor-to-cloud pipeline
- MQTT protocol
- Time-series data modeling
- Hardware-software bridge project
- Docker containerization
- Linux server administration
Implementation plan
- 1Wire a DHT22 temperature/humidity sensor and MQ-135 CO₂ sensor to a Raspberry Pi or Arduino Nano 33 IoT.
- 2Write embedded firmware (C or MicroPython) that reads sensors on a 30-second interval and publishes JSON payloads to an MQTT broker topic.
- 3Stand up a local Mosquitto MQTT broker, then write a Python subscriber that parses incoming payloads and inserts them into a PostgreSQL table (timestamp, sensor_id, metric, value).
- 4Build a Next.js API route that serves the last N readings and a WebSocket endpoint that pushes new readings to connected clients in real time.
- 5Build the frontend dashboard: a live line chart (Recharts), current readings summary card, and a historical range selector.
- 6Containerize the Python subscriber and PostgreSQL with Docker Compose so the entire backend starts with one command.
- 7Deploy to Railway or Fly.io free tier and document the full architecture in the README with a wiring diagram.