Smart Desk Environment Monitor + Digital Clock
A compact desk gadget that shows:
- Time
- Temperature
- Humidity
- Air quality level (simple indicator)
- Optional RGB ambient glow
Built using an RP2040, DHT22, MQ-135, and a 128×64 I2C OLED. All wiring is done with jumper wires on a breadboard — no soldering required.
Features
- RP2040-based microcontroller (e.g. Raspberry Pi Pico)
- DHT22 temperature & humidity sensor
- MQ-135 air quality sensor
- 128×64 I2C OLED display
- Optional WS2812 RGB LED ring for visual effects
- MicroPython firmware
- Simple 3D-printed enclosure (TinkerCAD design)
- Designed as a daily-use desk tool for study sessions
System Block Diagram
- DHT22 → RP2040 (GPIO)
- MQ-135 → RP2040 (analog input or digital threshold)
- RP2040 → OLED (I2C)
- RP2040 → optional WS2812 ring
- RP2040 → USB (power + serial)
Hardware Plan
- Microcontroller: Raspberry Pi Pico / RP2040 board
- Sensors: DHT22 (temp+humidity), MQ-135 (air quality)
- Display: 128×64 OLED (I2C)
- Optional: WS2812 RGB LED ring
- Other: Breadboard, Dupont jumper wires, USB cable, 3D-printed case
Bill of Materials
A detailed BOM is in bom/BOM.csv, but roughly:
- RP2040 board
- 128×64 OLED (I2C)
- DHT22 sensor
- MQ-135 sensor
- WS2812 RGB ring (optional)
- Breadboard + wires
- 3D printed case
Firmware Firmware will be written in MicroPython. Goals:
- Read DHT22 and MQ-135
- Show time + sensor values on OLED
- Show air-quality as text + icon/bar
- Drive optional WS2812 ring
/firmware/code.py will be the main entrypoint.
Project Structure Planned structure:
smart-environment-monitor/
├── firmware/
│ ├── code.py
│ └── modules/
├── assets/
│ ├── sketch.png
│ ├── block_diagram.png
│ └── cad_preview.png
├── cad/
│ ├── case.stl
│ └── faceplate.stl
├── bom/
│ └── BOM.csv
├── docs/
│ └── wiring.png
├── .gitignore
├── README.md
└── LICENSE