ARVO Kelvin v4.0
Adaptive PID-Kühlanlage für High-End-Aquarien. ESP32-S3 gesteuert, MOSFET-geschützt, Home Assistant nativ, 3× Noctua NF-A14 PWM. Präzise Temperaturregelung durch Verdunstungskühlung — leise, vorausschauend, intelligent.
Signalfluss
01 Kernkomponenten
02 Architektur
Stern-Masse-Topologie
Alle GND-Pfade treffen sich an einem Punkt — Klemme KL-1 (JOYELEC D1-5). 6 Adern: ESP32 GND, MAX31865 GND, OLED GND, N40-GND, 12V-GND, PT1000-Schirm. Verhindert Masseschleifen für saubere Sensormessung.
Stromversorgung (v4.0)
Meshnology N40 Breakout-Board hat einen integrierten Switching-Regulator (12V→5V). Der separate LM2596S entfällt. ESP32-S3 internes LDO erzeugt 3.3V. Verteilt via Klemme KL-2 (JOYELEC D1-2) an MAX31865 VIN und OLED VCC.
MOSFET-Schutz (v4.0)
IRLZ44N Logic-Level N-Channel MOSFET auf der Noctua PWM-Leitung (Pin 4). Schützt den ESP32-S3 vor 5V-Backfeed durch die internen 10kΩ Pull-Ups der Noctua-Lüfter nach +12V. PWM-Signal ist invertiert (ESPHome-Config berücksichtigt das).
03 Pin-Belegung
| GPIO | Funktion | Ziel | Protokoll | Bus |
|---|---|---|---|---|
GPIO12 | SPI CLK | MAX31865 CLK | SPI (HSPI IOMUX) | ● |
GPIO11 | SPI MOSI | MAX31865 SDI | SPI (HSPI IOMUX) | ● |
GPIO13 | SPI MISO | MAX31865 SDO | SPI (HSPI IOMUX) | ● |
GPIO10 | SPI CS | MAX31865 CS | SPI (HSPI IOMUX) | ● |
GPIO5 | PWM 25kHz | → IRLZ44N Gate → Noctua Pin 4 | LEDC (inverted!) | — |
GPIO6 | Tach Input | Master-Fan Pin 3 | PCNT | — |
GPIO17 | I2C SDA | OLED SDA | I2C (GPIO Matrix) | ● |
GPIO18 | I2C SCL | OLED SCL | I2C (GPIO Matrix) | ● |
5V | Stromeingang | ← N40 Switching-Regulator | Power | — |
3.3V | Stromausgang | → KL-2 Verteiler (Header-Pins!) | Power | — |
GND | Masse | → KL-1 Stern-GND | Power | — |
04 Stromversorgung
05 Elektrische Spezifikationen
| Parameter | Wert | Einheit | Bedingung |
|---|---|---|---|
| Spannungen | |||
| Netzspannung | 230 | V AC | Youngine Eingang |
| Systemspannung | 12 | V DC | Hauptbus |
| ESP32 Versorgung | 5.0 | V DC | N40 Switching-Regulator |
| Logikpegel | 3.3 | V | ESP32 LDO |
| Prozessor | |||
| CPU Taktfrequenz | 240 | MHz | Xtensa Dual-Core (ESP32-S3) |
| Flash Speicher | 8 | MB | In-Package |
| PSRAM | 8 | MB | OPI (Octal SPI) |
| Lüfter | |||
| Lüfter Stromaufnahme | 3 × 0.13 | A | 12V, 100% PWM |
| Gesamtleistung Lüfter | 4.68 | W | 3× NF-A14 |
| PWM Frequenz | 25 | kHz | Noctua-Spezifikation |
| Tach-Signal | 2 | Pulse/U | Open Collector (PCNT) |
| Lautstärke (Komfort) | ≤37 | dB | ≤50% PWM, 2m Abstand |
| PID-Limit Empfehlung | 50–60 | % | Dauerbetrieb max. |
| Sensorik | |||
| Temperatur-Genauigkeit | ±0.15 | °C | PT1000 Klasse A |
| Referenzwiderstand | 4300 | Ω | Adafruit MAX31865 |
| Sensor Update-Rate | 5 | s | ESPHome-Default |
06 Build Guide — Übersicht
HAKKO Temperatur-Presets
| Preset | Temperatur | Einsatz | Spitze |
|---|---|---|---|
P1 | 330°C | Keramik-Kondensatoren (max 3s!) | T18-D12 (1.2mm) |
P2 | 350°C | Standard — Header, ESP32, OLED, Drähte | T18-D12 / D24 |
P3 | 370°C | Dicke Kabel, GX12-Cups | T18-D24 (2.4mm) |
P4 | 380°C | Elko C2 — kurz und heiß, max 3s | T18-D12 |
P5 | RESERVE — Klemmen ersetzen Sternpunkte | — |
06a Phase A — GX12 Y-Kabel
~20 Lötstellen P3 370°C
GX12-Cups und Noctua-Kabelenden verlöten. Verbindungstyp: Cup-to-Strand (CTS). Spitze: T18-D24 (2.4mm Meißel).
| ID | Lötstelle | Beschreibung |
|---|---|---|
A-01…A-04 | GX12 Stecker (Plug) | 4 Cups × 4 Adern |
A-05…A-08 | GX12 Buchse (Socket) | 4 Cups × 4 Adern |
A-09…A-20 | Noctua-Kabelenden | 3 Fans × 4 Adern = 12 Verbindungen |
| Entfallen | Ancable Splitter übernimmt |
06b Phase B — MAX31865 Bestückung
~12 Lötstellen P1/P2/P4
| ID | Bauteil | Preset | Hinweis |
|---|---|---|---|
B-01…B-02 | C1 — 100nF Keramik (VIN) | P1 (330°C) | Max 3s Kontakt! |
B-03…B-04 | C2 — 10µF Elko (VIN) | P4 (380°C) | Kurz und heiß, max 3s |
B-05…B-06 | C3 — 100nF Keramik (VOUT) | P1 (330°C) | Max 3s Kontakt! |
B-07…B-08 | C4 — 1nF Keramik (RTD+) | P1 (330°C) | Differenzfilter |
B-09…B-10 | C5 — 1nF Keramik (RTD-) | P1 (330°C) | Differenzfilter |
B-11…B-12 | PT1000 Kabel | P2 (350°C) | RTD+ / RTD- Pads |
06c Phase C — ESP32-S3 Integration
~15 Lötstellen + 2 Klemmen P2 350°C
| ID | Verbindung | Beschreibung |
|---|---|---|
C1-01…06 | SPI + Power (Dupont) | 6× Dupont auf N8R8 Header-Pins (nicht KF-Klemmen!) |
C2-01…02 | I2C-Bus (Dupont) | SDA (GPIO17), SCL (GPIO18) → OLED |
C3-01 | PWM-Signal | GPIO5 → IRLZ44N Gate → Noctua Pin 4 (Drain) |
C3-02 | Tach-Signal | GPIO6 ← Master-Fan Pin 3 (direkt, PCNT) |
C4-xx | MOSFET-Verdrahtung | IRLZ44N: Gate←GPIO5, Source←GND, Drain→Noctua Pin 4 |
C5-xx | 12V-Eingang | N40 VIN (über KF-Klemmen) |
Klemmen-Montage
| Klemme | Typ | Adern | Funktion |
|---|---|---|---|
| KL-1 | JOYELEC D1-5 | 6 Adern | Stern-GND (ESP32, MAX, OLED, N40, 12V, PT1000-Schirm) |
| KL-2 | JOYELEC D1-2 | 3 Adern | 3.3V-Verteiler (ESP32 → MAX31865 VIN + OLED VCC) |
06d Klemmen-Prüfpunkte
Phase-C-Gate — alle 6 Punkte müssen bestanden sein bevor weitergearbeitet wird.
- KL-01: Klemme KL-1 Sichtprüfung — alle 6 Adern bis Anschlag eingesteckt
- KL-02: Klemme KL-2 Sichtprüfung — alle 3 Adern bis Anschlag eingesteckt
- KL-03: Zugtest beide Klemmen — leicht ziehen, nichts löst sich
- KL-04: Stern-GND Durchgang — jede Ader gegen jede, alle < 0.5Ω
- KL-05: 3.3V-Verteiler Durchgang — jede Ader gegen jede
- KL-06: Kurzschluss-Check 3.3V↔GND — muss ∞ sein
07 ESPHome-Konfiguration
Bus-Konfiguration
spi:
clk_pin: GPIO12 # HSPI IOMUX
mosi_pin: GPIO11 # HSPI IOMUX
miso_pin: GPIO13 # HSPI IOMUX
i2c:
sda: GPIO17 # GPIO Matrix
scl: GPIO18 # GPIO Matrix
scan: true
08 PID-Regelung
Der PID-Regler berechnet alle 5 Sekunden die optimale Lüfterleistung. Der Output (0–100%) steuert den PWM-Duty-Cycle über den IRLZ44N MOSFET (Signal invertiert). Integral-Clamp ±20 verhindert Windup. Deadband entfernt — Lüfter laufen immer minimal.
Auto-Tune ist im letzten Build-Schritt verfügbar und passt Kp/Ki/Kd automatisch an die realen Bedingungen des Aquariums an.
09 Home Assistant Entities
| Entity | Typ | Funktion |
|---|---|---|
sensor.aquarium_temperatur | Sensor | Wassertemperatur °C (Median, Clamp 15–40°C) |
sensor.luefter_drehzahl | Sensor | RPM Master-Fan (Moving Average, 10 Werte) |
fan.luefter_geschwindigkeit | Fan | Lüfter ein/aus + Speed-Control |
climate.aquarium_kuehlung | Climate | PID-Thermostat (Ziel: 25°C, Range 20–30°C) |
number.luefter_max_geschwindigkeit | Number | Max-Speed 0–100% (Schritt 5%) |
switch.nachtmodus | Switch | Begrenzt Max-Speed auf 40% |
binary_sensor.luefter_ausfall | Binary | Alarm: Speed >10% aber RPM <100 für >30s |
OLED-Display
SH1106 128×64, I2C. Zeigt live: Produktname, Temperatur, Lüfter-%, RPM, und Status ("Kühlt" / "Standby").
Sonderfunktionen
Nachtmodus: Template-Switch der max_fan_speed auf 40% begrenzt. Lüfter laufen leiser, PID regelt innerhalb des reduzierten Bereichs.
Lüfterausfall-Erkennung: Wenn Fan-Speed > 10% aber RPM < 100 für mehr als 30 Sekunden → binary_sensor schaltet auf "Problem". Triggert HA-Notification.
10 Sicherheitsregeln
reference_resistance: 4300 — NICHT 430! Adafruit-Board hat 4300Ω.
11 Gehäuse
Durchführungen: 2× PG7 (Netzteilkabel + PT1000-Kabel), 1× GX12 Panel-Mount (Lüfter). O-Ring-Dichtung im Deckel. Silikagel-Beutel im Innenraum gegen Feuchtigkeit.
12 Aktueller Status
13 Material-Kalkulation
Nur aktuell verbaute und verwendete Komponenten. Werkzeug, Prototyping-Material und defekte Teile sind nicht enthalten.
Kernkomponenten
| # | Komponente | Stückpreis | Anmerkung |
|---|---|---|---|
| 1 | Waveshare ESP32-S3-Zero | 11,95 € | |
| 2 | Meshnology N40 Breakout | 10,50 € | |
| 3 | Adafruit MAX31865 (2×) | 26,96 € | |
| 4 | iOVEO PT1000 Klasse A | 15,00 € | |
| 5 | Noctua NF-A14 PWM (3×) | 90,00 € | 3 × 30 € |
| 6 | IRLZ44N MOSFET | 0,50 € | |
| 7 | MeanWell LRS-50-12 Netzteil | 26,99 € | |
| 8 | Gehäuse (3D-Druck + Zubehör) | 43,00 € |
Steckverbinder
| # | Komponente | Stückpreis | Anmerkung |
|---|---|---|---|
| 9 | GX12-4 Steckverbinder-Set | 3,00 € | |
| 10 | JST-XH Stecker/Buchsen | 3,00 € |
Verkabelung
| # | Komponente | Stückpreis | Anmerkung |
|---|---|---|---|
| 11 | 4-adriges Kabel (geschirmt) | 4,00 € | |
| 12 | PWM-Splitter Y-Kabel | 2,99 € | |
| 13 | Aderendhülsen-Set | 1,00 € |
Verbrauchsmaterial
| # | Komponente | Stückpreis | Anmerkung |
|---|---|---|---|
| 14 | Schrauben-Set M2/M3 | 1,00 € | |
| 15 | Keramik-Kondensatoren | 0,30 € | |
| 16 | Elko-Kondensatoren | 0,30 € | |
| 17 | Widerstände (diverse) | 0,20 € | |
| 18 | Schrumpfschlauch-Set | 0,20 € | |
| 19 | Lötzinn | 1,00 € | |
| 20 | Kabelbinder | 1,00 € | |
| 21 | Kabel + Stecker (diverse) | 10,00 € |