Logo MeteoPI
← Home
Logo MeteoPI
Open Source Project under Active Development

Raspberry Pi Weather Station

A complete, robust, and autonomous solution to measure, archive, and visualize your local meteorological conditions. Built with physical sensors, RAM persistence to protect storage, an interactive dashboard, and advanced smart integrations.

View on GitHub

Main Features

Accurately monitor your local microclimate and share your telemetry in real-time.

Real-time Sensors

Continuous and accurate measurements of key metrics: temperature, relative humidity, barometric pressure, rainfall accumulation, wind speed, and direction (non-contact magnetic rotary vane).

Interactive Dashboard

A beautiful, responsive Flask web interface showing current metrics, 48-hour trends, an interactive wind rose, rainfall analysis, min/max stats, and a web admin history panel.

Satellite Radar Overlay

Stitches cloud cover tiles downloaded from OpenWeatherMap API into an animated 3x3 GIF map overlay to visualize and track atmospheric system movements.

RAM Wear Mitigation

Prolongs SD card life by capturing real-time telemetry inside a temporary RAM folder (`data/`), flushing to physical storage (`data_persistent/`) on system boot, shutdown, and backups.

Samba Backups (SMB)

An automated daily systemd service safely duplicates configuration files, historical databases, and CSV telemetry logs to a local SMB network share.

IoT & Integrations

Publishes MQTT payloads, updates InfluxDB (Grafana) instances, broadcasts scheduled reports via a Telegram bot, and outputs JSON metrics for home automation software.

Hardware Setup

Off-the-shelf electronic modules paired with custom 3D printed housings.

Sensors & Display

  • BME280 (I2C - 0x76): High-precision temperature, relative humidity, and barometric pressure sensor.
  • DHT11 (GPIO 4): Backup secondary sensor tracking temperature and humidity if an I2C anomaly occurs.
  • AS5600 (I2C - 0x36): Non-contact magnetic rotary sensor to capture precise wind vane orientation.
  • Anemometer & Rain Gauge (GPIO 5 & 6): Hall-effect wind speed cups and tipping bucket (calibrated to 0.213 mm/tip) wired to GPIO pins.
  • Grove RGB LCD & Button (I2C / GPIO 26): Character backlight panel reactive to temperature and screen toggling button.

3D Printing

Mechanical components (wind vane, anemometer cups, tipping bucket, and the multi-layer solar radiation shield casing for the primary BME280 sensor) are designed for easy home 3D printing in weather-resistant PETG or ASA.

# Recommended Thingiverse designs

Rain Gauge: Thingiverse #4725413

Anemometer: Thingiverse #2559929

Wiring Diagram

Connection pins and hardware interfaces recommended for the Raspberry Pi.

Component Interface Pin / Address Details / Description
BME280 I2C 0x76 Primary temperature, humidity, and barometric pressure sensor.
AS5600 I2C 0x36 Magnetic rotary encoder mapping exact wind vane orientation.
Grove LCD I2C 0x3e / 0x62 Character LCD (0x3e) and RGB backlight control board (0x62).
DHT11 GPIO GPIO 4 Backup backup sensor for temperature and humidity.
Pluviomètre GPIO GPIO 5 Tipping bucket rain sensor (calibrated to 0.213 mm/tip).
Anémomètre GPIO GPIO 6 Hall-effect wind speed pulse sensor.
Bouton LCD GPIO GPIO 26 Tactile button to cycle and swap character LCD display modes.

Smart Home Integration

MeteoPI exposes a standard JSON REST API endpoint at `/api/v1/sensors`. This allows external home automation platforms like **Home Assistant** to instantly ingest all real-time parameters.

// GET /api/v1/sensors
{
  "temperature": 21.4,
  "humidity": 58.2,
  "pressure": 1013.25,
  "wind_speed": 12.5,
  "wind_direction": "NNE",
  "rain_daily": 2.4
}