Oft könnte ich Anforderungen auch durch eine deutlich einfachere Lösung erfüllen, als ich es letztendlich tue. Aber wo bleiben dann Herausforderung und Lerneffekt, für die ich das alles tue? Dieses Projekt ist ein perfektes Beispiel dafür!

Das ursprüngliche Ziel ist recht einfach: mehrere Lüfter sollen temperaturgesteuert arbeiten, um beispielsweise die Luftzirkulation in einem kleinen Netzwerkschrank zu fördern, wenn es darin zu warm wird. Dafür gibt es Unmengen fertiger Lösungen: eine kleine Platine mit Steuerungselektronik, einem Temperaturfühler und evtl. zwei Potis zum Einstellen reicht schon, um genau diese Aufgabe zu erledigen. Ich könnte das für wenige Euro bestellen, einbauen und wäre fertig. Aber das ist doch ehrlich gesagt langweilig und ich lerne nichts dabei!

Was ich hingegen noch nicht fertig gefunden habe, ist ein Steuergerät mit umfangreichen Software-Funktionen, mehreren Temperatursensoren, mehreren voneinander unabhängigen Ausgangskanälen, Ethernet-Schnittstelle und der Möglichkeit zur Stromversorgung über PoE! Und damit ist das Ziel des Projektes klar: selbst konstruieren!

Komponenten

Die wichtigste Komponente ist der Mikrocontroller des Systems. Hier habe ich mich für den bewährten ESP32-WROOM-32 entschieden, da dieser alle Anforderungen erfüllt. Er bietet auch einen Ethernet-MAC mit RMII Schnittstelle. Passend dazu kommt als PHY der LAN8720A zum Einsatz, denn 100 Mbit/s sind für den geplanten Einsatzzweck mer als ausreichend. Um PoE kümmert sich der PD70200 IC.

Um eine Isolation zwischen PoE und der "Sekundärseite" zu erreichen, kommt ein als fertiges Modul erhältlicher, galvanisch getrennter DC/DC-Wandler zum Einsatz. Klar - solch einen Wandler hätte ich vielleicht auch selbst entwerfen können, jedoch fühle ich mich mit meinem aktuellen Kenntnisstand dazu nicht völlig bereit und hebe es mir lieber erst einmal für ein zukünftiges Projekt auf...

Sehr viele Bauteile im PCB-Editor

Nachdem der Schaltplan fertig war, musste ich all die Bauteile auf der Platine unterkriegen, die nicht größer als 100x60mm sein sollte. (Das Ganze soll schon so kompakt wie möglich sein und ab 100mm in einer Dimension wird die Produktion bei meinem favorisierten Anbieter außerdem deutlich teurer... ;) Und so kam es dazu, dass AirFlowControl meine erste 4-Lagige Platine wurde.

Was kann da schon schief gehen?

...Viel! :D Aber aus Fehlern lernt man ja schließlich. Besonders viele Fehler habe ich bei der GPIO-Belegung des ESP32 "eingeplant" - mehrere Signale, die Ausgänge darstellen, waren an Pins, die nur als Eingang fungieren können... Außerdem - und das ist mir schon fast peinlich, hier öffentlich zuzugeben - habe ich versehentlich die SOIC-Pinbelegung des verwendeten MCP23008-GPIO-Expanders auf den QFN-Footprint auf meiner Platine übertragen. Das hat natürlich nicht funktioniert und der Chip bekam so eine völlig falsche Pinbelegung.

Um dennoch irgendwie die grundlegende Funktion testen zu können, habe ich also die Pins des Microcontrollers bzw. GPIO-Expanders mit ziemlich vielen kleinen Litzen "umbelegt". Da ich es für quasi unmöglich gehalten habe, einzelne Adern an die Pins des winzigen QFN-20 ICs zu löten, habe ich zum Testen eine DIP-Variante des GPIO-Expanders verwendet. Das Ganze sah dann recht abenteuerlich aus, hat aber nach der Einrichtung von ESPHome problemlos funktioniert, was schon mal eine große Erleichterung war!

Hardware-Debugging

Wie geht es weiter?

Eine neue Version der Platine ist in Arbeit. Sobald diese fertig ist und alles funktioniert wie es soll, werde ich die ECAD-Dateien sowie eine detaillierte Dokumentation - ähnlich zum Projekt Weight-O-Matic - auf GitHub veröffentlichen.