Skip to content

Latest commit

 

History

History
52 lines (36 loc) · 2.36 KB

File metadata and controls

52 lines (36 loc) · 2.36 KB

Community Air Quality Monitoring Network

A robust Clarity smart contract for decentralized air quality monitoring on the Stacks blockchain. This contract enables organizations and individuals to register air quality sensors, submit pollution readings, and receive real-time alerts when air quality deteriorates.

Overview

The Community Air Quality Monitoring Network provides an immutable, transparent platform for tracking environmental air quality at the community level. All readings are recorded on-chain with blockchain-level timestamps, ensuring data integrity and historical accountability.

Features

Core Functionality

  • Monitor Registration - Register air quality sensors with geographic coordinates (latitude/longitude)
  • Reading Submission - Submit AQI values along with PM2.5 and PM10 measurements
  • Automatic Alerts - Generate alerts when AQI exceeds quality threshold (≥150)
  • Real-Time Data Access - Retrieve latest readings instantly for quick monitoring
  • Statistical Analytics - Track aggregated monitor statistics (average, min, max AQI)
  • Monitor Management - Activate/deactivate monitors as needed

Security Features

  • Authorization Checks - Only monitor owners can submit readings
  • Input Validation - Comprehensive validation for all parameters
  • Geographic Constraints - Latitude (-90 to 90) and longitude (-180 to 180) validation
  • AQI Range Validation - Enforces AQI values between 0-500
  • Error Handling - Specific error codes for debugging and monitoring

Data Structures

Maps

Map Purpose Key Value
monitors Store sensor metadata monitor-id owner, location, coordinates, active status
readings Historical air quality data reading-id AQI, PM values, timestamp, block height
monitor-latest Latest reading cache monitor-id last reading ID, AQI, timestamp
monitor-stats Aggregated statistics monitor-id total readings, avg/max/min AQI
alerts Air quality alerts alert-id monitor ID, AQI value, alert level

Variables

  • total-readings - Total readings submitted across all monitors
  • total-monitors - Total registered monitors
  • alert-count - Total alerts generated

Public Functions

register-monitor

Register a new air quality monitor.

(register-monitor location latitude longitude)