Files
Heizung/VERKABELUNG_TODO.txt
T
2026-04-15 17:05:07 +02:00

251 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
================================================================================
HEIZUNGSSTEUERUNG – VERKABELUNG & AUFBAU TODO
================================================================================
HARDWARE-ÜBERSICHT
------------------
- Arduino Mega 2560
- Raspberry Pi (beliebiges Modell mit USB)
- 8-fach Relaismodul (ActiveLow, 5 V Steuerung)
- 5x DS18B20 Temperatursensor (OneWire, wasserfest)
- 1x MAX6675 Thermoelement-Modul (Abgastemperatur, Typ K)
- 1x RTC DS3231 (Echtzeituhr, I2C)
- 1x LCD Display 16x2 (HD44780, parallel)
- 1x OLED Display 128x64 (SSD1306, I2C) ← aktuell im Code vorhanden aber noch nicht genutzt
- 1x 4,7 kΩ Widerstand (Pullup für OneWire-Bus)
- Stromversorgung 5 V / mind. 2 A für Arduino + Relais
================================================================================
1. STROMVERSORGUNG
================================================================================
[ ] Arduino Mega über USB (vom Raspi) ODER extern 7-12V an Barrel-Jack
WICHTIG: Wenn Relaismodul separat versorgt wird → GND verbinden!
[ ] Relaismodul:
- VCC → 5 V Arduino (oder externe 5-V-Quelle bei großem Modul)
- GND → GND Arduino
- Eingangsseite (IN1-IN8) → Arduino-Pins direkt (5V-kompatibel)
[ ] Raspberry Pi separat mit offiziellen 5 V Netzteil versorgen
(NICHT über Arduino USB-Port – zu schwach)
================================================================================
2. RELAIS-MODUL → ARDUINO MEGA
================================================================================
Relais-Modul Arduino Mega Funktion
------------------------------------------------------------
IN1 → Pin 34 Mischer MINUS (kälter drehen)
IN2 → Pin 32 Mischer PLUS (wärmer drehen)
IN3 → Pin 30 Heizkreispumpe (Mischer-Pumpe)
IN4 → Pin 28 (reserviert / ggf. defekt – prüfen!)
IN5 → Pin 26 Kesselpumpe / Pufferbefüllung
IN6 → Pin 24 (frei)
IN7 → Pin 22 (frei)
IN8 → Pin 36 (frei)
VCC → 5V
GND → GND
ACHTUNG: Relais sind ActiveLow → HIGH = AUS, LOW = EIN
Arduino setzt beim Start alle Relais auf HIGH (sicher AUS)
[ ] Mischer MINUS (IN1/Pin 34) an Mischer-Motor Klemme "ZU" / "–"
[ ] Mischer PLUS (IN2/Pin 32) an Mischer-Motor Klemme "AUF" / "+"
[ ] Heizkreispumpe (IN3/Pin 30) an Pumpe (230 V Schaltung über Relais!)
[ ] Kesselpumpe (IN5/Pin 26) an Pumpenstromkreis
!! 230-V-SICHERHEIT !!
Netzspannung NUR über die Lastseite des Relais führen (COM + NO oder NC).
Steuerseite (IN-Pins, VCC, GND) IMMER galvanisch getrennt halten.
Sicherung und FI-Schutzschalter vorschalten!
================================================================================
3. DS18B20 TEMPERATURSENSOREN (OneWire-Bus)
================================================================================
Alle 5 Sensoren hängen am selben Bus (Pin 50, Arduino Mega).
Verdrahtung je Sensor (3-Draht, gelbes Kabel = Daten):
Rotes Kabel → 5 V
Schwarzes Kabel → GND
Gelbes/weißes Kabel → OneWire-Bus (Pin 50)
[ ] 4,7 kΩ Pullup-Widerstand zwischen Pin 50 und 5 V einlöten
(einmal für den ganzen Bus, nicht pro Sensor!)
Sensor-Zuordnung (Adressen bereits im Code hinterlegt – bitte prüfen!):
[ ] wohnung – Raumtemperatur Wohnung
[ ] Kunten – Pufferspeicher UNTEN (Kessel unten)
[ ] Koben – Pufferspeicher OBEN (Kessel oben)
[ ] Vorlauf – Vorlaufrohr Heizkreis (außen am Rohr angebracht!)
[ ] Aussen – Außentemperatur (wetterfest montieren, beschatten!)
HINWEIS Vorlauf-Sensor:
Der Sensor sitzt außen am Vorlaufrohr → er reagiert mit 2-5 Minuten
Verzögerung auf Wassertemperaturänderungen. Das ist im Sketch durch
die Zonalregelung und Anlaufphase berücksichtigt.
Besser wäre ein Tauchhülsen-Sensor im Rohr – falls nachrüsten möglich.
Sensor-Adressen auslesen (falls Sensoren getauscht wurden):
→ OneWire-Scanner Sketch hochladen, Adressen aus Serial Monitor kopieren
→ Neue Adressen in heizung.ino eintragen (DeviceAddress Zeilen)
================================================================================
4. MAX6675 – ABGASTEMPERATUR (Thermoelement Typ K)
================================================================================
MAX6675 Modul Arduino Mega
------------------------------------
VCC → 5 V
GND → GND
SO (MISO) → Pin 8
CS → Pin 9
SCK → Pin 10
[ ] Thermoelement Typ K an MAX6675-Klemmen anschließen (Polarität beachten!)
[ ] Thermoelement im Abgaskanal / Rauchrohr befestigen (max. ~1200°C Typ K)
[ ] Kabel hitzebeständig verlegen (mind. 5 cm Abstand zu heißen Flächen)
================================================================================
5. RTC DS3231 – ECHTZEITUHR (I2C)
================================================================================
DS3231 Modul Arduino Mega
------------------------------------
VCC → 3,3 V oder 5 V (DS3231 ist beides kompatibel)
GND → GND
SDA → Pin 20 (SDA, Mega)
SCL → Pin 21 (SCL, Mega)
[ ] Knopfzelle (CR2032) einlegen damit Uhrzeit bei Stromausfall erhalten bleibt
[ ] Uhrzeit einmalig stellen: Zeile in setup() einkommentieren:
rtc.adjust(DateTime(2026, 3, 18, 12, 0, 0));
→ nach Upload wieder auskommentieren und neu flashen!
================================================================================
6. LCD 16x2 (HD44780, parallel)
================================================================================
LCD Pin Arduino Mega Hinweis
--------------------------------------------
VSS (1) → GND
VDD (2) → 5 V
V0 (3) → Schleifer 10kΩ Poti (Kontrast)
RS (4) → Pin 12
RW (5) → GND (immer schreiben)
EN (6) → Pin 11
D4 (11) → Pin 5
D5 (12) → Pin 4
D6 (13) → Pin 3
D7 (14) → Pin 2
A (15) → 5 V über 220 Ω (Hintergrundbeleuchtung +)
K (16) → GND (Hintergrundbeleuchtung –)
[ ] 10 kΩ Poti für Kontrast einbauen (V0)
[ ] 220 Ω Widerstand für Backlight
================================================================================
7. OLED 128x64 SSD1306 (I2C) – IM CODE VORBEREITET, NOCH NICHT GENUTZT
================================================================================
OLED Pin Arduino Mega
------------------------------------
VCC → 3,3 V
GND → GND
SDA → Pin 20 (gemeinsam mit DS3231)
SCL → Pin 21 (gemeinsam mit DS3231)
[ ] I2C-Adresse prüfen (Standard: 0x3C oder 0x3D)
Im Code: Adafruit_SSD1306 display(...) – ggf. Adresse im Konstruktor angeben
================================================================================
8. RASPBERRY PI ↔ ARDUINO VERBINDUNG
================================================================================
[ ] Arduino Mega per USB-Kabel an Raspberry Pi anschließen
(USB-B auf Arduino-Seite, USB-A auf Raspi-Seite)
[ ] Serial-Port auf Raspi prüfen:
ls /dev/ttyUSB* /dev/ttyACM*
→ typisch /dev/ttyUSB0 oder /dev/ttyACM0
[ ] Falls nötig: Benutzer zur dialout-Gruppe hinzufügen
sudo usermod -a -G dialout pi
→ danach einmal neu anmelden!
[ ] Python-Pakete installieren:
cd /pfad/zum/projekt/raspi
pip install -r requirements.txt
[ ] Serial-Port in server.py anpassen (Zeile SERIAL_PORT):
SERIAL_PORT = "/dev/ttyACM0" ← falls ttyUSB0 nicht gefunden wird
[ ] Webserver starten:
python3 server.py
→ Weboberfläche erreichbar unter http://<raspi-IP>:5000
[ ] Optional: Autostart beim Booten einrichten
sudo nano /etc/systemd/system/heizung.service
[Unit]
Description=Heizungssteuerung Webserver
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/pi/heizung/raspi/server.py
WorkingDirectory=/home/pi/heizung/raspi
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
sudo systemctl enable heizung
sudo systemctl start heizung
================================================================================
9. INBETRIEBNAHME – CHECKLISTE
================================================================================
[ ] Vor erstem Start: Sketch hochladen, Serial Monitor öffnen (9600 Baud)
→ JSON-Ausgabe sichtbar? Dann Arduino-Seite OK.
[ ] Relais-Test: Jedes Relais kurz manuell schalten (LOW), prüfen ob
Summer/LED auf Modul reagiert, BEVOR 230V angeschlossen wird!
[ ] Mischer-Test:
- Mischer manuell auf Mitte stellen
- Relais1 (Pin 34) kurz LOW → dreht in Kälter-Richtung?
- Relais2 (Pin 32) kurz LOW → dreht in Wärmer-Richtung?
- Bei verkehrter Drehrichtung: Motoranschlüsse tauschen ODER
relais1/relais2 im Sketch tauschen
[ ] Sensor-Test: Serial Monitor → alle 5 DS18B20 zeigen plausible Werte?
Typische Fehler: -127°C (nicht angeschlossen), 85°C (Initialisierungswert)
[ ] time_adjust kalibrieren:
Mischer von ganz-kalt bis ganz-warm messen → Sekunden in time_adjust eintragen
(Standard: 140 Sekunden – je nach Mischer-Motor variiert das!)
[ ] Webserver starten, Webseite öffnen → alle Werte sichtbar?
[ ] Parameter über Webseite anpassen und prüfen ob Arduino bestätigt
(JSON-Antwort: {"ok":true,...})
================================================================================
BEKANNTE EINSCHRÄNKUNGEN / MÖGLICHE VERBESSERUNGEN
================================================================================
- Vorlauf-Sensor außen am Rohr: Tauchhülsen-Sensor direkt im Wasser wäre
deutlich reaktionsschneller und genauer
- Keine Datenpersistenz auf Arduino: Einstellungen (neigung, rtsoll usw.)
gehen bei Neustart verloren → Raspi muss nach Arduino-Neustart Werte
erneut senden (oder im Sketch als Default-Werte hinterlegen)
- Relais4 (Pin 28): laut ursprünglichem Code "wahrscheinlich defekt" –
vor Verwendung prüfen!
================================================================================