Agricultural IoT Sensor Pipeline
System ↔ SystemIoT sensor data from edge to cloud with anomaly detection and irrigation control.
6 nodes · 5 edgesagriculture
eventsystemapidb
Visual
IoT Gateway Dataevent
LoRaWAN gateway collects soil moisture, temperature, and humidity readings.
↓sequential→ Edge Processing
Edge Processingsystem
Local aggregation, filtering, and compression at field edge node.
↓sequential→ Cloud Ingestion
Cloud Ingestionapi
HTTPS POST to cloud IoT platform (AWS IoT Core / Azure IoT Hub).
↓sequential→ Anomaly Detection
↓parallel→ Farmer Dashboard
Anomaly Detectionsystem
Statistical model flags readings outside 3-sigma or sensor malfunction.
↓conditional→ Irrigation Controller
Irrigation Controllerapi
Send valve open/close command to drip irrigation system.
Farmer Dashboarddb
Write processed data to time-series DB for mobile dashboard.
uc-iot-sensor-pipeline.osop.yaml
osop_version: "1.0"
id: "iot-sensor-pipeline"
name: "Agricultural IoT Sensor Pipeline"
description: "IoT sensor data from edge to cloud with anomaly detection and irrigation control."
nodes:
- id: "iot_gateway"
type: "event"
name: "IoT Gateway Data"
description: "LoRaWAN gateway collects soil moisture, temperature, and humidity readings."
- id: "edge_process"
type: "system"
name: "Edge Processing"
description: "Local aggregation, filtering, and compression at field edge node."
timeout_sec: 5
- id: "cloud_ingest"
type: "api"
subtype: "rest"
name: "Cloud Ingestion"
description: "HTTPS POST to cloud IoT platform (AWS IoT Core / Azure IoT Hub)."
retry_policy:
max_attempts: 3
backoff: "exponential"
timeout_sec: 30
- id: "anomaly_detect"
type: "system"
name: "Anomaly Detection"
description: "Statistical model flags readings outside 3-sigma or sensor malfunction."
- id: "irrigation_ctrl"
type: "api"
name: "Irrigation Controller"
description: "Send valve open/close command to drip irrigation system."
security:
risk_level: "medium"
- id: "farmer_dashboard"
type: "db"
name: "Farmer Dashboard"
description: "Write processed data to time-series DB for mobile dashboard."
edges:
- from: "iot_gateway"
to: "edge_process"
mode: "sequential"
- from: "edge_process"
to: "cloud_ingest"
mode: "sequential"
- from: "cloud_ingest"
to: "anomaly_detect"
mode: "sequential"
- from: "cloud_ingest"
to: "farmer_dashboard"
mode: "parallel"
- from: "anomaly_detect"
to: "irrigation_ctrl"
mode: "conditional"
when: "soil_moisture < threshold_low"