Projects / Dome weather sensors

A weather-sensor network for SAAO's telescope domes

SAAO Intelligent Observatory, 2026 · ESP32 firmware in C++ (Arduino) · housing designed in Fusion 360 · Python tools

Conditions inside a telescope dome matter for observing. Humidity decides whether the optics risk condensation, and temperature differences between the dome, the outside air and the mirror blur the images. For SAAO's Intelligent Observatory I built small, robust sensor nodes that measure temperature, humidity and air pressure inside the domes, and that any computer on the observatory network can read.

One node, designed in Fusion 360. The exploded view shows the case and its sliding lid, the Olimex ESP32-POE board, and a separate pod for the BME280 sensor; switch to see the housing assembled. Drag to rotate, scroll or pinch to zoom.

How it works

A reading looks like this (abridged):

{
  "device_id": "dome-zenith",
  "status": "ok",
  "ntp_status": "synced",
  "timestamp": "2023-12-04T21:04:04Z",
  "temperature": 21.5,
  "humidity": 45.8,
  "pressure": 1012.5
}

A small Python script polls a node and exits with a different code depending on whether the node is unreachable or reporting a sensor fault, so it can be used directly in automated health checks.

The housing

I designed a four-part housing and 3D-printed it: a case that holds the board, a lid that slides into grooves in the case, and a separate frame and snap-on lid for the sensor, which is wired to the board. Both parts have slots for cable ties, because a jumper wire working loose is the most common failure in the field.

A printed grey sensor node, with the SAAO IO logo and a vented grille on its lid, connected by a ribbon cable to the small vented sensor pod
A finished node: the case with the board inside, and the sensor pod on its cable.