Files

93 lines
6.7 KiB
Markdown
Raw Permalink 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.
# Ofensteuerung (Wemos D1 mini)
Trägerplatine 100 × 100 mm für den Ofen, gleicher Aufbau wie die Umwälzpumpen-Platine:
Wemos D1 mini auf Buchsenleisten, alle Außenanschlüsse als **Steckklemmen 5,08 mm** (Stiftleiste + abziehbarer Schraubstecker).
![Bestückung](pcb/docs_3d.png)
## Funktionen
| Klemme | Pins | Funktion | ESP |
|---|---|---|---|
| J2 NETZ 230V | PE / N / L | Netzzuleitung (vorher LS-Schalter) | – |
| J3 PUMPE | L / N / PE | Pumpe 230 V über Relais K1 (Schließer), abgesichert mit F1 T2A | D0 |
| J4 THERMOSTAT | L / Ls / N | **Externer Thermostat parallel zum Relaiskontakt**: Schließer zwischen L und Ls, schaltet die Pumpe auch ohne ESP. N für Thermostate mit Versorgung/Kontrolllampe, Thermostat ohne Zusatzverkabelung anschließbar | – |
| T1 | Drahtbrücke | Stromwandler ZMCT103C misst den Pumpenstrom, egal ob Relais oder Thermostat schaltet → ADS1115 A0-A1 | I²C |
| A3 (Modul) | Typ K | Abgastemperatur: MAX6675-Modul, Thermoelement direkt in die Klemme des Moduls am Plattenrand | D5/D6/D8 |
| J5, J6, J7 | GND / DQ / 3V3 | 3× DS18B20 am selben 1-Wire-Bus (4k7) | D4 |
| J8 KLAPPE | GND / 5V / SIG | Luftklappe: Servo **MG996R** (braun/rot/orange), 470 µF direkt an der Klemme | TX (GPIO1) |
| J9 PWM-PUMPE | GND / FB / PWM | Vorbereitung PWM-Pumpe, gleiche Stufe wie Umwälzpumpe (BC546B, 470 Ω, JP1 Pull-up) + Rückmeldung | D7, RX |
| J1 5V 3A | + / − | Versorgung 5 V, **mindestens 3 A** (MG996R zieht beim Anlaufen/Blockieren bis 2,5 A) | – |
| J10 | 5V 3V3 GND SDA SCL A0 D3 AD2 AD3 | Erweiterung (Stiftleiste 2,54) | – |
Pinbelegung jeder Klemme steht auf dem Bestückungsdruck, Pin 1 ist mit ▽ markiert.
## 230-V-Teil
- Der Netzspannungsbereich (oben links) ist auf dem Bestückungsdruck umrandet, dort gibt es keine GND-Fläche.
- Abstand 230 V ↔ Kleinspannung auf der Platine **≥ 4 mm** (eigene DRC-Regel). Ausnahme ist das Relais selbst: Spule ↔ Kontakt ≈ 3,3 mm (SRD-Bauform, Basisisolierung).
Die Kleinspannungsseite ist damit **nicht berührsicher getrennt** → Platine nur in geschlossenem Gehäuse betreiben, vor dem Öffnen Netz trennen.
Über die Fühler (Thermoelement am Abgasrohr, DS18B20 an Rohren) liegt GND in der Praxis ohnehin auf Schutzleiterpotential.
- **Stromwandler T1:** Die Pumpen-Phase läuft als isolierte Drahtbrücke (H07V-K 1,5 mm², ca. 4 cm, vorgebogen) vom Pad links durch das Loch des ZMCT103C zum Pad rechts.
Ohne diese Brücke läuft die Pumpe nicht.
- Leiterbahnen 230 V: 2 mm breit, für die Pumpe (< 1 A) reichlich. F1 = Feinsicherung 5×20 träge (T2A, je nach Pumpe auch T1A).
- **Ausfallverhalten:** ESP aus → Relais aus (10k am Basiswiderstand). Die Pumpe läuft dann nur über den Thermostat an J4.
Beim Booten/Reset zieht das Relais kurz an (D0/GPIO16 ist beim ESP8266 während des Bootens kurz high) – die Pumpe läuft dann für einen Moment, das ist harmlos.
Deshalb den Thermostat (z.B. Anlegethermostat am Ofenvorlauf, ca. 60–70 °C, Schließer) unbedingt anschließen.
## Strommessung
ZMCT103C (1000:1) mit 100 Ω Bürde: 1 A Pumpenstrom = 100 mV eff. Die Bürde liegt auf 1,65 V (Teiler 2×10k), der ADS1115 misst differenziell A0-A1 (±256 mV → bis ca. 1,8 A).
ESPHome (`ct_clamp`) rechnet daraus den Strom und meldet zusätzlich:
- **Pumpe läuft** (Strom > 30 mA)
- **Pumpe läuft über Thermostat** (Strom, aber Relais aus)
- **Pumpe Störung** (Relais an, 20 s kein Strom → Sicherung, Pumpe oder Kabel)
Watt sind nur geschätzt (keine Spannungsmessung): Strom × Faktor „Pumpe Faktor W pro A“ (Standard 115 = 230 V × cos φ 0,5). Einmal mit Shelly einmessen: Shelly-Watt ÷ „Pumpe Strom“ eintragen.
## Teile
`pcb/fab/ofensteuerung_bom.csv` enthält die Stückliste mit Fach aus deinem Inventar (`Parts_Inventory.xlsx`).
**Aus dem Inventar:** Widerstände 100/220/330/470/1k/2k2/4k7/10k (Schrank E), 100n (C-07-1), 10 µ (C-10-2), 470 µ (C-04-3), 1000 µ (C-05-3),
BC546B (B-01-4), 1N4007 (B-02-1), LEDs (B-07-5, B-08-5), Stift-/Buchsenleisten (A-07-2, A-06-5), Jumper (A-11-3), Sicherungshalter/-sicherung (B-12-2, B-11-2).
Relais: im Fach A-07-1 nachsehen, ob ein SRD-05VDC-SL-C (oder pinkompatibel: Songle SRD, HKE HRS4H, Ningbo …) dabei ist.
**Zukaufen:**
- Steckklemmen 5,08 mm, jeweils Stiftleiste abgewinkelt + Schraubstecker: **8× 3-polig, 1× 2-polig** (J2, J3, J4 sind 230 V: Phoenix MSTB 2,5 oder 2EDG mit 300 V Nennspannung)
- ZMCT103C Stromwandler (Einzelbauteil, nicht das Modul mit OPV)
- MAX6675-Modul + Thermoelement Typ K als Abgasfühler (Edelstahl-Hülse, bis ca. 600 °C)
- ADS1115-Modul (HW-ADS1115, Pinfolge VDD GND SCL SDA ADDR ALRT A0 A1 A2 A3 prüfen)
- Servo MG996R, 3× DS18B20 (wasserdicht), Wemos D1 mini
- 5-V-Netzteil ≥ 3 A (Hutschiene z.B. Mean Well HDR-30-5)
- Anlegethermostat mit Schließer
- ggf. Relais SRD-05VDC-SL-C, 2 Sicherungsclips 5×20 + T2A
Hinweise:
- MAX6675-Modul: Pinfolge GND VCC SCK CS SO ist die übliche (rote/blaue Platine). Vor dem Einlöten der Buchsenleiste am Modul prüfen.
- Wemos, ADS1115 und MAX6675 auf Buchsenleisten stecken. Der USB-Stecker des Wemos ist auf der Platine zugebaut: erstes Flashen vor dem Einstecken, danach OTA.
- Servo an **TX/GPIO1**: kein Boot-Pin, der Wemos startet unabhängig vom Servo. Beim Booten sendet TX kurz Daten, die Zuluftklappe kann dabei zucken (unkritisch). Logger ist auf `baud_rate: 0`.
- D8/GPIO15 (MAX CS, 10k nach GND) ist Boot-Pin und passend beschaltet. D3/GPIO0 liegt frei auf J10 (beim Start nicht auf GND ziehen).
- **Relais vor dem Einlöten prüfen:** Das Relais passt nur in einer Richtung. Im Ruhezustand muss der Kontakt, der zur Ls-Leiterbahn (J4 Ls / T1) geht, **offen** sein (Schließer).
Durchpiepen: Mittelpin am Ende ohne Nachbarn (COM, Pad „1“) gegen die beiden Pins am anderen Ende. Der Pin mit Durchgang (Öffner) muss auf das **unbeschaltete** Pad. Gängige SRD-05VDC-SL-C von Songle sind so belegt.
## Firmware
`esphome/ofensteuerung.yaml` (geprüft mit `esphome config`): Relais, Strom, Abgas, 3× DS18B20, Luftklappe als Zahl 0–100 %, PWM-Pumpe.
MQTT unter `gunter/ofensteuerung/…`, Secrets wie bei der Umwälzpumpe. Die Servo-Endlagen (`min_level`/`max_level`) an die Klappe anpassen.
## Dateien neu erzeugen
Alles kommt aus `pcb/design.py` (Netzliste, Footprints, Positionen) und `pcb/sch_layout.py` (Schaltplan-Anordnung).
```
cd pcb
python3 gen_sch.py # Schaltplan + Projekt-Libs (kicad-cli sch erc ofensteuerung.kicad_sch)
python3 gen_pcb.py # platzierte Platine
python3 route.py 30 # Freerouting in 2 Stufen: erst 230 V, dann Kleinspannung (230-V-Bereich gesperrt)
kicad-cli pcb drc --schematic-parity ofensteuerung.kicad_pcb
python3 fab.py && ./docs.sh # Gerber-zip, Stückliste, PDFs, Bilder
```
Bestellen: `pcb/fab/ofensteuerung_gerber.zip` (2 Lagen, 1,6 mm, HASL, 100 × 100 mm).