IESH v0 — Build Log and First Lessons
Components
Raspberry Pi 3B. DHT22 for air temperature and humidity on a GPIO pin. BMP280 for barometric pressure on I2C. MQ-135 gas sensor as an air-quality proxy. Everything was sourced in Kathmandu or carried in hand luggage — that is part of the point: this is a station a school could assemble.
Logging design
One reading every 60 seconds, written to a local SQLite database on the card. The station never depends on the network: a Flask dashboard serves live charts on the local network, and cloud sync to the website API is deliberately a separate, later integration. Local first; everything else is an add-on.
Sensor limitations
The DHT22 reads roughly 2°C high when humidity is above ~70% — a known issue with this sensor. We log the raw values and document the offset rather than correcting in place. The MQ-135 responds to a mix of gases and drifts with temperature and humidity; without a reference instrument beside it, it is a relative signal. So we store the raw reading and label it a proxy — not PM2.5, not an AQI.
What v0 taught us
Low-cost sensors are useful provided their limitations are documented and their outputs labelled for what they measure. And the offline-first architecture earned its keep immediately: power cuts and dropped WiFi that would have lost data on a cloud-first design cost us nothing, because the card never stopped logging.
Kathmandu, Nepal · 1400m asl