Contains firmware for the Community Avian and AirQuality Network for Observing Pollution Year-round(CANOPY)
This system design leverages an Odroid as a powerful Edge IoT node, integrating local data collection, processing, and resilient cloud synchronization. All local services and custom sensor readers are managed via Git repositories for version control and streamlined deployments. The system ensures continuous operation during internet outages by storing data locally and syncing to the cloud when connectivity is restored, while also publishing live data to the cloud via MQTT.
- Git-Managed Dockerized Sensor Readers: Python containers pulled from Git, reading sensors and publishing data via MQTT.
- Git-Managed Local Services:
- Mosquitto (MQTT Broker): Manages local messaging.
- Node-RED: Handles data routing, automation, and local storage to InfluxDB.
- InfluxDB (Local): Buffers time-series data at the edge.
- Telegraf: Continuously syncs local InfluxDB data to Cloud InfluxDB.
- Grafana: Provides edge visualization for real-time monitoring without relying on cloud access.
- Cloud Backend: Centralized Node-RED, InfluxDB, and Grafana for real-time processing, long-term storage, and visualization.
- Sensors connected to Odroid are read by Dockerized Python sensor readers deployed from Git - The current repo.
- Sensor data is published to:
- Local MQTT Broker for edge processing.
- Cloud MQTT Broker for real-time cloud ingestion.
- Node-RED (Edge) subscribes to local MQTT, processes data, and stores it in local InfluxDB.
- Telegraf syncs buffered data from local InfluxDB to Cloud InfluxDB.
- Cloud Node-RED and Grafana handle advanced workflows and visualization.
- Git-Managed Deployments: Version control for all services and sensor readers.
- Offline Resilience: Full functionality without internet.
- Live Data Streaming: Real-time data published to cloud via MQTT.
- Automated Cloud Sync: Telegraf ensures data consistency between edge and cloud.
- Modular & Scalable: Docker-based deployment for easy management.
- Flexible Automation: Node-RED enables custom logic and integrations.
- Clone Git repositories for local services and sensor readers.
- Deploy Docker Compose stack on Odroid (MQTT, Node-RED, InfluxDB, Telegraf, Grafana).
- Run sensor reader containers from Git.
- Configure Node-RED flows for data handling.
- Set up Telegraf for continuous cloud sync.
- Deploy local Grafana for edge-based dashboards and visualization.
- Access cloud Node-RED and Grafana for real-time monitoring and dashboards.