AirCube: ESPHome desk air-quality cube with charts
An all-in-one ESPHome air monitor showing temperature, humidity, CO2 and PM2.5 with 12-hour trend charts on a small screen.

Key Facts
- Chip: ESP32
- Sensors: CO2, PMS5003, temp/humidity
- Framework: ESPHome
- Integration: Home Assistant, Domoticz (MQTT)
About This Project
AirCube is a compact cube-shaped environment monitor running ESPHome. A small display shows an overview page, per-sensor detail pages (e.g. PM1/PM2.5/PM10) and 12-hour history charts, navigated with buttons. Data goes to Home Assistant or Domoticz over MQTT, and scripts support deploying multiple units. The main README is in Chinese with an English version.
Source & Attribution

Parts Needed
- ESP32 board (the project uses a custom PCB)
- Plantower PMS5003 particulate sensor
- CO2 sensor (e.g. SenseAir S8)
- Temperature/humidity sensor (BME280 or SHT31)
- Small TFT display
- 3D-printed enclosure
Steps
- 1
Build the PCB
Order the PCB from the repo, solder the parts listed in the component selection notes, then assemble the cube enclosure.
- 2
Install the tools
Install ESPHome and esptool.py, which the build script uses.
- 3
Choose options
The Firmware folder's build.sh takes environment variables to swap sensor models (e.g. TEMP=sht31) and set things like a static IP for OTA updates.
- 4
Build and flash
Run ./build.sh upload to compile and flash in one step over USB. Later updates can go over the air to the fixed IP.
- 5
Integrate
Add the device in Home Assistant, or point it at your MQTT broker for Domoticz.
Not included: 3D-printed case, wire, solder, USB cable
Related Projects





