Take a look at the BOM in assembly manual[0]. The basics are made from NodeMCU (ESP8266) and SDS011 Fine dust sensor, + optionally DHT22. Plus some pipes. It can be assembled without soldering; it's really a few minutes job.
Firmware for ESP8266 is OSS. It's set by default to send data to the Luftdaten project, but unlike commercial solutions I've seen, it also allows you to get the data for yourself. I just set up InfluxDB on a Raspberry Pi and gave the sensor the URL to DB's API.
Copying from my sensor's config page, current firmware has support for following sensors:
SDS011 (fine dust sensor)
Plantower PMS(1,3,5,6,7)003 (fine dust sensor)
Honeywell fine dust sensor
PPD42NS (fine dust sensor)
DHT22 (temperature, humidity)
HTU21D (temperature, humidity)
BMP180 (temperature, pressure)
BMP280 (temperature, pressure)
BME280 (temperature, humidity, pressure)
DS18B20 (temperature)
GPS (NEO 6M)
I assume it's not hard to fork the firmware and add support for other sensors if needed.Building this is a really easy quick project, or an afternoon project to do with your non-tech spouse / kid.
--
EDIT: Testing the sensor indoors led me to discover that ultrasound air humidifiers can pretty efficiently atomize everything that's dissolved in the water you feed them. After seeing PM10 shooting up to 600μg/m³ every time we turned one on, I realized the manual isn't saying "please use distilled water" just to make the humidifier require less cleaning...
--