WT32-ETH01 ESP32 Modul mit LAN
Besonderheiten
Das WT32-ETH01 ist ein Modul mit einem ESP32 und einem kabelgebundenen LAN Anschluss. Wifi und LAN funktionieren dabei teilweise unabhängig, teilweise abhängig voneinander:
- Es kann nur LAN genutzt werden und der Funk-Teil kann dann für ESP-Now oder BLE verwendet werden.
- Es kann natürlich auch nur WiFi genutzt werden, LAN liegt dann einfach brach.
- Es kann LAN und WiFi genutzt werden:
- Normalerweise teilt sich das Modul den IP-Stack - typische Funktionen greifen dann mit dem gerade verfügbaren Interface auf das Netzwerk zu und das Modul bekommt im gleichen Netz jeweils eine unterschiedliche Adresse für WiFi und LAN. Es ist mir zumindest per Arduino nicht klar, wie z.B. ein HTTP-Server nur an ein bestimmtes Interface gebunden wird - der Stack scheint immer beide Interface zu bedienen.
- Nur mit speziellen Beispielen (und dann nicht mehr mit der Arduino-Umgebung) lassen sich auch Dinge tun, wo die Interface getrennt werden - damit lassen sich NAT-Router, Access-Points usw realisieren.
Bei der Prorammierung ergibt sich die Besonderheit, dass auch die Ethernet-Events (also per LAN) als WifiEvent auftauchen - also darin kann man sehen, ob z.B. der Kabel-Link aufgebaut worden ist und eine IP-Adresse bezogen wurde.
Wie programmiert man es?
Am einfachsten geht es mit einem ESP Prog Adapter, den man günstig an vielen Stellen kaufen kann, der eigentlich zur Programmierung für ESP-01 Module mit ESP8266 ist, der aber auch hier prima funktioniert.
Leider hat das WT32-ETH01 Modul einige Pinne mehrfach mit gleichem Namen, aber unterschiedlicher Funktion (RXD, TXD, EN-Pinne) und es ist nicht ganz klar, welche Pinne dann was genau machen. Daher habe ich die Pin-Positionen mit aufgeführt. Das Modul muss wie folgt verbunden werden:
WT32-ETH01 Pin | ESP Prog Pin |
---|---|
GND (2. Pin von Links-Oben) | GND |
3V3 (3. Pin von Links-Oben) | 3V3 |
EN (4. Pin von Links-Oben) | RST |
TXD (1. Pin von Rechts-Oben) | TXD |
RXD (2. Pin von Rechts-Oben) | RXD |
IO0 (3. Pin von Rechts-Oben) | IO0 |
In platformio.ini habe ich folgendes stehen um das Modul zu programmieren:
[env:wt32-eth01] platform = espressif32 board = wt32-eth01 framework = arduino monitor_speed = 115200 upload_speed = 460800
Stromversorgung mit 5V
Wenn es einmal programmiert ist (und man OTA aktiviert hat, was bei diesem Modul dann sowohl per Wifi als auch per LAN funktioniert), kann man es wie folgt per 5V-USB mit Strom versorgen:
WT32-ETH01 Pin | Stromversorgung |
---|---|
GND (11. Pin von Links-Oben) | GND |
5V (12. Pin von Links-Oben) | +5V |