2nd Gen Arduino Hot Water Solar Collector Controller
A second-generation Arduino solar hot water controller using DS18B20 sensors, relay-based pump control, and an Ethernet Shield for remote monitoring and data lo
👤AUTHOR
Debe
A DIY maker passionate about renewable energy, automation, and open-source hardware.
This project reflects hands-on experimentation, iterative improvement, and real-world solar-thermal system optimization.
🔗 Original Project: https://www.instructables.com/2nd-Gen-Arduino-Hot-Water-Solar-Collector-Controll/
📌 BACKGROUND & MOTIVATION
After decades of operating this large solar thermal system, the creator understood its biggest challenge: accurate temperature measurement at many points and intelligent pump coordination.
Existing Arduino solar controllers were simple and functional, but lacked:
- IoT monitoring
- multi-sensor compatibility
- advanced pump logic
- web-based control
- high-temperature sensor support
- freeze and overheat safety automation
A modernized controller needed to handle PT1000 RTDs, legacy 10k thermistors, and DS18B20 digital sensors—because the system contained a mix of old and new hardware.
The system also requires control of three separate pump circuits:
- Collector pump (Panel → Storage)
- Domestic hot water extraction pump
- Home heating extraction pump
To upgrade this complex infrastructure, the author defined clear goals:
Required Inputs
- Read PT1000 RTD sensors inside solar panels
- Read 10k thermistors already installed in the tanks
- Read DS18B20 digital sensors for general temperature points
- Allow any sensor to be assigned to any function
Required Outputs & Logic
- Control DHW extraction pump
- Control home heating pump
- Freeze protection & maximum temperature shutoff
- LCD-based UI
- Manual override buttons
- Two-stage lead/lag pump logic for higher solar efficiency
- Publish temperatures & pump status via Ethernet
- Provide full pump control via the webpage
This second-generation controller now achieves nearly all of these goals and operates reliably.
🎯PROJECT DESCRIPTION
This project implements a second-generation Arduino-based solar hot water controller, designed to automatically manage heat collection, temperature sensing, pump activation, data display, and system safety.
It improves upon the first-generation model by adding:
- Measure collector & tank temperatures
- Decide when to run the circulation pump
- Display data on LCD
- Store settings in EEPROM
- Send operating status to a remote dashboard via Ethernet
The Ethernet Shield makes the system significantly more powerful, enabling:
- Home network integration
- Browser-based viewing of system temperature
- Remote pump status monitoring
- Data recording for system optimization
The controller monitors temperature differences between the solar collector and the water storage tank, then activates the circulation pump when heat gain is optimal—maximizing efficiency and preventing overheating or heat loss.
🧩COMPONENTS
🧠 Hardware
- Arduino UNO / Nano
- Arduino Ethernet Shield (W5100 or W5500-based)
- Temperature sensors (Collector + Tank)
- PT1000 RTD (high-temp solar panels)
- 10k thermistors (legacy storage tank sensors)
- DS18B20 digital sensors
- Relay or SSR for pump control
- 20x4 LCD (I²C optional)
- EEPROM (built-in)
- Manual switches / LEDs
- Outdoor-rated wiring and enclosure
🧰 SYSTEM OVERVIEW
Solar Collector Temp ----┐
│
Tank Temp Sensor --------┼--> Arduino Controller
│ │
│ │
Relay Output │ ---> Pump ON/OFF
│
LCD Display │ ---> Status UI
│
Ethernet │ ---> Web Monitoring
ShieldArduino handles control logic, while the Ethernet Shield hosts a simple web interface that:
- Displays all temperatures
- Shows pump statuses
- Allows remote pump activation/deactivation
✔ KEY FEATURES
🔹 Smart Pump Control
- Calculates ΔT (collector–tank difference)
- Activates pump only when energy gain is positive
- Prevents reverse heat flow at night
🔹 Ethernet-Based Monitoring
With the Ethernet Shield, users can:
- View temperatures via web browser
- Check pump status remotely
- Use tools like Excel, Home Assistant, or Grafana for tracking
- Log data for system maintenance and optimization
n
🔹 Clear Local UI
LCD shows:
- Collector temperature
- Tank temperature
- Pump status
- System mode (Auto/Manual)
- Useful for maintenance and direct local control.
🔹 Improved Energy Efficiency
The second-generation design reduces standby loss and optimizes solar gain.
🧪USE CASES
- Residential solar water heating
- Off-grid home automation
- Renewable energy experimentation
- IoT-enabled home energy management
- Long-term performance monitoring
- Thermal system optimization
🧠 ENGINEERING INSIGHTS
- The use of DS18B20 sensors enables stable, waterproof temperature measurement.
- Ethernet Shield integration simplifies IoT functionality without needing Wi-Fi modules.
- Browser-based dashboard enables real-time visualization of solar heat collection efficiency.
- EEPROM-based configuration ensures persistent user settings.
- Relay isolation enhances safety for pump control.
If upgraded with W5500, reliability and network performance improve further.
👤AUTHOR
Debe
재생 에너지, 자동화, 오픈 소스 하드웨어에 열정을 가진 DIY 제작자. 이 프로젝트는 현장 실험, 반복적인 개선, 그리고 실제 태양열 시스템 최적화를 반영합니다
🔗원본 프로젝트: https://www.instructables.com/2nd-Gen-Arduino-Hot-Water-Solar-Collector-Controll/
📌 배경 및 동기
수십 년간 대형 태양열 시스템을 운영하면서, 제작자는 가장 큰 어려움이 많은 지점의 정확한 온도 측정과 지능적인 펌프 조정이라는 것을 알게 되었습니다.
기존의 Arduino 태양광 컨트롤러는 간단하고 기능적이었지만, 다음과 같은 기능이 부족했습니다:
- IoT 모니터링
- 다중 센서 호환성
- 고급 펌프 로직
- 웹 기반 제어
- 고온 센서 지원
- 동파 및 과열 안전 자동화
현대화된 컨트롤러는 PT1000 RTD, 기존의 10k 서미스터, 그리고 DS18B20 디지털 센서를 처리해야 했습니다. 왜냐하면 시스템에 기존 및 신규 하드웨어가 혼재되어 있었기 때문입니다.
또한, 이 시스템은 세 가지 개별 펌프 회로를 제어해야 합니다:
- 집열기 펌프 (패널 → 저장소)
- 가장 중요한 부분입니다. 이 컨트롤러는 단순히 태양열 패널의 온도가 저장 탱크보다 높다고 펌프를 켜는 데 그치지 않습니다. **온도차(Delta T)**에 따라 물의 흐름을 2단계로 조절합니다. 온도차가 클 때는 '선행(lead) 펌프'와 '후행(lag) 펌프'를 모두 사용하여 물의 유량을 늘리고, 온도차가 줄어들면 유량을 줄여 시스템이 태양열을 더욱 효율적으로 모을 수 있도록 합니다.
- 생활 온수 추출 펌프
- 저장된 열을 생활 온수 공급을 위해 추출하는 펌프를 제어합니다.
- 가정 난방 추출 펌프
- 집안 난방을 위해 저장된 열을 추출하는 펌프를 제어합니다.
이 모든 제어는 Arduino Uno 보드와 relay shield, 그리고 LM335 온도 센서 4개를 통해 이루어집니다.
🎯PROJECT DESCRIPTION
이 프로젝트는 2세대 Arduino 기반 태양열 온수 컨트롤러를 구현합니다. 이는 열 수집, 온도 감지, 펌프 활성화, 데이터 표시 및 시스템 안전을 자동으로 관리하도록 설계되었습니다.
이는 1세대 모델을 다음과 같이 개선했습니다:
- 집열기 및 탱크 온도 측정
- 순환 펌프를 작동할 시점 결정
- LCD에 데이터 표시
- EEPROM에 설정 저장
- 이더넷을 통해 원격 대시보드에 작동 상태 전송
Ethernet Shield는 시스템을 훨씬 강력하게 만들어 다음과 같은 기능을 가능하게 합니다:
- 홈 네트워크 통합
- 브라우저 기반 시스템 온도 확인
- 원격 펌프 상태 모니터링
- 시스템 최적화를 위한 데이터 기록
컨트롤러는 태양열 집열기와 물 저장 탱크 간의 온도 차이를 모니터링하고, 열 획득이 최적일 때 순환 펌프를 활성화합니다. 이를 통해 효율성을 극대화하고 과열 또는 열 손실을 방지합니다.
🧩COMPONENTS
🧠 Hardware
Arduino UNO / Nano
- Arduino 이더넷 쉴드 (W5100 또는 W5500 기반)
- 온도 센서 (집열기 + 탱크)
- PT1000 RTD (고온 태양열 패널용)
- 10k 서미스터 (기존 저장 탱크 센서용)
- DS18B20 디지털 센서
- 펌프 제어를 위한 릴레이 또는 SSR (Solid State Relay)
- 20x4 LCD (I²C 옵션)
- EEPROM (내장)
- 수동 스위치 / LED
- 실외 등급 배선 및 인클로저
🧰 SYSTEM OVERVIEW
Solar Collector Temp ----┐
│
Tank Temp Sensor --------┼--> Arduino Controller
│ │
│ │
Relay Output │ ---> Pump ON/OFF
│
LCD Display │ ---> Status UI
│
Ethernet │ ---> Web Monitoring
ShieldArduino는 제어 로직을 처리하며, 이더넷 쉴드는 다음을 수행하는 간단한 웹 인터페이스를 호스팅합니다:
- 모든 온도 표시
- 펌프 상태 표시
- 원격 펌프 활성화/비활성화 허용
✔ KEY FEATURES
🔹 Smart Pump Control
- ΔT (집열기 – 탱크 온도 차이) 계산
- 에너지 획득이 양수일 때만 펌프 활성화
- 밤에 역방향 열 흐름 방지
🔹 Ethernet-Based Monitoring
이더넷 쉴드를 통해 사용자는 다음을 수행할 수 있습니다:
- 웹 브라우저를 통해 온도 확인
- 원격으로 펌프 상태 확인
- 추적을 위해 Excel, Home Assistant 또는 Grafana와 같은 도구 사용
- 시스템 유지 보수 및 최적화를 위한 데이터 로깅
n
🔹 Clear Local UI
LCD는 다음을 보여줍니다:
- 집열기 온도
- 탱크 온도
- 펌프 상태
- 시스템 모드 (자동/수동) 유지 보수 및 직접적인 로컬 제어에 유용합니다.
🔹 Improved Energy Efficiency
2세대 설계는 대기 손실을 줄이고 태양열 획득을 최적화합니다.s
🧠 ENGINEERING INSIGHTS
- DS18B20 센서 사용은 안정적이고 방수되는 온도 측정을 가능하게 합니다.
- 이더넷 쉴드 통합은 Wi-Fi 모듈 없이 IoT 기능을 단순화합니다.
- 브라우저 기반 대시보드는 태양열 집열 효율의 실시간 시각화를 가능하게 합니다.
- EEPROM 기반 구성은 영구적인 사용자 설정을 보장합니다.
- 릴레이 격리는 펌프 제어의 안전성을 향상시킵니다
W5500으로 업그레이드하면 신뢰성과 네트워크 성능이 더욱 향상됩니다.
