Intelligent Environmental Monitoring and Control System for Server Room Cooling
Envirozen is an intelligent environmental monitoring and control system designed to optimize server room cooling while minimizing energy consumption. The system automatically switches between different cooling modes based on real-time temperature readings from multiple sensors, prioritizing ambient air cooling when possible to reduce reliance on expensive air conditioning.
- Automatic Cooling Mode Selection: Intelligently switches between passive, free cooling, turbo, and AC modes
- Multi-Sensor Monitoring: Monitors ambient, cold aisle, hot aisle, and under-floor temperatures
- Energy Optimization: Prioritizes ambient air cooling to reduce energy costs
- Emergency Protection: Automatic emergency mode for critical temperature conditions
- Web Interface: Real-time monitoring and manual control via web dashboard
- Historical Data: Integration with Prometheus and Grafana for long-term analysis
- Fail-Safe Design: Designed to default to safe cooling mode in case of system failure
Started: October 2022
Motivation: Rising electricity costs and environmental concerns
Evolution: Originally Arduino-based, evolved to Python on Raspberry Pi for enhanced capabilities
Author: Nic Kilby
Component | Quantity | Purpose |
---|---|---|
Raspberry Pi 4 | 1 | Central controller |
Enviro Indoor (Pico W) | 4+ | Environmental sensors for each monitoring zone |
Weatherproof Enclosures | As needed | Outdoor sensor protection |
1.5kW Fans | 2 | Air circulation |
TUNE-S-600x600-M1 Damper | 1 | Mechanical damper with M1 actuator |
The system creates positive pressure by introducing external ambient air when temperature conditions are favorable, expelling warmer air through specialized vents while minimizing AC usage.
- Raspberry Pi 4 with Ubuntu 22.04 Server
- Python 3.8+
- Network connectivity for all components
For detailed installation instructions, see docs/INSTALLATION.md
# Clone repository
git clone https://github.com/your-org/envirozen.git
cd envirozen
# Install dependencies
cd envirozen/controller
pip install -r requirements.txt
# Configure system
cp config.py.example config.py
nano config.py # Update with your settings
# Start services
sudo systemctl enable envirozen
sudo systemctl start envirozen
Service | URL | Purpose |
---|---|---|
Main Dashboard | http://your-pi:5000 |
Control interface and real-time status |
Grafana | http://your-pi:3000 |
Historical data and analytics |
Prometheus | http://your-pi:9090 |
Metrics storage (optional access) |
Sensor Metrics | http://sensor-ip/metrics |
Individual sensor data |
Update each Pico W sensor with your network credentials:
# In envirozen/sensors/main.py
ssid = 'YOUR_WIFI_NETWORK'
password = 'YOUR_WIFI_PASSWORD'
location = 'SENSOR_LOCATION' # 'ambient', 'cold', 'hot', 'floor'
Customize in config.py
:
METRIC_THRESHOLDS = {
'temperature_ambient': 25, # Max ambient for free cooling
'temperature_cold': 20, # Target cold aisle temp
'temperature_hot': 31, # Max hot aisle before AC
'temperature_emergency': 36, # Emergency threshold
}
Mode | Trigger | Fans | Damper | AC | Purpose |
---|---|---|---|---|---|
Passive | Cold < 10Β°C | OFF | Open | OFF | Natural circulation |
Free Cooling | Cold 10-20Β°C | Fan 1 ON | Open | OFF | Basic air circulation |
Turbo | Cold 20-25Β°C | Both ON | Open | OFF | Maximum air circulation |
AC Mode | Hot > 31Β°C or Cold > 25Β°C | OFF | Closed | ON | Mechanical cooling |
Emergency | Hot > 36Β°C | Both ON | Open | ON | Maximum cooling |
- Continuous Monitoring: Sensors collect temperature, humidity, and pressure data every few seconds
- Data Storage: Prometheus stores all metrics for historical analysis
- Intelligent Control: Main controller evaluates conditions every 10 seconds
- Automatic Switching: System selects optimal cooling mode based on current conditions
- Manual Override: Web interface allows manual control when needed
- Emergency Response: Automatic emergency cooling when critical thresholds exceeded
- π Installation Guide - Step-by-step setup instructions
- ποΈ System Architecture - Detailed system design and components
- π API Documentation - Interface specifications and endpoints
- π οΈ Troubleshooting Guide - Common issues and solutions
We welcome contributions! Please see our Contributing Guidelines for details on:
- Code style and standards
- Testing requirements
- Pull request process
- Issue reporting
This project is licensed under the MIT License - see the LICENSE file for details.
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π§ Email: support@yourorg.com
- Original concept and development by Nic Kilby
- Inspired by rising energy costs and environmental concerns
- Thanks to the Raspberry Pi and MicroPython communities
β‘ Energy Efficient β’ π‘οΈ Temperature Controlled β’ π§ Open Source