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. :)
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.
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é.
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.
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:
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:
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:
Ha (WiFi AP módban) eljutottunk a beállításokig, a Hardware - LAN menüben állítsuk be a megfelelő lábakat:
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:
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:
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
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
Péter Gábor 2021.09.18. 19:07:18
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.