WT32-ETH01 (ESP32 vezetékes LAN-al)

Már jó két hónapja feltűnt az Aliexpressen a WT32-ETH01 lapka, rendeltem is belőle tesztre, de eddig pihentettem, mivel a háttérben a MicroPython alapú mPyEasy-t fejlesztgettem és ezzel akartam tesztelgetni. Most értem el arra a szintre, hogy akár élesben is lehessen demózni. :)

wt32.jpg

Egybegyúrja a WT32-S1 (mezei kétmagos ESP32-DOWDQ6, olyan mint a WROOM) lapkát a LAN8720 modullal, eredetileg soros porti LAN átalakítónak szánta a gyártó a kütyüt, de hol szokott az engem zavarni mit szeretne a gyártó?
Én a lehetőséget látom. :) Mondjuk jobban örültem volna, ha van PSRAM-al szerelt változata is, de üsse kő, 520kB-al is lehet valamit kezdeni.

Ahonnan én rendeltem anno, ott már elfogyott, de azért pár helyen még kapható az Aliexpressen most is.
Cirka 8 dolláros ára - nekem még free shippingel - szerintem nagyon baráti, de a 3 dollár szállítási költséggel sem túl drága (szumma 11) - igaz egy 15 dolláros Orange Pi One-hoz arányosítva az ár/érték arány már nem olyan jó, de bizonyos célfeladatokra egy mikroszámítógép néha túlzás.
Megj: a SeedStudio-nál is megrendelhetjük, ha a 6 dolláros árán felül kicsengetjük a 10 dolláros szállítási költséget. (szumma 16)
Maradjunk annyiban, hogy ez nem 6 dolláros lapka a teljes bekerülési költséget figyelembe véve.

Az eszközt az 5V és GND lábain tudjuk megtáplálni, értelemszerűen 5V-os adapterrel. (lehet persze 3V-on is a megfelelő lábon, ha dúskálunk 3V-os adapterekben) Egyébként nagyjából 5V 0.16A-t fogyaszt, ha csak a LAN aktív. Ha a WiFi+LAN rész is megy egyidőben, ez egészen 0.2A-ig felmehet.

wt32power.jpg

Amennyiben nem akarjuk túl messzire vinni, akkor passzív-POE feladóval is egyszerűsíthetjük a kábelezést, viszont arra felhívnám a figyelmet, hogy kb 10méteren túl már jelentős feszültség-esést fog elszenvedni a tápellátás. Ha erre az útra lépünk, ez esetben nagyobb távra ezért egy 12V-os tápot javasolnék a passzív POE feladó részére (ezzel úgy kb 70méterig jók lehetünk), a fogadó végre pedig ebben az esetben kell egy 12V->5V DC-DC adapter a WT32-ETH01 5V lába elé.

ppoe.jpg

A fenti képen látható passzív PoE feladó és leválasztó kábel. Mivel ez az eszköz NEM PoE képes, ezért ilyen módon tudjuk megoldani az egy kábelen történő tápellátását. A passzív PoE (B típusú) úgy működik, hogy az Ethernet kommunikáció által nem használt két érpáron továbbítja a tápellátást, a másik oldalon pedig leveszi azt egy DC csatlakozó formájában, teljesen megkerülve a LAN csatlakozót.

poe_work.jpg

Ha IEEE 802.3af kompatibilis PoE switchünk van, akkor pedig egy ehhez hasonló aktív eszközzel tudjuk átalakítani az ~50V-ot 5V-ra: TL-POE10R

Tehát még egyszer: az eszköz önmagában NEM PoE képes, hanem az 5V és GND vagy a 3.3V és GND lábain kell megtáplálni!

Ha már megszereztük, elégedetten nézegethetjük,
de hogyan tudunk rá működtető rendszert varázsolni?

Tegyük fel, hogy nem vagyunk programozók, és valami kész megoldást szeretnénk. Az előző cikkemben szereplő Tasmota32, ESPEasy32 vagy mPyEasy-vel aránylag könnyen beüzemelhető a kütyü.

A hivatkozott cikk az ESP32 és a vezetékes LAN-ról szóló, javaslom jelen cikk előtt annak átböngészését, mivel csak a különbségeket fogom kiemelni az ott leírtakhoz képes. A bekötést elintézték helyettünk, az előző cikkben leírt lábak nagy része stimmel, ahogy jeleztem három olyan van, amit variálnak az egyes modellek, ezek: az MDC, MDIO és POWER lábak.

A LAN8720 által használt ESP GPIO-k esetünkben az alábbiak: 

ESP32 LAN8720 board
GPIO22 - EMAC_TXD1 TX1
GPIO19 - EMAC_TXD0 TX0
GPIO21 - EMAC_TX_EN TX_EN
GPIO26 - EMAC_RXD1 RX1
GPIO25 - EMAC_RXD0 RX0
GPIO27 - EMAC_RX_DV CRS
GPIO00 - EMAC_TX_CLK nINT/REFCLK (50MHz) (felhúzó ellenállással, ha nincs az ESP lapon)
GPIO23 - SMI_MDC MDC
GPIO18 - SMI_MDIO MDIO
GPIO16 - PHY_POWER PWR ENABLE

 

A PHY_ADDR értéke 1. Látható, hogy egyetlen GPIO-ban tér el az előző cikkben leírttól, ez pedig a POWER láb. Aki elolvasta az ESP32 és MicroPython c. cikket azt is sejti miért van ez, ugyanis PSRAM-al szerelt WROVER-t használtam tesztre, ahol a GPIO16-ot a rendszer másra használja. Viszont mivel a WT32-S1 nem tartalmaz PSRAM-ot, ezért a GPIO16-ot nyugodt szívvel használhatja ez a LAN modul.

A LAN modul által szabadon hagyott ESP32 lábak elérhetőek a lapon:

wt32_pins.jpg

A program feltöltése az eszközre annyiban körülményesebb, hogy nincs USB vezérlő a lapon, ezért elő kell venni UART-USB illesztőnket, ami lehet például egy CP2102, a TX-RX lábait a szokásos keresztkötéssel rápattintani és feltolni a programot. A GPIO-0-t az ESP8266-nál már begyakorolt módon GND-re húzzuk, így lépve programozó módba az ESP32-n is. (A feltöltéshez elég szuflát tud leadni a CP2102, de a későbbi teszteléshez már kevés lesz, mivel 200mA-t nem tud leadni)

Vizuális beállítottságúak számára így néz ki a kábelezés a feltöltéshez:

wt32prog.jpg

mPyEasy

Első körben letöltjük az mPyEasy kiadási oldalról a legújabb binárist.

Miután az UART-USB illesztőt sikeresen bekötöttük, a Thonny segítségével bármilyen micropython alapú firmware-t könnyen ki tudunk pörkölni a csatlakoztatott ESP32-re:

screenshot_20201119_211139.jpg

Ha (WiFi AP módban) eljutottunk a beállításokig, a Hardware - LAN menüben állítsuk be a megfelelő lábakat:

wt32_mpy1.jpg

Ne felejtsük el a Config lapon engedélyezni a LAN használatát, a WiFi használatot pedig tiltsuk le, vagy állítsuk be úgy, hogy WiFi AP módban induljon, ha nem sikerül LAN-ra kapcsolódnia. Ugyanis jelenleg úgy tűnik, a PSRAM-al nem rendelkező eszközökön - amilyen ez is - a MicroPython nem képes egyidőben WiFi és LAN kapcsolatot kezelni. (PSRAM-al rendelkező eszközön megy egyszerre mindkettő)

Újraindítást követően ha élő LAN kábelt kapott az eszköz, IP címet fog kapni DHCP-n:

wt32_mpy2.jpg

Látható az is, hogy ebben bizony csak 108kB szabad memória leledzik.

 

ESPEasy32

A hivatalos kiadások közül letöltött ZIP állományból a "ESP_Easy_mega_20201102_custom_ESP32_4M316k_ETH-factory.bin" nevűt egy lépésben ráírhatjuk esptool segítségével.
Ha eljutottunk az ESPEasy konfig-felületére, a Hardware lapon az alábbi beállításokkal tudjuk életre csiholni a LAN8720-at:

Preferred network: Ethernet
Ethernet PHY type: LAN8710
Ethernet PHY Address: 1
GPIO MDC: GPIO-23
GPIO MIO: GPIO-18
GPIO POWER: GPIO-16
Ethernet Clock: External crystal oscillator

Tasmota32

Ebből csak egyféle bináris van a Jason2866 tárolóból le tudjuk tölteni a nem-hivatalos tasmota-ethernet.bin bináris állományt, a hivatalos tárolóból pedig az egyéb szükséges fájlokat, amiket a korábban leírt módon esptool segítségével tölthetünk fel.
A Tasmota dokumentációban szerepel, hogy a WT32-ETH01 az alábbi sablonnal üzemelhető be:

{"NAME":"WT32-ETH01","GPIO":[1,1,1,1,1,1,0,0,1,0,1,1,3840,576,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1],"FLAG":0,"BASE":1}

Ha valamiért ez kevés a korábban írt parancsokkal ( Ethernet 1 EthType 0 EthClockMode 0 EthAddress 1 ) próbálkozhatunk a Tasmota Console-ban.

 

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr6016292802

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

CodeMedve 2021.03.30. 00:59:25

Szia!
Köszönöm a cikket!
Kb 2 hete küzdök pár db wt32-eth01 board-al.
Egyszerűen sehogy sem sikerül életre kelteni a fenti fw-k egyikével sem.
Flash tartalmát Thonny-val tudom törölni, fw-t fel tudom tölteni rá, de utána nem tér magához.

mpyeasy-10007-beta-espidf3-4mb fw-vel:
Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5020
load:0x40078000,len:11608
load:0x40080400,len:6152
entry 0x400806c0
[1B][0;31mE (740) spiram: SPI RAM enabled but initialization failed. Bailing out.[1B][0m
[1B][0;31mE (125) spiram: SPI RAM not initialized[1B][0m
Loading settings
Loading AdvSettings
Init hardware...
Loading HW settings
PSRAM not found - expect problems!
Loading Pinout settings
hwic spic
Init network...

Brownout detector was triggered

Hajtottam tápegységről is mind a 3.3V lábon és mind a 5V lábon is, de brownout reset bennmarad.

ESP_Easy_mega_20210223_normal_ESP32_4M316k_ETH.bin fw-vel:

ets Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:1
load:0x3f400020,len:424424

ESP_Easy_mega_20210223_normal_ESP32_4M316k_ETH-factory.bin fw-vel:

ets Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371

Érdekesség, hogy sima esp-wroom32 modult simán életre tudom kelteni.

Tudsz segíteni, hogy mihez kezdjek?

eNeS 2021.03.30. 18:24:22

@CodeMedve: Egyértelműen tápellátás hiba. Nekem is írt ilyet egészen addig, míg elő nem vettem egy 5V2A tápegységet. Tápkábel csere is segíthet, ha nagyon vékonyak az erei, akkor nem megy át rajta elég teljesítmény.

Péter Gábor 2021.09.18. 19:07:18

Szia,

mPyEasy-ben van lehetőség saját python scriptet futtatni? Udp szervert szeretnék futtatni, a beérkező adat alapján feltételekkel gpio-t vezérelni.

eNeS 2021.09.18. 19:09:39

Közvetlen módon nincs. Igazából örülök, hogy az egyszerű Rules-ok lefutnak a WROOM 100kb memóriájában. A WROVER-ben vannak még tartalékok, mert ott 4MB memóriával lehetne gazdálkodni. Ha értesz a Python-hoz, akkor a C013 kontroller forrásának módosításával tudsz készíteni egy UDP figyelő, egyedi kontrollert.

eNeS 2022.06.14. 16:56:30

@CodeMedve: időközben én is találkoztam ilyen hibával, 5V 0.6A tápegységgel reprodukálható, de egy 470uF kondenzátort kötve az ESP32 "EN" és "GND" lába közé, a hiba áthidalható.

julio12345 2022.08.18. 18:15:05

Nekem az RJ45 halozat status led-ek (Green: connected, Yellow: data in/out) nem igazan müködnek. Masnal is ez a helyzet?

eNeS 2022.08.18. 18:16:20

@julio12345: Gyanítom jól látod, a zöld villog kizárólag akkor, ha adatátvitel van, és a Tasmota már elindult. A sárgát sose láttam még világítani.

julio12345 2022.08.18. 20:00:44

@eNeS: Időközben rajöttem, az összes forgalomban található WT32-ETH01 rossz RJ-45 csatlakozoval van szerelve. Ezért nem müködik. Fordított LED sorrend, fordított polaritás!

eNeS 2022.08.18. 20:02:45

@julio12345: Még szerencse, hogy az Ethernet kapcsolat legalább működik benne. Némelyiken nagyon gyenge viszont a 3V-os integrált tápja, ezért kell az EN és GND közé egy kondenzátor, hogy el tudjon indulni. 10-ből 2 ilyet találtam eddig.

Támogatók:
okosotthon.jpg
allterco.jpg

Utolsó kommentek

  • faterkm: Jó ötlet, köszönöm. Most kicsit megyek utó-nyaralni, de később kipróbálom és mindenképpen referálo... (2024.08.30. 17:35) Tasmota firmware
  • eNeS: Az 5V az jó ha stabil, viszont a 3V-os tápra az ESP elé tehetnél egy kicsit nagyobb kondenzátort p... (2024.08.29. 19:34) Tasmota firmware
  • faterkm: Köszönöm, hogy foglalkozol a problémámmal. További infók: a "rendszerem"-ben 5 ilyen modul van, és... (2024.08.29. 19:32) Tasmota firmware
  • eNeS: @faterkm: az nem jó jel. 5V 3A-es tápegyésggel próbáltad már? Nem kizárt egyébként a lapon levő fe... (2024.08.29. 17:10) Tasmota firmware
  • faterkm: Pontosan ezt valósítottam meg: bitekmindenhol.blog.hu/2018/02/03/wifi_mini_rele_5v_esp-01s és azt ... (2024.08.29. 17:06) Tasmota firmware
  • Utolsó 20

Címkék

433mhz (12) alkatrész (22) alternatív kapcsoló (2) amg8833 (1) analóg (2) android (1) arduinoeasy (5) audio (1) automatizálás (3) bemenet (3) bk7231n (1) ble (1) blitzwolf (4) bluetooth (9) bridge (2) camhi (2) csináld magad (22) dimmer (1) diy (28) do-it-yourself (27) domoticz (11) ds18b20 (1) ebay (3) érintő (2) érintőkapcsoló (7) érzékelő (11) esp-01 (2) esp32 (11) esp8266 (21) espeasy (2) espurna (1) esp projekt (18) Eview7 (1) ewelink (1) feldolgozó (1) felhő (1) fényérzékelő (1) firmware (7) flame detector (1) fogyasztásmérő (5) ftdi (1) füstérzékelő (1) gázérzékelő (1) gpio (1) hang (4) hangjelző (1) hőmérséklet (22) https (1) ikea (1) impulzus relé (1) izzó (2) javascript (1) jelenlétérzékelő (3) kamera (18) keresztkapcsoló (1) kézmozdulat (1) kijelző (3) kimenet (21) konnektor (8) lan (9) lángérzékelő (2) led (3) linux (4) logic level converter (1) lua (1) lux (1) maple mini (2) mcu (3) micropython (1) mikrovezérlő (2) milkv (1) mobil (1) mosfet (1) mozgás (5) mpyeasy (4) mq-2 (2) mqtt (3) működtető rendszer (5) multiroom (1) nedvesség (1) neo (1) neopixel (1) Node-RED (1) nvr (4) nyitás (7) okosház (4) okosizzó (3) okosotthon (8) oled (1) onvif (8) openbeken (1) opencv (1) openwrt (4) orange pi (4) páratartalom (6) php (1) pico (1) pi pico (2) poe (1) programozás (9) projekt (25) proximity olvasó (1) python (2) raspberry (14) raspberry projekt (6) raspbian (1) reed (1) relé (27) rf (2) rgb (6) rock pi (1) rögzítő (2) rp2 (1) rpieasy (1) rtc (1) shelly (24) smartwise (1) solid state relay (1) sonoff (20) SonOTA (1) soros (1) ssl (1) ssr (1) stm32 (4) szenzor (11) szilárdtest relé (1) szintillesztő (2) sziréna (1) szkript (3) szünetmentesítés (4) t1 (1) tasmota (8) távirányító (3) Telegram (1) termékteszt (85) termosztát (2) touch (2) ups (5) usb (7) usb hub (1) valós idejű óra (1) vezérlések (20) vezérlő (5) világítás (5) villanykapcsoló (12) webkamera (1) wiegand (1) wifi (32) ws2812 (1) xiaomi (5) xm (4) xmeye (4) yoosee (1) zigbee (16) zwave (3) Címkefelhő
süti beállítások módosítása