Irgendwer hier hatte das Thema Ethernet bei ESPuino mal in den Raum geworfen. Da ich selbst ja auch großer Ethernet-Fan bin, habe ich mir (aufgrund von anderen Tests) mal überlegt, hier ein paar Zeilen zu schreiben.
In einem Projekt für die Steuerung einer Gartenbewässerung nebst kleiner Wetterstation, habe ich in meinem Gartenhaus einen ESP32, der mit Ethernet angebunden ist und seinerseits Eingänge für ein Relaisboard ansteuert. Das läuft seit knapp drei Jahren. Das Ganze in einem relativ wilden Drahtverhau auf Streifenraster gelötet (damals habe ich noch keine PCBs gemacht) und als Ethernet-Modul ein W5500 verwendet, das mit SPI angebunden ist. Da ich mehr als die Hälfte im Jahr nix bewässern muss, kommt auch hier so eine ähnlich 2stufige Transistorschaltung zum Einsatz, wie ihr die auch vom ESPuino kennt. Damit schalte ich sogar das Ethernet-Modul aus. D.h. alle fünf Minuten schaltet der sich ein, misst die Sensoren und geht wieder in den Deepsleep. Müsste ich jetzt nicht, da es eh an der Steckdose hängt, aber es tut ja auch nicht weh.
Nachteilig an dieser Variante ist, dass OTA und auch eine Lib, mit der ich serielle Ausgaben auf Syslog schicken kann, nicht funktionieren. Überhaupt ist es zu diesem Thema überhaupt nicht einfach, passende Infos zu kriegen. Wobei das ein Stück weit für Ethernet beim ESP32 grundsätzlich gilt; es wird halt wenig verwendet.
Nun würde ich gerne den Drahtverhau gerne mal mit einem ordentlichen PCB beseitigen und habe diesen PCB auch schon ewig hier rumliegen. Und da ich gerade eine Lüftersteuerung mit Ethernet für meinen Bruder baue, habe ich diesen PCB jetzt mal ausgekramt und ein paar Versuche gemacht. Inzwischen nicht mehr mit dem W5500 sondern mit LAN8720. Das wird nicht über SPI angebunden sondern über RMII.
Vorteile:
- Die Programmierung unterscheidet sich fast gar nicht von WiFi. Interessanterweise arbeitet man tatsächlich mit einem WiFi-Objekt.
- OTA funktioniert
- Syslog funktioniert
Nachteile:
- Es braucht erheblich mehr GPIOs; acht an der Zahl.
- Der 50 MHz-Takt eingehend auf GPIO0 ist beim Einschalten problematisch, da der ESP32, wenn man nicht besondere Vorkehrungen trifft, dann in Programming-Mode geht.
Strombedarf des PCBs liegt mit 100 MBps Ethernet-Verbindung bei etwa 180 mA. Der Webserver, der bei ESPuino verwendet wird, funktioniert auf jeden Fall auch.
Fazit:
Ich würde vermuten, dass man einen ESPuino mit relativ überschaubaren Code-Änderungen, auch mit Ethernet zum Laufen kriegen würde. Das ginge inzwischen vermutlich auch relativ kompakt, da es ein Develboard dafür gibt (kostet bei Aliexpress so 12eur rum). Man müsste dann allerdings mit Port-Expander arbeiten, da die Anzahl der freien GPIOs dadurch erheblich kleiner wird.
Ich denke für Kinder ist das eher nix. Aber wenn man zB irgendwo Ethernet (und kein WLAN) hat, dann ist das sicherlich ein Weg, den man gehen könnte.