Skip to main content

IESH v0 — Build Log and First Lessons

Kathmandu, Nepal
The first-generation station: a Raspberry Pi 3B with a DHT22, a BMP280, and an MQ-135 air-quality proxy. It logs locally every 60 seconds and serves its own dashboard. The DHT22 reads about 2°C high at high humidity — we log raw values and document the offset.

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