Observatory telemetry concept: this page describes a public-safe Raspberry Pi sensor hub for the backyard observatory. Future live readings should be published through same-origin server-side endpoints with sanitized status fields only; no device credentials or actuator controls belong in frontend code.
Pi telemetry architecture ready

Raspberry Pi Observatory Sensor Hub

A Raspberry Pi 4 can become the observatory’s local sensor brain: collecting weather, sky-safety, power, roof/enclosure, and device-heartbeat data for the TESS command-center stack.

Hub target
Pi 4
Local telemetry node
Sensor bus
I2C / GPIO
Modular inputs
Publish path
Server API
Sanitized status
Mode
Planned
Build roadmap
Sensor bus HUDObservatory edge node

Recommended Sensor Stack

Initial hardware targets for a safe-to-observe gate. Keep public output limited to high-level statuses such as Safe, Standby, Alert, and Last Seen.

BME280 / BME680Core

Temperature, humidity, pressure, and optional air-quality baseline for observatory environment telemetry.

Rain SensorSafety

Immediate unsafe condition gate for roof/enclosure and exposed equipment protection.

AnemometerSafety

Wind speed input for tracking stability and exposure safety decisions.

Light / Sky SensorOptional

Darkness, glare, and rough sky-brightness indicator for observation planning.

UPS / Power MonitorCore

Power heartbeat, undervoltage detection, and graceful shutdown readiness.

Equipment HeartbeatsCore

Mount, camera, mini-PC, and network reachability checks without exposing direct control endpoints.

Deployment Roadmap

  • Phase 1: assemble Pi 4 with sensors, stable power, enclosure, and local-only logging.
  • Phase 2: run a local Python collector that writes a sanitized JSON status document.
  • Phase 3: expose same-origin `/api/observatory-sensors` from the website server, not direct Pi ports.
  • Phase 4: feed the Observatory Command Center safe-to-observe widget and alerting rules.
Example public JSON shape:
{
  "status": "standby",
  "safe_to_observe": false,
  "temperature_f": null,
  "humidity_pct": null,
  "wind_mph": null,
  "rain_detected": null,
  "last_seen_utc": null
}