Skip to content

Repair-Lab/playstation-fan-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Temperaturgesteuerte Lüftersteuerung mit DHT11 & Web-Interface

🎮 Speziell entwickelt für PlayStation-Lüfter - Optimale Kühlung für Gaming-Sessions!

🌟 Features

  • Automatische Temperatursteuerung mit DHT11-Sensor
  • Web-Interface für Fernsteuerung und Überwachung
  • WLAN-Anbindung oder Access Point Modus
  • Einstellungen speichern im EEPROM
  • Manueller Modus für direkte Lüftersteuerung
  • 🚨 Manueller Fehlermodus - Button für Notfall-100%-Betrieb
  • Responsive Design für Smartphone und Desktop
  • 🚨 Sensor-Ausfallsicherung: Lüfter auf 100% bei DHT11-Defekt

🛠️ Teileliste (flexibel, nichts Exotisches)

  • ESP32-WROOM-32 DevKit
  • DHT11 + 10 kΩ Pull-up von DATA → 3,3 V
  • N-MOSFET (2N7002 oder BSS138) oder NPN (2N2222/BC337) als Open-Drain-Treiber
  • Widerstände: 100 Ω in Serie am Gate/Basis, 100 kΩ Gate-Pulldown, 10 kΩ Pull-up von PWM → 5 V
  • Netzteil 12 V ≥ 3 A für den Lüfter, 100 µF Puffer an 12 V
  • Kabel, Breadboard/Lochraster, optional 2 A-Sicherung in Serie zum Lüfter-+12 V

Hardware-Anschlüsse

🔌 Verkabelung (Kurzfassung)

DHT11 Sensor:

  • VCC → 3.3 V
  • GND → GND
  • DATA → GPIO2 (+ 10 kΩ Pull-up auf 3.3 V)

Lüfter (12V PWM):

  • Braun → +12 V
  • Schwarz → GND
  • Grau → PWM (über MOSFET)

PWM-Level-Shift:

  • ESP32-GPIO18 → 100 Ω → Gate (MOSFET) → Drain an grau
  • Source an GND
  • 10 kΩ Pull-up von PWM → 5 V

Gemeinsame Masse:

  • GND von ESP32, 12 V-Netzteil und Lüfter verbinden

🔧 Detaillierte Schaltung

ESP32-GPIO18 ──[100Ω]──┬── Gate (MOSFET 2N7002)
                        │
                        └──[100kΩ]── GND (Gate-Pulldown)

MOSFET Drain ── Lüfter PWM (grau)
MOSFET Source ── GND

Lüfter PWM ──[10kΩ]── +5V (Pull-up für definierte Pegel)

DHT11 DATA ──[10kΩ]── +3.3V (Pull-up)

🔧 WLAN-Konfiguration

Bearbeiten Sie die Datei src/config.h:

const char* WIFI_SSID = "Ihr_WLAN_Name";           // Ihr WLAN-Netzwerkname
const char* WIFI_PASSWORD = "Ihr_WLAN_Passwort";   // Ihr WLAN-Passwort

Fallback: Access Point Modus

Falls die WLAN-Verbindung fehlschlägt, startet der ESP32 automatisch einen Access Point:

  • SSID: Lueftersteuerung
  • Passwort: 12345678
  • IP-Adresse: 192.168.4.1

🌐 Web-Interface

Zugriff

  1. WLAN-Modus: http://[ESP32-IP-Adresse]
  2. Access Point: http://192.168.4.1

Funktionen

  • 📊 Live-Daten: Temperatur, Luftfeuchtigkeit, Lüfterstatus
  • ⚙️ Einstellungen: Temperatur-Schwellenwerte anpassen
  • 🎛️ Manuelle Steuerung: Direkter PWM-Slider
  • 🤖 Automatik/Manuell: Zwischen Modi wechseln
  • 💾 Speichern: Einstellungen im EEPROM
  • 🚨 Notfall-Steuerung: Manueller Fehlermodus ein/aus

Konfiguration

Standard-Temperaturwerte (über Web-Interface änderbar)

#define DEFAULT_TEMP_MIN 22.0     // Unterhalb: Lüfter aus
#define DEFAULT_TEMP_MAX 30.0     // Oberhalb: Lüfter Maximum  
#define DEFAULT_TEMP_HYSTERESE 1.0 // Vermeidet Schwankungen

PWM-Geschwindigkeiten (ESP32: 0-255)

#define PWM_MIN 0         // Aus (0%)
#define PWM_LOW 80        // Niedrig (~31%)
#define PWM_MED 150       // Mittel (~59%) 
#define PWM_HIGH 220      // Hoch (~86%)
#define PWM_MAX 255       // Maximum (100%)

Arduino-Konfiguration (ESP32)

// PWM-Setup für Lüftersteuerung
ledcSetup(0, 25000, 8);        // Kanal 0, 25 kHz, 8-bit (0-255)
ledcAttachPin(18, 0);          // GPIO18 an PWM-Kanal 0

// DHT11-Setup
DHT dht(2, DHT11);             // GPIO2, DHT11-Typ

Funktionsweise

  1. Temperaturmessung: DHT11 misst alle 2 Sekunden
  2. Lüftersteuerung:
    • < 22°C: Lüfter AUS
    • 22-30°C: Proportionale Steuerung (31-100%)
    • 30°C: Lüfter Maximum

  3. Hysterese: Verhindert ständiges Ein/Ausschalten
  4. 🚨 Sicherheitsmodus: Bei DHT11-Ausfall → Lüfter auf 100%
  5. Serial Monitor: Zeigt aktuelle Werte an

Sensor-Ausfallsicherung

  • Erkennung: 5 aufeinanderfolgende Lesefehler oder 10s ohne gültige Messung
  • Reaktion: Lüfter automatisch auf 100% (Notmodus)
  • Anzeige: Rote Fehlermeldung im Web-Interface + Serial Monitor
  • Wiederherstellung: Automatisch bei erneutem Sensor-Kontakt

Installation

  1. WLAN konfigurieren: src/config.h anpassen
  2. PlatformIO: Projekt kompilieren mit pio run
  3. Upload: pio run --target upload
  4. Serial Monitor: pio device monitor (zum Debugging)
  5. Web-Interface: Im Browser öffnen

📱 Screenshots Web-Interface

Das Web-Interface zeigt:

  • Aktuelle Werte in Echtzeit (Temperatur, Luftfeuchtigkeit, Lüfterstatus)
  • Einstellungen für Temperatur-Schwellenwerte
  • Manuelle Steuerung mit PWM-Slider
  • Responsive Design für alle Geräte

🔧 API Endpunkte

  • GET / - Web-Interface
  • GET /data - JSON mit aktuellen Sensordaten
  • GET /settings - JSON mit aktuellen Einstellungen
  • POST /settings - Einstellungen speichern
  • POST /mode - Steuerungsmodus ändern
  • POST /emergency - Manuellen Fehlermodus ein/ausschalten

Serial Monitor Output

=== Temperaturgesteuerte Lüftersteuerung mit Web-Interface ===
WLAN verbunden!
IP-Adresse: 192.168.1.100
Web-Interface: http://192.168.1.100
=== System bereit! ===
Temperatur | Luftfeucht. | PWM | Geschw. | Modus
-----------------------------------------------------  
24.2°C     | 65.0%      | 95  | 37% NIEDRIG | AUTO
26.5°C     | 62.3%      | 156 | 61% MITTEL  | AUTO
DHT11 Lesefehler #1
DHT11 Lesefehler #5
⚠️  SENSOR-FEHLER: DHT11 ausgefallen! Lüfter auf 100% (Notmodus)
FEHLER     | FEHLER     | 255 | 100% FEHLER-MODUS | SENSOR-FEHLER!
✅ DHT11 Sensor wieder funktionsfähig - Normalbetrieb
25.1°C     | 63.2%      | 120 | 47% NIEDRIG | AUTO

🚀 Erweiterte Features

  • EEPROM-Speicherung: Einstellungen überleben Neustarts
  • Hysterese-Funktion: Verhindert Lüfter-Flackern
  • Proportionale Steuerung: Sanfte Geschwindigkeitsanpassung
  • Fehlerbehandlung: Robuste Sensor-Auslesung
  • Mobile-First: Optimiert für Smartphone-Nutzung
  • 🚨 Ausfallsicherheit: Lüfter auf 100% bei Sensor-Defekt
  • Automatische Wiederherstellung: Bei Sensor-Reparatur
  • Visual Feedback: Blinkende Fehleranzeige im Web-Interface

About

🎮 ESP32-basierte Temperatursteuerung für PlayStation 3 Slim Lüfter (Nidec G80E12NS1ZN-56J14)

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published