Pool Controller
ποΈ Pool Controller
The Pool Controller is the heart of the Smart Swimming Pool system. It’s an ESP32-based device that provides central control logic for your pool automation.
π‘ Overview
The Pool Controller handles:
- Temperature Monitoring: Reads data from DS18B20 temperature sensors (pool water and solar collector)
- Pump Control: Controls circulation and heating pumps via relay modules
- Automation Logic: Implements heating logic with hysteresis and temperature thresholds
- Circulation Scheduling: Automated timing for sand filter cleaning
- MQTT Integration: Publishes all data using Home Assistant MQTT Discovery format
- Web Interface: Built-in configuration UI for easy setup
- Autonomous Operation: Works independently without a smart home server
β¨ Key Features
- β ESP32-based: Powerful microcontroller with WiFi connectivity
- β MQTT Discovery: Automatic integration with Home Assistant
- β Web UI: Easy configuration via browser
- β Active-Low Relays: Safe default state (relays OFF during boot)
- β Separate GPIO per Sensor: Independent fault detection
- β Offline Operation: Continues working without WiFi
- β Open Source: MIT License, free to use and modify
π§ Quick Links
Getting Started
- Build from Zero - Complete build guide
- Electrical Safety - Important safety information
- Production Checklist - Pre-deployment verification
- Security Checklist - Security best practices
Hardware
- Hardware Guide - Components, wiring and status LED
- ESP32 Wiring Schematic - Complete connection guide
- NORVI AE01-R - Industrial DIN-rail variant
- Olimex ESP32-C6-EVB - Variant with TFT display and rotary encoder
- Contactor Guide - Switching pumps safely
- Bill of Materials - Complete parts list
Firmware
- Software Guide - Building and flashing the firmware
- User’s Guide - Configuration via web interface
- MQTT Configuration - Broker setup and topics
- OTA Updates - Firmware updates over the air
Advanced
- Safety Model - Safety architecture
- Temperature-Based Circulation - Adaptive filter runtime
- Troubleshooting Matrix - Common issues and solutions
π§ Hardware Requirements
Minimum Setup
| Component | Purpose | Approx. Cost |
|---|---|---|
| ESP32 DevKit V1 | Main controller | 8-12 β¬ |
| 2-Channel Relay Module | Pump control | 4-6 β¬ |
| 2Γ DS18B20 Sensors | Temperature measurement | 6-10 β¬ |
| 4.7kΞ© Resistors (2x) | Pull-up resistors | < 1 β¬ |
| Breadboard + Wires | Prototyping | 3-8 β¬ |
| Total | ~35β55 β¬ (see BOM) |
Production Setup
| Component | Purpose | Approx. Cost |
|---|---|---|
| NORVI AE01-R | Industrial ESP32 | 25-30 β¬ |
| IP65 Enclosure | Weather protection | 10-15 β¬ |
| DIN Rail Components | Professional mounting | 15-20 β¬ |
| Total | ~75 β¬ |
π Pin Configuration
Default pins of the ESP32 DevKit build (esp32dev). The NORVI AE01-R and Olimex ESP32-C6-EVB
builds use their own pin maps, see src/Config.hpp and the board pages linked above.
| Function | ESP32 Pin | Notes |
|---|---|---|
| Solar Sensor (DS18B20) | GPIO32 | OneWire data |
| Pool Sensor (DS18B20) | GPIO33 | OneWire data |
| Heating Pump Relay | GPIO26 | Active-low |
| Filter Pump Relay | GPIO25 | Active-low |
| Relay Module VCC | 5V (VIN) | NOT 3.3V! |
| Relay Module GND | GND | Common ground |
| Sensor VDD | 3.3V | Power for sensors |
| Sensor GND | GND | Ground for sensors |
β οΈ Important: Each DS18B20 data line requires a 4.7kΞ© pull-up resistor to 3.3V.
π Next Steps
- Start Here - Choose your path based on your goals
- Quick Start - Fastest way to get running (60 minutes)
- Build Guide - Comprehensive build guide
- Home Assistant Integration - Smart home integration
π¬ Need Help?
- Check the Troubleshooting page
- Visit the Pool Controller Repository
- Open an Issue for bugs or feature requests
Last updated on