Added archritecture picture
This commit is contained in:
parent
97637a8315
commit
c952b9f897
|
|
@ -10,7 +10,7 @@ Das System ist in drei logische Ebenen aufgeteilt, um eine hohe Flexibilität un
|
|||
2. **Gateway-Ebene (ESP32):** Ein reiner Protokoll-Übersetzer, der als Brücke zwischen dem Heimnetzwerk (WLAN/Thread) und dem physischen Bus-System der Anlage fungiert. Er enthält keine eigene Steuerungslogik.
|
||||
3. **Aktor-/Sensor-Ebene (Slave-Nodes):** Robuste, spezialisierte Baugruppen, die über einen Bus angesteuert werden und die eigentlichen Aufgaben ausführen (Ventile schalten, Sensoren auslesen).
|
||||
|
||||

|
||||

|
||||
|
||||
## 2. Systemkomponenten
|
||||
|
||||
|
|
@ -70,4 +70,4 @@ Die Firmware der Slaves kann im laufenden Betrieb über den Bus aktualisiert wer
|
|||
|
||||
* **Fail-Safe-Verhalten:** Jeder Slave-Node implementiert einen Watchdog. Wenn über eine definierte Zeit (z.B. 15 Sekunden) keine gültige MODBUS-Abfrage vom Gateway eintrifft, geht der Slave in einen sicheren Zustand über: Alle Ventile werden geschlossen und Relais (z.B. für die Pumpe) werden ausgeschaltet.
|
||||
* **Elektrische Schutzschaltungen:** Alle externen Schnittstellen werden geschützt. Die RS485-Busleitungen (`A`/`B`) werden auf jeder Platine mit TVS-Dioden gegen Überspannungen gesichert. Eingänge und Ausgänge erhalten einen Basis-ESD-Schutz.
|
||||
* **Stromversorgung:** Die 12V-Busspannung wird auf jedem Slave-Node mit einem effizienten `TPS5430DDAR` Step-Down-Wandler auf die benötigten 3.3V für den Mikrocontroller und die Bustreiber geregelt.
|
||||
* **Stromversorgung:** Die 12V-Busspannung wird auf jedem Slave-Node mit einem effizienten `TPS5430DDAR` Step-Down-Wandler auf die benötigten 3.3V für den Mikrocontroller und die Bustreiber geregelt.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
<svg width="650" height="500" viewBox="0 0 650 500" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<style>
|
||||
.box {
|
||||
fill: #f0f7ff;
|
||||
stroke: #0d47a1;
|
||||
stroke-width: 1.5;
|
||||
rx: 8;
|
||||
}
|
||||
.label-main {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
text-anchor: middle;
|
||||
fill: #111;
|
||||
}
|
||||
.label-sub {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
text-anchor: middle;
|
||||
fill: #444;
|
||||
}
|
||||
.label-arrow {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
text-anchor: middle;
|
||||
fill: #333;
|
||||
}
|
||||
.arrow-line {
|
||||
stroke: #333;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.arrow-head {
|
||||
fill: #333;
|
||||
}
|
||||
.bus-line {
|
||||
stroke: #212121;
|
||||
stroke-width: 4;
|
||||
}
|
||||
.bus-connector {
|
||||
stroke: #212121;
|
||||
stroke-width: 2;
|
||||
}
|
||||
</style>
|
||||
<marker id="arrowhead" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
|
||||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#333" />
|
||||
</marker>
|
||||
</defs>
|
||||
|
||||
<text x="325" y="30" class="label-main" font-size="20">Systemarchitektur</text>
|
||||
|
||||
<rect x="225" y="60" width="200" height="70" class="box"/>
|
||||
<text x="325" y="90" class="label-main">Home Assistant</text>
|
||||
<text x="325" y="110" class="label-sub">(Logik & UI)</text>
|
||||
|
||||
<line x1="325" y1="130" x2="325" y2="170" class="arrow-line" marker-end="url(#arrowhead)"/>
|
||||
<text x="445" y="155" class="label-arrow">WLAN / Thread</text>
|
||||
<text x="445" y="170" class="label-arrow" font-size="11">(MODBUS TCP/IP)</text>
|
||||
|
||||
|
||||
<rect x="225" y="180" width="200" height="70" class="box"/>
|
||||
<text x="325" y="210" class="label-main">Gateway (ESP32C6)</text>
|
||||
<text x="325" y="230" class="label-sub">(Protokoll-Übersetzer)</text>
|
||||
|
||||
<line x1="325" y1="250" x2="325" y2="300" class="bus-line"/>
|
||||
<line x1="50" y1="300" x2="600" y2="300" class="bus-line"/>
|
||||
<text x="500" y="285" class="label-arrow">RS485 Bus (MODBUS RTU)</text>
|
||||
|
||||
<line x1="125" y1="300" x2="125" y2="340" class="bus-connector"/>
|
||||
<rect x="50" y="340" width="150" height="60" class="box"/>
|
||||
<text x="125" y="365" class="label-main">Slave-Node</text>
|
||||
<text x="125" y="385" class="label-sub">(Ventil, Taster)</text>
|
||||
|
||||
<line x1="325" y1="300" x2="325" y2="340" class="bus-connector"/>
|
||||
<rect x="250" y="340" width="150" height="60" class="box"/>
|
||||
<text x="325" y="365" class="label-main">Slave-Node</text>
|
||||
<text x="325" y="385" class="label-sub">(Pumpe, Sensoren)</text>
|
||||
|
||||
<line x1="525" y1="300" x2="525" y2="340" class="bus-connector"/>
|
||||
<rect x="450" y="340" width="150" height="60" class="box"/>
|
||||
<text x="525" y="365" class="label-main">Füllstandsensor</text>
|
||||
<text x="525" y="385" class="label-sub">(QDY30A)</text>
|
||||
|
||||
<text x="325" y="440" class="label-sub" font-size="20">...</text>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
Loading…
Reference in New Issue