ESP32 WT32-ETH01 gateway modul, Ethernet Wi-Fi Bluetooth
zoom_out_map
chevron_left chevron_right

A termékfotók tájékoztató jellegűek, és a gyártási tételtől és a beszállítótól függően kisebb eltéréseket mutathatnak. A termék specifikációi és árai előzetes értesítés nélkül változhatnak. Mindent megteszünk, hogy a lehető legpontosabb és leghitelesebb specifikációkat adjuk meg a termékoldalon, de lehetséges, hogy ezek nem teljesen helyesek. Ha ilyen esetet észlel, kérjük, jelentse nekünk.

A termék szakemberek számára készült, és használatához képzett, valamint felhatalmazott személyzet szükséges. A termék nem tartalmaz összeszerelési/használati útmutatót . A termék nem megfelelő képesítéssel rendelkező személyek általi üzembe helyezése a weboldalon található Általános Szerződési Feltételek értelmében a jótállás elvesztését eredményezi.

A megadott műszaki adatok (áram, teljesítmény stb.) ideális működési körülmények között érvényes maximális értékeket jelentenek. A biztonságos használat és az optimális élettartam érdekében javasolt a terméket folyamatos üzemben legfeljebb a megadott maximális értékek 50%-án használni.

Modul gateway WT32-ETH01 ESP32, Ethernet 10/100 Mbps, Wi-Fi, Bluetooth, tápfeszültség 5V vagy 3.3V

ESP32 modul RJ45 10/100 Mbps Ethernet porttal, Wi-Fi-vel és Bluetooth-szal, gatewayként automatizálási, monitorozási és IoT projektekhez. Támogatja a TCP és UDP szerver vagy kliens üzemmódot, AT parancsokat, hálózati OTA frissítést és szoftveres titkosítást, tápellátása 5 V vagy 3.3 V.

5 572,79 Ft Adóval együtt

4 605,61 Ft Áfa nélkül

There are no reviews yet.
1-2 zile
check In Stoc

A termék megvásárlásával jár 278,64 Ft hűségpont.

Jótállás: 24 hónap magánszemélyeknek
NEMZETKÖZI SZÁLLÍTÁS
Nemzetközi gyors szállítás az EU-n belül. Ingyenes szállítás 100 EUR feletti megrendelések esetén a legtöbb EU-országban.
GYORS KISZÁLLÍTÁS 24 ÓRÁN BELÜL
24 órán belül szállítunk raktárunkból
HŰSÉGPONTOK
Minden rendelés után pontokat kap, a rendelés értékének 5%-ában.

A WT32-ETH01 modul egy kompakt ESP32-alapú panel, amely egy RJ45 10/100 Mbps Ethernet portot, Wi-Fi-t és Bluetooth-t egyesít ugyanazon a panelen. Gatewayként alkalmas helyi hálózat és soros portos eszközök között, automatizálási, ipari monitorozási, vezérlőpanel- és IoT-projektekhez, amelyekhez stabil kábeles kapcsolat szükséges. A modul átlátszó adatátvitelt támogat a négy elérhető interfész közül bármelyik két között: soros port, Wi-Fi, Ethernet és Bluetooth.

A processzor egy kétmagos Xtensa 32 bites LX6 ESP32, 32 Mbit SPI flash memóriával és 520 KB SRAM-mal. Az Ethernet interfészt a LAN8720A áramkör valósítja meg, a hálózati üzemmódok pedig TCP szerver, TCP kliens, UDP szerver és UDP kliens, IPv4 felett. A soros port sebessége 80 és 5000000 bps között állítható. A modul támogatja az AT parancsokat, a Wi-Fi-n vagy Etherneten keresztüli OTA firmware-frissítést, valamint az AES, RSA, ECC és SHA szoftveres titkosítási algoritmusokat.

A főbb jellemzők között szerepel az RJ45 port LAN8720A Ethernet áramkörrel, a panelre integrált Wi-Fi és Bluetooth antenna, két 13 tűs, 2.54 mm osztású sor GPIO, ADC bemenetek, UART, az EN és LINK tűk, a TX0, RX0 és IO0 programozótűk, a POWER tápellenőrző LED, valamint az RXD és TXD LED-ek a másodlagos soros port forgalmához. A tápellátás 5 V-ról az 5V tűn vagy 3.3 V-ról a 3V3 tűn keresztül történik, egyetlen tápforrást használva.

Mivel ESP32-alapú panelről van szó, a modul Arduino IDE-ből (ESP32 Dev Module táblaként), ESP-IDF-fel vagy PlatformIO-val programozható, 3.3 V-os logikájú USB-TTL adapterrel, amely a TX0 és RX0 tűkre csatlakozik.

 

Specifikációk:

Tápfeszültség: 5 V (5V tű) vagy 3.3 V (3V3 tű), csak az egyik

Áramfelvétel: 80 mA átlagos működésnél, minimum 500 mA-es tápforrás

Mikrovezérlő: kétmagos Xtensa 32 bites LX6 ESP32, legfeljebb 240 MHz

Flash memória: 32 Mbit SPI

SRAM: 520 KB

Ethernet: RJ45 10/100 Mbps, LAN8720A áramkör

Wi-Fi: 802.11 b/g/n, 2.4 GHz

Bluetooth: Bluetooth 4.2 (BR/EDR és BLE)

Adatinterfészek: Soros, Wi-Fi, Ethernet, Bluetooth

Hálózati üzemmódok: TCP szerver, TCP kliens, UDP szerver, UDP kliens

Hálózati protokoll: IPv4, TCP/UDP

Soros baudrate: 80 - 5000000 bps

GPIO logikai szint: 3.3 V

Szoftveres titkosítás: AES, RSA, ECC, SHA

Firmware frissítés: OTA Wi-Fi vagy Ethernet üzemmódban

Működési hőmérséklet: -40 °C és +85 °C között

Tüskék: forrasztott vagy forrasztatlan, a tételtől függően, 2 x 13, 2.54 mm osztás

Méretek: 25 x 63 x 17 mm

 

Elrendezés:

Elem Funkció
RJ45 port 10/100 Mbps Ethernet csatlakozó a routerhez vagy switchhez hálózati kábellel történő csatlakoztatáshoz.
WT32-S1 modul ESP32-vel A fő processzor, Wi-Fi-vel, Bluetooth-szal és a panelra integrált antennával.
LAN8720A áramkör A fizikai Ethernet vezérlő, amely RMII interfészen keresztül kapcsolódik az ESP32-höz.
Ethernet oszcillátor Biztosítja a LAN8720A áramkör 50 MHz-es órajelét, és az ESP32 az IO16 tűn keresztül indítja.
Feszültségstabilizátor A panel 3.3 V-os feszültségét állítja elő, amikor a modul az 5V tűn keresztül kap tápot.
POWER LED (LED1) Akkor világít, amikor a panel tápellátása rendben van.
RXD LED (LED3) Akkor világít, amikor forgalom van a másodlagos soros port RXD2 (IO5) vonalán.
TXD LED (LED4) Akkor világít, amikor forgalom van a másodlagos soros port TXD2 (IO17) vonalán.
LINK tű Kimenet a hálózati kapcsolat állapotát jelző külső kijelzőhöz.
EN tű A modul magas szintű engedélyezése. GND-re húzva újraindítja a modult. A panelen nincs reset gomb.
IO0 tű Indítási mód kiválasztása. Indításkor GND-re kötve soros programozási módot aktivál. Csatlakoztatás nélkül a flash memóriában lévő programot indítja. A panelen nincs jumper vagy kapcsoló, a kapcsolat egy vezetékkel történik.
TX0 és RX0 tűk Az ESP32 fő soros portja (IO1 és IO3), programozáshoz és soros monitorhoz használható.
Tüskesorok Két sor, soronként 13 tű, tápellátással, földeléssel, GPIO-val, ADC bemenetekkel, UART-tal, valamint az EN és LINK tűkkel.

 

Kiosztás:

A tűk az RJ45 portos végétől az antenna felé haladva vannak felsorolva. Az 1. sor tartalmazza a LINK, 5V és 3V3 tűket, a 2. sor pedig az IO0, RX0 és TX0 tűket.

Csatlakozó Tű Funkció
1. sor LINK Kimenet a hálózati kapcsolat állapotjelzőjéhez
1. sor 5V 5 V tápellátás
1. sor GND Föld
1. sor 3V3 3.3 V tápellátás
1. sor GND Föld
1. sor TXD IO17, TXD2, másodlagos soros adatküldés
1. sor RXD IO5, RXD2, másodlagos soros adatfogadás
1. sor 485_EN IO33, engedélyező tű egy RS485 adóvevőhöz
1. sor CFG IO32, CFG jelöléssel
1. sor EN Modul engedélyezés, magas szint. GND-re húzva újraindítja a modult
1. sor 3V3 3.3 V tápellátás
1. sor GND Föld
1. sor EN Modul engedélyezés, magas szint. GND-re húzva újraindítja a modult
2. sor GND Föld
2. sor IO2 GPIO2, indítótű. Programozáskor szabadon kell hagyni vagy alacsony szintre kell húzni
2. sor IO4 GPIO4, ADC2 CH0
2. sor IO35 GPIO35, csak bemenet, ADC1 CH7
2. sor IO12 GPIO12, indításkor szabadon kell hagyni vagy alacsony szintre kell húzni
2. sor IO14 GPIO14, ADC2 CH6
2. sor IO15 GPIO15, ADC2 CH3
2. sor IO36 GPIO36, csak bemenet, ADC1 CH0
2. sor IO39 GPIO39, csak bemenet, ADC1 CH3
2. sor GND Föld
2. sor IO0 Indítási mód. Indításkor GND-re húzva programozást aktivál. A 50 MHz-es Ethernet órajelhez is használt
2. sor RX0 IO3, RXD0, fő soros adatfogadás
2. sor TX0 IO1, TXD0, fő soros adatküldés

 

IO0 tű indításkor ESP32 indítási mód
Csatlakoztatva nincs Program futtatása a flash memóriából (normál működés)
GND-re kötve Soros bootloader (program betöltése a TX0 és RX0 tűkön keresztül)

 

ESP32 tű Belsőleg használva a következőhöz
IO16 A LAN8720A áramkör 50 MHz-es oszcillátorának indítása
IO23 MDC, Ethernet menedzsment órajel
IO18 MDIO, Ethernet menedzsment adat
IO0 50 MHz-es referencia órajel bemenet (REF_CLK)
IO19, IO21, IO22 TXD0, TX_EN, TXD1 (RMII)
IO25, IO26, IO27 RXD0, RXD1, CRS_DV (RMII)

Az utolsó táblázat tűit az Ethernet interfész foglalja el, ezek nincsenek kivezetve a tüskesorokra.

 

Használat:

A modult vagy 5 V-ról az 5V tűn, vagy 3.3 V-ról a 3V3 tűn keresztül táplálja, soha nem mindkét tűn egyszerre, a kapcsolás többi részével közös földelést használva.

Stabil tápforrást használjon, amely legalább 500 mA-t tud biztosítani, és az 5V tűre ne kapcsoljon 5 V-nál magasabb feszültséget. Tápellátás után a POWER LED kigyullad.

Tartsa be a 3.3 V-os logikai szintet. Ne kapcsoljon 5 V-os jeleket a jeltűkre, és 5 V-os berendezésekkel való kommunikációhoz használjon logikai szintillesztőt.

Programozáshoz csatlakoztasson 3.3 V-os logikájú USB-TTL adaptert a következőképpen: az adapter TXD a RX0-ra, az adapter RXD a TX0-ra, a GND pedig a GND-re. A modult az adapter 5 V-os tűjéről táplálja, amely a modul 5V tűjére csatlakozik.

Ne táplálja a modult egy kis adapter 3.3 V-os kimenetéről, mert az nem biztosítja a Wi-Fi működéséhez szükséges áramot.

Csatlakoztassa az IO0 tűt a 2. sor egyik GND tűjéhez, majd kapcsolja be a tápellátást, vagy resetelje a modult az EN tű rövid GND-re húzásával. A modul programozási módba lép.

Az Arduino IDE-ben válassza az ESP32 Dev Module táblát, állítsa a feltöltési sebességet 115200-ra, és töltse fel a programot.

A feltöltés után távolítsa el az IO0 és GND közötti kapcsolatot, majd kapcsolja ki és be újra a tápellátást, vagy resetelje a modult az EN tűn keresztül. A program a flash memóriából indul.

Programozáskor és indításkor hagyja az IO2 és IO12 tűket csatlakoztatatlanul vagy alacsony szinten, mert indításkor a szintjük befolyásolja az ESP32 indulását.

Ethernet kapcsolathoz csatlakoztasson hálózati kábelt az RJ45 port és egy DHCP-t futtató router vagy switch közé, majd nyissa meg a soros monitort 115200 baud sebességgel, és ellenőrizze, hogy a modul IP-címet kap.

Wi-Fi kapcsolathoz állítsa be a hálózat nevét és jelszavát AT parancsokkal vagy az alkalmazás kódján keresztül.

Ne használja az IO2, IO4, IO12, IO14 és IO15 tűket analóg bemenetként, amíg a Wi-Fi aktív, mert az ADC2 átalakítóhoz tartoznak. Analóg mérésekhez használja az IO35, IO36 és IO39 tűket, amelyek csak bemenetek.

OTA frissítésekhez győződjön meg róla, hogy a modul eléri a helyi hálózatot, és használja a firmware-be integrált frissítési funkciót vagy az espota.py segédprogramot.

Stabil működéshez gyorsan induló tápforrást és rövid tápkábeleket használjon, ipari környezetben pedig tartsa a modult -40 °C és +85 °C közötti hőmérséklet-tartományban, páratól és rezgéstől védve.

88265
Tápfeszültség
5 V sau 3.3 V
Méretek
25 x 63 x 17 mm
Üzemi hőmérséklet
-40 °C la +85 °C
Tűk száma
2 x 13
Interfész
Soros, Wi-Fi, Ethernet, Bluetooth
Logikai feszültség
3.3 V
Áramerősség
80 mA in functionare medie, sursa de minimum 500 mA
Flash memória
32 Mbit SPI
Tüskeosztás
2.54 mm
Mikrovezérlő
ESP32 dual-core Xtensa 32-bit LX6, pana la 240 MHz
WiFi
2.4 GHz, 802.11 b/g/n
Bluetooth
Bluetooth 4.2 (BR/EDR si BLE)
SRAM memória
520 KB
Protokoll
IPv4, TCP/UDP

Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.

Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.

Avertismente generale de siguranta:

Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.

Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.

Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.

Nu lasati produsul alimentat nesupravegheat in timpul testelor.

Produsul nu este jucarie si nu este destinat copiilor.

Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.

Identificare produs:

Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.

Producator / Importator / Distribuitor:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Website: www.sigmanortec.ro

Persoana responsabila in UE:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Documentatie si siguranta:

Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].

/*
  WT32-ETH01 Ethernet + TCP client test

  Board (Arduino IDE, Tools > Board): ESP32 Dev Module
  Board package (Boards Manager): esp32 by Espressif Systems, versions 2.0.x or 3.x
  Boards Manager URL (File > Preferences):
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  Libraries: none to install. WiFi.h, ETH.h and WiFiClient.h come with the ESP32 package.

  Wiring (CP2102 USB to TTL adapter, 3.3 V logic):
    Adapter +5V -> module 5V pin
    Adapter GND -> module GND pin
    Adapter TXD -> module RX0
    Adapter RXD -> module TX0
    Module IO0  -> GND only while uploading, then remove it and restart the module
    RJ45 port   -> router or switch with DHCP
*/

#include <WiFi.h>
#include <ETH.h>
#include <WiFiClient.h>

// Ethernet PHY (LAN8720A) settings specific to the WT32-ETH01
#define WT_PHY_ADDR  1
#define WT_PHY_POWER 16
#define WT_PHY_MDC   23
#define WT_PHY_MDIO  18

// TCP server to connect to (change to the address of your server)
const char* serverHost = "192.168.1.100";
const uint16_t serverPort = 8080;

static bool ethConnected = false;

// Network event handler
void onEvent(WiFiEvent_t event) {
  switch (event) {
    case ARDUINO_EVENT_ETH_START:
      Serial.println("ETH started");
      ETH.setHostname("wt32-eth01");
      break;
    case ARDUINO_EVENT_ETH_CONNECTED:
      Serial.println("ETH cable connected");
      break;
    case ARDUINO_EVENT_ETH_GOT_IP:
      Serial.print("IP address: ");
      Serial.println(ETH.localIP());
      ethConnected = true;
      break;
    case ARDUINO_EVENT_ETH_DISCONNECTED:
      Serial.println("ETH disconnected");
      ethConnected = false;
      break;
    default:
      break;
  }
}

void setup() {
  Serial.begin(115200);
  delay(500);
  WiFi.onEvent(onEvent);

  // The order of the arguments changed in version 3 of the ESP32 package
#if ESP_ARDUINO_VERSION_MAJOR >= 3
  ETH.begin(ETH_PHY_LAN8720, WT_PHY_ADDR, WT_PHY_MDC, WT_PHY_MDIO, WT_PHY_POWER, ETH_CLOCK_GPIO0_IN);
#else
  ETH.begin(WT_PHY_ADDR, WT_PHY_POWER, WT_PHY_MDC, WT_PHY_MDIO, ETH_PHY_LAN8720, ETH_CLOCK_GPIO0_IN);
#endif
}

void loop() {
  if (!ethConnected) {
    delay(500);
    return;
  }

  WiFiClient client;
  if (!client.connect(serverHost, serverPort)) {
    Serial.println("TCP connection failed");
    delay(2000);
    return;
  }

  Serial.println("TCP connected, sending test payload");
  client.println("Hello from WT32-ETH01");

  // Wait up to 3 seconds for an answer
  unsigned long start = millis();
  while (client.available() == 0) {
    if (millis() - start > 3000) {
      Serial.println("Server timeout");
      client.stop();
      return;
    }
    delay(10);
  }

  // Print the answer of the server
  while (client.available()) {
    Serial.write(client.read());
  }
  client.stop();
  delay(5000);
}

A WT32-ETH01 egy ESP32-alapú kártya Ethernet-porttal. Olyan projektekben használják, ahol a vezetékes kapcsolatnak stabilabbnak kell lennie, mint a Wi-Fi-nek, például automatizálási csomópontoknál, soros eszközök átjáróinál vagy megfigyelő paneleknél. Ebben a bemutatóban csak magát a modult használjuk, az Arduino IDE-ből, az ESP32 Dev Module kártyatípussal programozva, más fejlesztőkártya nélkül.

A modulnak nincs USB-portja, ezért egy 3.3 V-os logikájú CP2102 USB-TTL adapteren keresztül programozzuk. A végeredmény egy olyan program lesz, amely elindítja az Ethernetet, kiírja a routertől kapott IP-címet, és rendszeresen ellenőrzi, hogy a hálózat válaszol-e.

Gateway Wireless ESP32 modul Ethernet, Wi-Fi és Bluetooth kapcsolattal, WT32-ETH01

Működés:

Az ESP32 tartalmazza az Ethernet MAC-vezérlőjét, a kártyán lévő LAN8720A áramkör pedig a fizikai réteg (PHY), amely a kábelen keresztül kommunikál. A kettő között az RMII interfész köti össze őket, amelyhez 50 MHz-es referencia-órajel szükséges. Ezt az órajelet a kártyán lévő oszcillátor adja, amelyet az ESP32 az IO16 lábon indít, a jel pedig az IO0 lábon lép be az ESP32-be. Ezért a programban az IO16 lábat a PHY tápláló lábaként deklaráljuk, az órajelet pedig ETH_CLOCK_GPIO0_IN-re állítjuk.

Az IO23 (MDC) és az IO18 (MDIO) lábak alkotják a menedzsment buszt, amelyen keresztül az ESP32 konfigurálja a LAN8720A-t, a PHY címe pedig 1. Az adatok tényleges továbbítása az IO19, IO21, IO22, IO25, IO26 és IO27 RMII lábakon történik, ezeket a kártya belsőleg használja, így a sorkapcsokon nem jelennek meg.

Néhány hasznos számítás. A 115200 baud-os soros port átvitelenként bájtonként 10 bitet küld (egy start bit, 8 adatbit és egy stop bit), ezért nagyjából 115200 / 10 = 11520 bájt másodpercenként. A 100 Mbps-os Ethernet elméleti sebessége 100 / 8 = 12.5 MB másodpercenként, ami több mint 1000-szer nagyobb. Az átlagos fogyasztás 80 mA, de a tápegységnek legalább 500 mA-t kell tudnia leadni a Wi-Fi és az Ethernet áramcsúcsaihoz. Egy USB-port 500 mA-t biztosít, ez tehát elegendő.

Csatlakoztatás:

A modult a CP2102 adapter +5V lábáról tápláljuk, amely az USB 5 V-os feszültségét közvetlenül átengedi. Az adapter 3V3 lábát nem használjuk, mert a stabilizátora kis áramot ad, ami nem elég egy Wi-Fi-s ESP32-nek. A jelek 3.3 V-osak, ezért nincs szükség szintillesztőre, de soha ne kapcsoljon 5 V-ot a jellábakra. A soros vonal keresztbe van kötve: az adapter TXD lába az RX0-ra, az adapter RXD lába a TX0-ra megy. Az IO0 lábat csak a programfeltöltés idejére kösse GND-re.

Kártya láb Csatlakozik ide Szerep
5V (1. sor) A CP2102 adapter +5V lába 5 V-os táplálás az USB-ről
GND (1. sor, az 5V láb mellett) A CP2102 adapter GND lába Közös föld
RX0 (2. sor) A CP2102 adapter TXD lába Soros vétel, IO3
TX0 (2. sor) A CP2102 adapter RXD lába Soros adás, IO1
IO0 (2. sor) A 2. sor IO0 mellett lévő GND láb Programozó mód, csak feltöltéskor
RJ45 port Router vagy switch DHCP-vel, Cat5e kábelen Hálózati kapcsolat
3V3 Nincs bekötve Innen nem tápláljuk, ha az 5V lábat használjuk

WT32-ETH01 csatlakoztatása CP2102 USB-TTL átalakítóhoz programozáshoz, Ethernet-kábellel a routerhez

Gombok, beállítások és jelzőfények:

A kártyán nincs gomb, potenciométer, jumper vagy kapcsoló. A programozó módba az IO0 és a GND közötti vezetékkel léphet, az újraindítást pedig az EN lábbal végezheti. A kártya állapotát három LED jelzi.

Elem Funkció Használat
IO0 - GND összekötés Az ESP32 indulási módját választja ki Indításkor csatlakoztatva az ESP32 a soros porton keresztül várja a programot. Lecsatlakoztatva a flashben lévő programot futtatja.
EN láb Engedélyezi vagy újraindítja a modult GND-hez rövid érintéssel újraindítja a modult. Szabadon hagyva a modul üzemben marad.
POWER LED (LED1) A tápfeszültséget jelzi Normál tápellátásnál világít. Ha kialszik, ellenőrizze a tápellátást és a polaritást.
RXD LED (LED3) Forgalmat jelez az RXD2 (IO5) vonalon Világít, ha adat halad az RXD2 vonalon. A bemutatóban szereplő programban kialszik, mert ezt a vonalat nem használjuk.
TXD LED (LED4) Forgalmat jelez a TXD2 (IO17) vonalon Világít, ha adat halad a TXD2 vonalon. A bemutatóban szereplő programban kialszik.
LINK láb A hálózati kapcsolat jelzőjének kimenete Egy külső LED köthető rá, előtét ellenállással, ha látni szeretné a kapcsolat állapotát.

Programozó mód. Az IO0 és a GND közötti vezetéket a kártya tápra kapcsolása vagy újraindítása előtt csatlakoztassa. Miután az Arduino IDE befejezte a feltöltést, húzza ki a vezetéket, és indítsa újra a tápellátást. Ha a soros monitor a waiting for download üzenetet írja ki, a vezeték még be van dugva, vagy a kártyát nem indították újra.

Újraindítás. Ha a programot úgy szeretné újraindítani, hogy nem veszi le a tápellátást, érintse röviden az EN lábat egy vezetékkel a GND-hez. A program elölről indul, és a soros monitoron újra látja az indulási üzeneteket.

A POWER LED. Az adapter USB-re csatlakoztatásakor azonnal fel kell gyulladnia. Ez az első jel arra, hogy a tápellátás és a föld rendben van.

Kártya és könyvtárak:

Az Arduino IDE-ben a Tools > Board menüből válassza az ESP32 Dev Module kártyát az esp32 by Espressif Systems csomagból, amelyet a Boards Manager-ből telepített. A csomag nem része az Arduino IDE-nek, ezért először a File > Preferences menüben, az Additional boards manager URLs mezőbe adja meg a https://espressif.github.io/arduino-esp32/package_esp32_index.json címet. A program az ESP32 csomag 2.0.x és 3.x verzióihoz készült. Állítsa az Upload Speed értékét 115200-ra.

A program csak az ESP32 csomaggal érkező könyvtárakat használja (WiFi.h, ETH.h és WiFiClient.h), ezért a Library Manager-ből nem kell könyvtárat telepíteni.

A kód:

A program elindítja az Ethernet-interfészt a WT32-ETH01 kártyára jellemző paraméterekkel, kiírja a hálózati eseményeket és az IP-címet, majd 5 másodpercenként TCP-kapcsolatot próbál létesíteni a hálózat átjárójához, vagyis a routerhez, a 80-as porton.

/*
  WT32-ETH01 Ethernet test: prints the IP address and checks the router
  Board (Arduino IDE, Tools > Board): ESP32 Dev Module
  Board package (Boards Manager): esp32 by Espressif Systems, versions 2.0.x or 3.x
  Boards Manager URL (File > Preferences):
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  Libraries: none to install. WiFi.h, ETH.h and WiFiClient.h come with the ESP32 package.
  Wiring (CP2102 USB to TTL adapter, 3.3 V logic):
    Adapter +5V -> module 5V pin (row 1)
    Adapter GND -> module GND pin next to 5V (row 1)
    Adapter TXD -> module RX0
    Adapter RXD -> module TX0
    Module IO0  -> module GND next to IO0 (row 2), only while uploading
    RJ45 port   -> router or switch with DHCP
*/
#include <WiFi.h>
#include <ETH.h>
// Ethernet PHY (LAN8720A) settings specific to the WT32-ETH01
#define WT_PHY_ADDR  1   // PHY address
#define WT_PHY_POWER 16  // GPIO16 enables the 50 MHz oscillator
#define WT_PHY_MDC   23  // Management clock pin
#define WT_PHY_MDIO  18  // Management data pin
static bool ethConnected = false;       // True after an IP address is received
static unsigned long lastCheck = 0;     // Time of the last network check
const unsigned long CHECK_INTERVAL = 5000;  // Check every 5 seconds
// Called by the system for every network event
void onEvent(WiFiEvent_t event) {
  switch (event) {
    case ARDUINO_EVENT_ETH_START:
      Serial.println("ETH started");
      ETH.setHostname("wt32-eth01");  // Name shown on the router
      break;
    case ARDUINO_EVENT_ETH_CONNECTED:
      Serial.println("ETH cable connected");
      break;
    case ARDUINO_EVENT_ETH_GOT_IP:
      Serial.print("ETH MAC: ");
      Serial.println(ETH.macAddress());
      Serial.print("IP address: ");
      Serial.println(ETH.localIP());
      Serial.print("Subnet mask: ");
      Serial.println(ETH.subnetMask());
      Serial.print("Gateway: ");
      Serial.println(ETH.gatewayIP());
      ethConnected = true;
      break;
    case ARDUINO_EVENT_ETH_DISCONNECTED:
      Serial.println("ETH cable disconnected");
      ethConnected = false;
      break;
    case ARDUINO_EVENT_ETH_STOP:
      Serial.println("ETH stopped");
      ethConnected = false;
      break;
    default:
      break;
  }
}
void setup() {
  Serial.begin(115200);  // Serial monitor on TX0 / RX0
  delay(500);
  Serial.println("WT32-ETH01 Ethernet test");
  WiFi.onEvent(onEvent);  // Register the event handler
  // The order of the arguments changed in version 3 of the ESP32 package
#if ESP_ARDUINO_VERSION_MAJOR >= 3
  ETH.begin(ETH_PHY_LAN8720, WT_PHY_ADDR, WT_PHY_MDC, WT_PHY_MDIO, WT_PHY_POWER, ETH_CLOCK_GPIO0_IN);
#else
  ETH.begin(WT_PHY_ADDR, WT_PHY_POWER, WT_PHY_MDC, WT_PHY_MDIO, ETH_PHY_LAN8720, ETH_CLOCK_GPIO0_IN);
#endif
}
void loop() {
  if (millis() - lastCheck < CHECK_INTERVAL) {
    return;  // Not time yet
  }
  lastCheck = millis();
  if (!ethConnected) {
    Serial.println("Waiting for an IP address...");
    return;
  }
  // Show the link speed and duplex mode
  Serial.print("Link: ");
  Serial.print((unsigned int)ETH.linkSpeed());
  Serial.print(" Mbps, ");
  Serial.println(ETH.fullDuplex() ? "full duplex" : "half duplex");
  // Try a TCP connection to the router on port 80 with a 3 second timeout
  WiFiClient client;
  if (client.connect(ETH.gatewayIP(), 80, 3000)) {
    Serial.println("Router reachable on port 80");
    client.stop();  // Close the connection
  } else {
    Serial.println("Router did not accept the connection on port 80");
  }
}

A kód működése:

Elöl a PHY paramétereit definiáljuk: a WT_PHY_ADDR a LAN8720A 1-es címe, a WT_PHY_POWER az oszcillátort indító 16-os láb, a WT_PHY_MDC és a WT_PHY_MDIO pedig a menedzsment busz 23-as és 18-as lába. Az ethConnected változó tárolja, hogy kaptunk-e IP-címet, a lastCheck pedig az utolsó ellenőrzés időpontját.

Az onEvent függvényt a rendszer minden hálózati eseménynél meghívja. Az ARDUINO_EVENT_ETH_START eseménynél az ETH.setHostname függvénnyel beállítjuk a gazdagép nevét. Az ARDUINO_EVENT_ETH_CONNECTED eseménynél tudjuk, hogy a kábel csatlakoztatva van. Az ARDUINO_EVENT_ETH_GOT_IP eseménynél kiírjuk az IP-címet, az alhálózati maszkot és az átjárót, az ethConnected változót pedig true-ra állítjuk. Az ARDUINO_EVENT_ETH_DISCONNECTED eseménynél az ethConnected értéke false lesz.

A setup függvényben elindítjuk a soros monitort 115200 baud-on, regisztráljuk az onEvent függvényt a WiFi.onEvent hívással, majd meghívjuk az ETH.begin függvényt. Az ETH.begin argumentumainak sorrendje az ESP32 csomag 3-as verziójában megváltozott, ezért a hívást az ESP_ARDUINO_VERSION_MAJOR direktívával választjuk ki.

A loop függvényben a millis segítségével 5 másodpercenként ellenőrizzük, hogy az Ethernet csatlakoztatva van-e. Ha igen, kiírjuk a kapcsolat sebességét az ETH.linkSpeed függvénnyel és a duplex módot, majd létrehozunk egy WiFiClient objektumot, és a client.connect hívással csatlakozunk az ETH.gatewayIP() címre a 80-as porton, 3000 ms-os időkorláttal. Ha a router elfogadja a kapcsolatot, a hálózat teljesen működik, a kapcsolatot pedig a client.stop hívással zárjuk le.

Eredmény:

Nyissa meg a soros monitort 115200 baud-on, miután eltávolította az IO0 - GND összekötést, és újraindította a kártyát. Néhány másodperc múlva megjelennek az alábbi üzenetek, a routertől kapott IP-címmel.

WT32-ETH01 Ethernet test
ETH started
ETH cable connected
ETH MAC: 24:6F:28:A1:5C:7E
IP address: 192.168.1.57
Subnet mask: 255.255.255.0
Gateway: 192.168.1.1
Link: 100 Mbps, full duplex
Router reachable on port 80
Link: 100 Mbps, full duplex
Router reachable on port 80

Gyakori problémák:

A feltöltés a Failed to connect to ESP32 hibaüzenettel megáll. Ennek oka általában az, hogy az IO0 nincs GND-re kötve indításkor, vagy a TX és RX vezetékek nincsenek keresztbe kötve. Kösse az IO0-t GND-re, ellenőrizze, hogy az adapter TXD lába az RX0-ra, az RXD lába pedig a TX0-ra megy, majd indítsa újra a kártyát, és ismételje meg a feltöltést.

A feltöltés után a soros monitor a waiting for download üzenetet írja ki. Az IO0 és a GND közötti vezeték még be van dugva. Húzza ki, és indítsa újra a tápellátást.

A soros monitoron értelmetlen karakterek jelennek meg. A soros monitor sebessége nem 115200 baud. Állítsa be ezt a sebességet a monitor jobb alsó sarkában.

Megjelenik az ETH started üzenet, de nem jelenik meg IP-cím. A kábel nincs csatlakoztatva, a routeren nincs bekapcsolva a DHCP, vagy a port hibás. Ellenőrizze a kábelt, próbáljon ki másik portot a routeren, és figyelje, megjelenik-e a kábel csatlakoztatva üzenet.

A modul magától újraindul vagy indításkor lefagy. A tápellátás nem elegendő, vagy a feszültség túl lassan nő. Használja az adapter +5V lábát vagy legalább 500 mA-es 5 V-os tápegységet, kerülje az adapter 3V3 lábáról való táplálást, és használjon rövid tápvezetékeket.

A program nem fordul le, és az ETH.begin függvénynél hibát ad. A telepített ESP32 csomag más verziójú, mint amit a program vár. Használjon 2.0.x vagy 3.x verziót, és maradjon kiválasztva az ESP32 Dev Module kártya.

Korlátok és tanácsok:

A modulnak egyetlen 10/100 Mbps-os Ethernet-portja van, a hálózati kábelen keresztüli tápellátás (PoE) nincs, ezért mindig külön tápellátásra van szüksége. Az IO34 - IO39 lábak csak bemenetek, a sorkapcsokon pedig csak az IO35, IO36 és IO39 érhető el. Az ADC2 bemenetek (IO2, IO4, IO12, IO14, IO15) nem olvashatók, amíg a Wi-Fi be van kapcsolva. Az IO0, IO2 és IO12 lábak indítólábak, indításkor nem szabad őket kényszeríteni.

A logikai szint 3.3 V, ezért 5 V-os eszközökhöz szintillesztőt kell használni. A modul -40 °C és +85 °C között üzemeltethető, de célszerű védeni a nedvességtől és a rezgésektől.

A továbbiakban építhet soros-Ethernet átjárót a TXD és RXD lábakkal, webszervert relék vezérléséhez, MQTT csomópontot automatizálásokhoz, vagy hálózaton keresztül, OTA módon frissíthető firmware-rel rendelkező eszközt.