An example of a real-time monitoring system for an interactive art installation that combines physical sensors, data visualization, and responsive audio/lighting experiences.
- Guide
- Use Cases
- Quick Start
- System Overview
- System Architecture
- Installation & Setup
- Configuration
- Data Models
You can follow the guide in this repo for an in-depth tutorial on how to set up InfluxDB and Grafana in seconds.
Data monitoring in interactive installations with InfluxDB can be useful for:
Operational Management
-
Real-time System Health:
- Monitor equipment failures before they impact visitors (sensor failures, speaker network issues)
- Track power consumption to prevent electrical overloads in remote locations
- Alert staff when devices go offline or sensors produce anomalous readings
-
Predictive Maintenance:
- Historical data reveals equipment degradation patterns
- Schedule maintenance during low-visitor periods
- Reduce unexpected downtime that disrupts the experience
- Track environmental wear on sensitive electronics exposed to weather
Artistic Enhancement
-
Data-Driven Creative Decisions:
- Understand which environmental conditions produce the most engaging responses
- Correlate visitor engagement with specific audio/visual combinations
- Optimize the relationship between sensors and audiovisual realtime generated content
-
Performance Optimization:
- Identify dead zones where sensors aren't detecting visitors effectively
- Balance audio levels for optimal sound propagation
- Adjust sensitivity thresholds based on seasonal changes (temperature, weather patterns, etc.)
Visitor Experience Insights
-
Engagement Analytics:
- Track dwell times in different zones to understand visitor preferences
- Identify peak interaction periods for staffing and maintenance planning
- Measure how weather conditions affect visitor behavior and system responsiveness
- Document successful artistic moments for replication
-
Safety and Accessibility:
- Monitor visitor density
- Ensure emergency systems remain functional
Documentation and Research
-
Artistic Documentation:
- Create a permanent record of how the installation evolves
- Build a dataset for future impact studies, installations or academic research
-
Technical Knowledge Base:
- Build expertise for scaling to other locations
- Document what works in specific environmental conditions
- Create templates for similar installations
Business Value
-
Operational Efficiency:
- Reduce site visits through remote monitoring
- Optimize energy consumption
- Demonstrate system reliability to stakeholders and funders
- Support insurance requirements for complex outdoor installations
-
Scalability:
- Proven monitoring architecture for multiple installations
- Remote management capabilities for distributed sites
- Data-driven proposals for expansion or improvements
# Start the complete monitoring system
./start_monitoring.sh
# Or run components individually:
python installation_sim.py --demo # Simulator with visual dashboard
python influx_bridge.py --simulator-api --interval 5 # Real-time data bridge
telegraf --config telegraf.conf # System metrics collectionThis system simulates and monitors an installation with:
- 3 zones: entrance_clearing, deep_forest, riverside
- 27 trees with strain gauge sensors
- 15 visitor detection sensors (LiDAR)
- Audio/lighting systems LED fixtures and speakers with light and audio responsive to environmental data
- Real-time InfluxDB monitoring with ~204k daily data points
Installation Layout:
┌─────────────────┬─────────────────┬─────────────────┐
│ ENTRANCE │ DEEP FOREST │ RIVERSIDE │
│ CLEARING │ │ │
├─────────────────┼─────────────────┼─────────────────┤
│ 9 trees │ 9 trees │ 9 trees │
│ 5 LiDAR sensors │ 5 LiDAR sensors │ 5 LiDAR sensors │
│ 1 audio speaker │ 1 audio speaker │ 1 audio speaker │
│ 1 LED fixture │ 1 LED fixture │ 1 LED fixture │
│ Weather station │ Weather station │ Weather station │
└─────────────────┴─────────────────┴─────────────────┘
│ │ │
└─────────────────┼─────────────────┘
│
│
Control PC
│
InfluxDB Server
[Sensors + A/V devices] → [Zone Hubs] → [Control PC + Telegraf] → Server w/ InfluxDB → Grafana
↓ | ↓ |
(RPi/microcontrollers) | (Ubuntu/Docker) |
↓ ↓
(Windows w/ installation control software) (Data viz/Monitoring/Alerts)
Zone Hubs (Raspberry Pi or microcontroller)
- Collect data from local sensors
- Pre-process and validate sensor readings
- Forward data via LAN to control center
- Manage local audio/lighting responses
Control PC (Windows/Linux)
- Aggregates data from all zones
- Runs Telegraf for system metrics collection
- Hosts TouchDesigner/Max or other software for real-time audio processing
- Manages overall installation state
InfluxDB Server
- Stores time-series data from all sources
- Provides high-availability data storage
- Enables real-time and historical queries
- Python 3.10 or higher
- Instances of InfluxDB and Grafana (Docker recommended for testing)
- Telegraf
# Clone repository
git clone [repository-url]
cd InteractiveArtInstallation
# Create and activate virtual environment
python -m venv .
source bin/activate # Linux/Mac
# or
Scripts\activate # Windows
# Install dependencies
pip install influxdb-client numpy watchdogCreate and configure the following files:
InfluxDB Configuration
# influxdb/config.py
INFLUX_URL = "https://your-influx-instance.com"
INFLUX_TOKEN = "your-api-token"
INFLUX_ORG = "your-organization"
BUCKETS = {
"installations": "artistic_data",
"system_metrics": "system_health"
}Telegraf Configuration
# telegraf.conf
[global_tags]
installation = "forest_interactive"
location = "primary_site"
[[outputs.influxdb_v2]]
urls = ["https://your-influx-instance.com"]
token = "your-api-token"
organization = "your-organization"
bucket = "system_metrics"The installation simulator supports multiple configuration modes:
Real-time Mode (Default)
python installation_sim.py
# Updates every 30 seconds with realistic timingDevelopment Mode
python installation_sim.py --interval 10 --demo
# Fast updates with exaggerated changes for testingSnapshot Mode
python installation_sim.py --snapshot --output test_data
# Single data capture for validationEach forest zone has unique characteristics:
Entrance Clearing
- Higher visitor traffic (peak 9-18h)
- 8 connected sensors per zone hub
- Better WiFi signal strength (-45 to -75 dBm)
- More responsive lighting due to visibility
Deep Forest
- Lower visitor traffic but longer stay times
- 6 connected sensors per zone hub
- Weaker WiFi signal (-65 to -85 dBm)
- More ambient audio focus
Riverside
- Variable visitor patterns based on weather
- 6 connected sensors per zone hub
- Good WiFi signal (-45 to -75 dBm)
- Water-themed audio and cooler lighting
Environmental Data
{
"measurement": "environmental",
"tags": {
"zone": "entrance_clearing",
"measurement_type": "weather"
},
"fields": {
"temperature_c": 22.5,
"humidity_percent": 65.2,
"wind_speed_kmh": 8.3,
"atmospheric_pressure_hpa": 1013.2
},
"timestamp": "2025-01-15T10:30:00Z"
}Tree Biometrics
{
"measurement": "tree_biometrics",
"tags": {
"tree_id": "OAK_001",
"zone": "deep_forest",
"species": "oak"
},
"fields": {
"strain_gauge_reading": 0.0023,
"movement_amplitude_mm": 3.2,
"natural_frequency_hz": 0.8,
"health_score": 0.92
},
"timestamp": "2025-01-15T10:30:00Z"
}Visitor Detection
{
"measurement": "visitor_detection",
"tags": {
"sensor_id": "LIDAR_ENT_001",
"zone": "entrance_clearing"
},
"fields": {
"distance_cm": 150,
"movement_detected": true,
"confidence_score": 0.95,
"duration_seconds": 45
},
"timestamp": "2025-01-15T10:30:00Z"
}See the data_structure.md file for detailed info on the data model.