Join the Sensor Network

opensensor.space is designed to be easily replicated and expanded into a community-driven sensor network. We welcome contributions from anyone interested in deploying sensors - whether for environmental monitoring, industrial IoT, smart agriculture, or any other use case - and sharing data using open standards.

How to Participate

  1. Deploy your sensors - Follow the setup instructions below for the reference implementation, or adapt to your sensor hardware
  2. Choose your storage - Use Source Cooperative for open data or your own S3-compatible storage
  3. Submit a PR - Add your sensor deployment to the network with station ID (UUID), sensor type, location coordinates, and storage URL
  4. Share your insights - Contribute dashboard improvements, custom visualizations, or reference implementations for new sensor types

Benefits of Contributing

By creating a distributed sensor network using this architecture, we can build comprehensive data collection systems across different locations and use cases while maintaining individual ownership of data collection infrastructure. The platform supports various applications: environmental monitoring, industrial IoT, smart agriculture, urban analytics, and more.

Reference Implementation: Environmental Monitoring

This example demonstrates the platform using environmental sensors. You can adapt this architecture to any sensor type - industrial, agricultural, medical, or custom IoT devices.

Hardware Components for Reference Setup

Technical Requirements

Hardware Options

For the Reference Environmental Setup:

  • Raspberry Pi Zero 2 W (or any Raspberry Pi model)
  • Pimoroni Enviro+ Air Quality sensor package
  • PMS5003 Particulate Matter sensor (recommended for air quality monitoring)
  • microSD card with Raspberry Pi OS (min. 8GB)
  • Power supply for Raspberry Pi
  • Optional: GPS module for mobile installations (for location tracking)

For Custom Sensor Deployments:

  • Any edge device with network connectivity (ESP32, Arduino, Raspberry Pi, industrial PLCs, etc.)
  • Your sensor hardware (temperature, pressure, vibration, chemical, optical, etc.)
  • Storage (SD card, eMMC, or local SSD for offline buffering)
  • Power supply appropriate for deployment (mains, battery, solar, PoE)

Software Setup (Reference Implementation)

For the environmental monitoring reference setup, follow these steps:

  1. Install the Official Enviro+ Python Library - Set up the official Enviro+ Python environment first following their installation instructions:

    git clone https://github.com/pimoroni/enviroplus-python
    cd enviroplus-python
    sudo ./install.sh
  2. Extend the Environment with Additional Libraries - Once the official Enviro+ environment is set up, install the additional required libraries:

    pip install awscli fastparquet pandas
  3. Set Up Your Own Copy of the Parquet-Edge Project:

    • First, fork the opensensor-space-edge repository to your own GitHub account
    • Clone your forked repository to your Raspberry Pi
    • Customize the configuration:
      • Update the station ID in config.py (e.g., change from "01" to your unique station ID)
      • Configure your S3 credentials in the GitHub Actions workflow files (.github/workflows/*.yml)
      • Adjust any data collection parameters as needed for your specific deployment

How the Data Collection System Works

The opensensor-space-edge repository provides a reference implementation for sensor operation:

  1. Sensor Data Collection: Reads data from sensors at configurable intervals (default: 1-second for environmental data)
  2. Local Storage: Writes data to local Parquet files in partitioned structure
  3. Cloud Synchronization: Uses built-in GitHub Actions workflows to sync data to your S3-compatible storage
  4. Offline Operation: Continues collecting data when internet is unavailable and syncs when connection is restored
  5. Aggregation: Creates daily aggregated files for more efficient historical analysis

Custom Implementations: You can adapt this pattern to any programming language (Python, JavaScript, Rust, C++) and any sensor protocol (I2C, SPI, Modbus, UART, etc.). The core principle remains: collect data locally in Parquet format, then batch sync to object storage.

After your sensor deployment is up and running, you can send an email with your deployment info to hi@walkthru.earth and we will add it to the sensors_db.parquet registry for network-wide discovery and visualization.

Data Structure Guidelines

To ensure compatibility with the network, please follow these data structure guidelines:

  1. File format: Use Parquet files with consistent schema
  2. Data frequency: Record data at 1-second intervals, with files covering 5-minute periods

Near Real-Time Data (5-minute files)

These files contain 1-second interval readings aggregated into 5-minute chunks for near real-time monitoring:

station={STATION_ID}/year={year}/month={month}/day={day}/data_{time}.parquet

Example:

s3://us-west-2.opendata.source.coop/youssef-harby/weather-station-realtime-parquet/parquet/station=01/year=2025/month=04/day=05/data_0145.parquet

View example files:

This structure is used in the Near Real-Time Dashboard to show the most recent readings.

Daily Aggregated Data (for historical analysis)

For more efficient historical data analysis, 1-minute averages are aggregated into daily files:

station={STATION_ID}/year={year}/month={month}/{year}_{month}_{day}.parquet

Example:

s3://us-west-2.opendata.source.coop/youssef-harby/weather-station-realtime-parquet/1m_avg_daily/station=01/year=2025/month=04/2025_04_05.parquet

View example files:

This structure is used for all the historical dashboards and trend analysis.

Station ID Guidelines

  • Use a unique identifier for your station (UUID) instead of simple identifiers like "02" or "03"

Advanced Deployments

Mobile Sensors

Support for GPS-enabled mobile sensor deployments is coming soon, enabling spatial data collection from vehicles, drones, and portable monitoring units.

LoRa Mesh Networks

We're developing reference implementations for LoRa mesh architectures where multiple sensors communicate with each other, and one designated gateway sensor handles WiFi synchronization to cloud storage. This enables large-area coverage with minimal infrastructure and ultra-low power consumption.

This dashboard is built with Evidence, which allows us to query and visualize the Parquet data directly in the browser - no backend required!