logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Płytka ESP32 z Wi-Fi oraz przewodowym Ethernet i zasilaniem PoE - ESP32-PoE2 Olimex

p.kaczmarek2 19 Cze 2026 08:30 1425 10

TL;DR LABEL_AI_GENERATED

  • ESP32-PoE2 Olimex łączy ESP32 z Wi‑Fi, Ethernetem przez LAN8720 i zasilaniem PoE, oferując open source/open hardware oraz profil gotowy do uruchomienia w PlatformIO.
  • Na płytce pracuje TPS2378PW zgodny z IEEE 802.3, a konfiguracja Ethernetu opiera się na LAN8720 i ustawieniu pinów MDC/MDIO, PHY oraz zegara.
  • Wybrana wersja bazuje na ESP32-WROVER-E-N4R8 z 4 MB Flash i 8 MB PSRAM, a płytka kosztowała 120 zł.
  • Test połączenia z google.com potwierdził DHCP, rozpoznawanie nazwy hosta i poprawną odpowiedź HTTP 301 z przekierowaniem na www.google.com.
  • Serwer HTTP na porcie 80 działał przewodowo bez Wi‑Fi, a brak separacji galwanicznej wymusza odłączanie Ethernetu przy programowaniu USB i ostrożność z zewnętrznym zasilaniem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
Słuchaj:
  • Płytka ESP32 z Wi-Fi oraz przewodowym Ethernet i zasilaniem PoE - ESP32-PoE2 Olimex
    PoE (Power over Ethernet) to standard, który pozwala na przesyłanie zarówno danych, jak i zasilania przez jeden kabel Ethernet. ESP32-PoE2 od Olimex to płytka zgodna z tym standardem, oferująca dwa rodzaje łączności: bezprzewodową (Wi-Fi) oraz przewodową (Ethernet, przez układ LAN8720). Właśnie tę płytkę chciałbym tu pokazać.
    Płytka ESP32 z Wi-Fi oraz przewodowym Ethernet i zasilaniem PoE - ESP32-PoE2 Olimex
    ESP32-PoE2 to projekt open source i open hardware od Olimex. Pełne źródła projektu (w tym PCB w KiCad) są dostępne na GitHubie. Swój egzemplarz kupiłem za 120 zł. Wybrałem wersję z dodatkową pamięcią, czyli bazującą na ESP32-WROVER-E-N4R8 z 4 MB Flash i 8 MB PSRAM.
    Płytka ESP32 z Wi-Fi oraz przewodowym Ethernet i zasilaniem PoE - ESP32-PoE2 Olimex
    TPS2378PW realizuje zasilanie PoE i jest zgodny ze standardem IEEE 802.3. Wymagane jest napięcie wejściowe co najmniej 37 V. Sama płytka jest w stanie zasilać zewnętrzne układy – posiada wyjścia 24 V / 0.75 A lub 12 V / 1.5 A, a także 5 V / 1.5 A oraz 3.3 V / 1 A, przy łącznej mocy wyjściowej do 25 W.
    Płytka ESP32 z Wi-Fi oraz przewodowym Ethernet i zasilaniem PoE - ESP32-PoE2 Olimex
    Uwaga: ESP32-POE2 nie posiada separacji galwanicznej od zasilania Ethernet, co może powodować pętle masy. Podczas programowania przez USB należy odłączyć kabel Ethernet (jeśli PoE jest aktywne). Podłączanie zewnętrznego zasilania może być niebezpieczne - zaleca się użycie Olimex USB-ISO w celu ochrony komputera i płytki.
    Płytka ESP32 z Wi-Fi oraz przewodowym Ethernet i zasilaniem PoE - ESP32-PoE2 Olimex
    Z dodatkowych peryferiów, mamy tu złącze na kartę microSD, wbudowany konwerter USB na UART do programowania (CH340), kontroler BL4054 do pracy z baterią LiPo, oraz bogate złącza, w tym Olimexowe UEXT.
    Płytka ESP32 z Wi-Fi oraz przewodowym Ethernet i zasilaniem PoE - ESP32-PoE2 Olimex
    Schemat:
    Schemat blokowy i elektryczny płytki ESP32‑PoE2 z sekcjami zasilania, Ethernet i gniazdem SD

    Płytkę programuje w PlatformIO, i to w tym środowisku pokażę kilka przykładów.

    Hello World LAN8720
    Płytkę tę najbardziej wyróżnia LAN8720 i to na nim się tutaj skupię. Najpierw platformio.ini - biblioteki PIO mają już profil tej płytki (esp32-poe-iso), jest również tam gotowa biblioteka do LAN8720.
    
    [env:esp32-poe-iso]
    platform = espressif32
    board = esp32-poe-iso
    framework = arduino
    monitor_speed = 115200
    
    build_flags = 
    	-D ETH_PHY_TYPE=ETH_PHY_LAN8720
    	-D ETH_PHY_ADDR=0
    	-D ETH_PHY_MDC=23
    	-D ETH_PHY_MDIO=18
    	-D ETH_PHY_POWER=12
    	-D ETH_CLK_MODE=ETH_CLOCK_GPIO0_OUT
    	-D BOARD_HAS_PSRAM
    	-mfix-esp32-psram-cache-issue
    
    

    W głównym pliku z kodem, main.cpp, trzeba załączyć nagłówek ETH.h, potem można dodać callback do obsługi zdarzeń, a nawet podłączyć socket pod docelowy host. To pozwoli sprawdzić, czy łączność jest dostępna:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Sprawdziłem odpowiedź do nazwy domenowej google.com - funkcja connect sama zamienia ją na IP.
    Rezultat:
    
    
      ets Jul 29 2019 12:21:46                                      
    rst:0x1 (POWERON_RESET),boot:0x1b (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:DIO, clock div:2                 
    load:0x3fff0030,len:184            
    load:0x40078000,len:12680       
    load:0x40080400,len:2908        
    entry 0x400805c4                   
    Olimex ESP32-POE2 Ethernet Test (v2.x compat)...
    ETH Started                                         
    ETH Connected                                    
    ETH Got IP                                         
    ETH IP: 192.168.0.137
                                                                                   
     Connecting to google.com
                                                         
    HTTP/1.1 301 Moved Permanently
                                                    
    Location: http://www.google.com/
                                                  
    Content-Type: text/html; charset=UTF-8
                                            
    Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-sr
    c 'nonce-rvcm1L9GDkZjYCPWad4kQw' 'strict-dynamic' 'report-sample' 'unsafe-eval' 
    'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other
    -hp
                                                                               
    Date: Thu, 29 Jan 2026 18:19:25 GMT
                                               
    Expires: Sat, 28 Feb 2026 18:19:25 GMT
                                            
    Cache-Control: public, max-age=2592000
                                            
    Server: gws
                                                                       
    Content-Length: 219
                                                               
    X-XSS-Protection: 0
                                                               
    X-Frame-Options: SAMEORIGIN
    
                                                     
                                                                                    
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
     
                                                                                   <
    TITLE>301 Moved</TITLE></HEAD><BODY>
                                               
                                         <H1>301 Moved</H1>
                            
                                                            The document has moved
     
                                                                                   <
    A HREF="http://www.google.com/">here</A>.
                                         
    </BODY></HTML>
                                                                    
    
                                                                                   
     Closing connection
    

    Płytka poprawnie otrzymuje IP przez DHCP od routera, a potem udaje się jej zamienić nazwę hosta na IP i wysłać tam prosty pakiet HTTP. Odpowiedź też zostaje odebrana, widzimy tu, że Google próbuje nas przekierować. ESP również pojawia się na liście klientów DHCP routera.
    Tabela „DHCP Client List” z wpisem „esp32-ethernet” i adresem IP 192.168.0.137


    Serwer HTTP
    Zastanawiało mnie jeszcze, czy można zrobić coś przeciwnego - nie nawiązywanie połączenia, lecz oczekiwanie na nie. W ten sposób przygotowałem prosty serwer, który nasłuchuje na porcie 80 (HTTP) i odbiera pakiety przez przewód LAN:
    
    #include <Arduino.h>
    #include <ETH.h>
    #include <WebServer.h>
    #include <WiFi.h>
    
    
    WebServer server(80);
    
    static bool eth_connected = false;
    
    // In v2.x, the event handler uses WiFiEvent_t and the signature is slightly
    // different
    void onEvent(WiFiEvent_t event) {
      switch (event) {
      case ARDUINO_EVENT_ETH_START:
        Serial.println("ETH Started");
        ETH.setHostname("esp32-ethernet");
        break;
      case ARDUINO_EVENT_ETH_GOT_IP:
        Serial.println("ETH Got IP");
        Serial.print("ETH IP: ");
        Serial.println(ETH.localIP());
        eth_connected = true;
        server.begin();
        Serial.println("HTTP server started");
        break;
      case ARDUINO_EVENT_ETH_DISCONNECTED:
        Serial.println("ETH Disconnected");
        eth_connected = false;
        break;
      case ARDUINO_EVENT_ETH_STOP:
        Serial.println("ETH Stopped");
        eth_connected = false;
        break;
      default:
        break;
      }
    }
    
    void handleRoot() {
      String html = "<!DOCTYPE html><html><head><title>ESP32-POE2</title>";
      html += "<style>body { font-family: Arial; text-align: center; margin-top: "
              "50px; }";
      html += "h1 { color: #0066cc; }</style></head><body>";
      html += "<h1>Hello World from ESP32-POE2!</h1>";
      html += "<p>Ethernet connection is stable and server is running.</p>";
      html += "<p>Uptime: " + String(millis() / 1000) + " seconds</p>";
      html += "</body></html>";
      server.send(200, "text/html", html);
    }
    
    void setup() {
      Serial.begin(115200);
      Serial.println("Olimex ESP32-POE2 Ethernet Test (v2.x compat)...");
    
      WiFi.onEvent(onEvent);
      server.on("/", handleRoot);
    
      // PHY address: 0
      // Power pin: 12
      // MDC pin: 23
      // MDIO pin: 18
      // PHY type: ETH_PHY_LAN8720
      ETH.begin(0, 12, 23, 18, ETH_PHY_LAN8720, ETH_CLOCK_GPIO0_OUT);
    }
    
    void loop() {
      if (eth_connected) {
        server.handleClient();
      }
    }
    

    Biblioteki wszystko obsługują - serwer jest dostępny bez Wi-Fi:
    Okno przeglądarki z komunikatem „Hello World from ESP32-POE2!” i zrzutem logu z terminala

    Podsumowanie
    To niewątpliwie ciekawa płytka, zwłaszcza jak zamierzamy korzystać z PoE. Obecność PSRAM też jest plusem. Co więcej, wszystko jest łatwe w uruchomieniu - mamy pod to gotowe biblioteki, wystarczy skonfigurować piny. Nie było problemu ze zmapowaniem przewodowego Ethernetu pod serwer HTTP czy tam z nawiązaniem połączenia ze światem zewnętrznym.
    Samego PoE nie testowałem, gdyż nie mam takiego zasilacza, ale być może jeszcze do tego wrócę.
    Czy korzystaliście już z PoE w projektach? Czy widzicie potencjał dla takiej płytki?
    Załączniki:
    • ESP32-POE2-user-manual.pdf (771.85 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • ESP32-PoE2_Rev_B_Schematic.pdf (2.04 MB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14771 postów o ocenie 12914, pomógł 659 razy. Jest z nami od 2014 roku.
  • REKLAMA
  • #2 21924375
    TechEkspert
    Redaktor
    Posty: 7321
    Pomógł: 17
    Ocena: 5692
    Widziałbym tę płytkę jako koncentrator/bramka dla IoT, przewodowo połączona z Ethernet i może komunikować się z urządzeniami i czujnikami po magistralach przewodowych oraz np. po ESP-NOW czy też poprzez dołączone transcetivery np. LoRa i inne. Być może w bardziej wymagających instalacjach może być to baza do monitoringu parametrów środowiskowych pomieszczeń technicznych.
  • REKLAMA
  • #3 21924468
    krzbor
    Poziom 29  
    Posty: 1783
    Pomógł: 42
    Ocena: 1072
    Za 170zł można mieć RPi3 z 1GB RAM. Wiem - nie ma PoE, ale podałem to jako przykład. Po prostu cena 120zł wydaje mi się nieproporcjonalnie wysoka.
  • #4 21924470
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14771
    Pomógł: 659
    Ocena: 12914
    Fakt, że cena duża, choć Olimex zawsze chyba był drogi. Szkoda też, że bez obudowy. Muszę się rozejrzeć za czymś podobnym ale w obudowie na szynę DIN. A może coś sam zaprojektuję wydrukuję?
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #5 21924848
    elektronik999
    Poziom 26  
    Posty: 1205
    Pomógł: 8
    Ocena: 85
    >>21924468 to jest płytka do prototypowania, później zamówisz coś podobnego na swojej płytce w granicach 50zł z montażem u chińczyka
    przy 10szt
  • #6 21924925
    TvWidget
    Poziom 39  
    Posty: 4425
    Pomógł: 472
    Ocena: 699
    p.kaczmarek2 napisał:
    Szkoda też, że bez obudowy.
    Formalnie nie jest to kompletne urządzenie tylko płytka do eksperymentów. PoE w tym wykonaniu jest uproszczone. Nie zapewnia galwanicznej izolacji.
  • #7 21924954
    gregor124
    Poziom 29  
    Posty: 1700
    Pomógł: 101
    Ocena: 882
    >>21924848
    Dokładnie to jest płytka, na której uruchamia się oprogramowanie, musi być ona wykonana z odpowiednich komponentów i być przetestowana. Aby potem zamówić gotowe urządzenie u Chińczyka i jeśli coś będzie nie tak, to wiedzieć, że problem jest w kupionym od Chińczyka układzie, a nie np. w programie ;)
    Dlatego nie warto oszczędzać na płytkach prototypowych, bo jak się kupi od razu badziewie, to później nie wiadomo, gdzie problem ;)

    A tak naprawdę to nie warto oszczędzać no chyba że ktoś bierze grosze za projekt i każda złotówka mu się liczy.
    Z tymi chińskimi cudami techniki to często jest tak, że w ciągu miesiąca dwóch zbyt dużo ich umiera w niewyjaśnionych okolicznościach ;)
    Pomogłem? Kup mi kawę.
  • #8 21925020
    krzbor
    Poziom 29  
    Posty: 1783
    Pomógł: 42
    Ocena: 1072
    p.kaczmarek2 napisał:
    Szkoda też, że bez obudowy
    Zobacz to Link. Na ich stronie są też niższe ceny (ale nie wiem co z VAT): Link. Jeśli chodzi o montaż na DIN, to zwykle doklejam uchwyt na DIN (były dodawane do wielu przełączników Zigbee). Można też zakupić osobne uchwyty Link
  • REKLAMA
  • #9 21925149
    error105
    Poziom 14  
    Posty: 481
    Pomógł: 1
    Ocena: 146
    >>21924375
    Tylko po co do tego celu wydawac tyle kasy, jak zwykle esp32c3 superMini połączone kabelkiem USB bedzie równie dobra bramka IOT :)

    Skoro nie ma separacji to dla mnie jest ona mocno trafiona, bo bardzo ogranicza możliwość jej zastosowania :(
  • #10 21925726
    HenrykWilk87
    Poziom 3  
    Posty: 12
    gregor124 napisał:
    Dlatego nie warto oszczędzać na płytkach prototypowych, bo jak się kupi od razu badziewie, to później nie wiadomo, gdzie problem


    Ja zawsze miałem inne zdanie o PCB prototypowych.

    Kupujesz PCB testowe jakiejś przetwornicy to dają PCB od razu 4 warstwy, PCB ogromne, pola masy ogromne, przelotek na termal padach bardzo dużo. Czasami potrafią jeszcze dokleić radiatory.
    Przychodzi co do czego to ten sam układ jest używany w mniejszym PCB jak pcb testowe, a są na nim jeszcze inne elementy tak, że chłodzenie ma 10 razy mniejszą powierzchnię.

    Do samego sprawdzenia układu ok. To testów termiki układu to średnio.
  • #11 21925814
    gregor124
    Poziom 29  
    Posty: 1700
    Pomógł: 101
    Ocena: 882
    >>21925726
    Ale właśnie potwierdziłeś to, o czym ja pisałem.
    Dzięki dobremu wzorcowi wiesz, że na danych podzespołach da się zrobić działające, dobrze i niezawodne urządzenie, a jeśli jest problem z dokonanymi przez ciebie "udoskonaleniami", to znaczy, że problem jest w "udoskonaleniach", a nie w całej koncepcji urządzenia.
    Pomogłem? Kup mi kawę.
Słuchaj:

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy płytki ESP32-PoE2 firmy Olimex jako platformy prototypowej z łącznością Wi‑Fi i Ethernet oraz zasilaniem PoE zgodnym z IEEE 802.3. Omówiono jej zastosowanie jako bramki IoT, koncentratora dla czujników i magistral przewodowych oraz bazę do monitoringu środowiskowego. Zwrócono uwagę na wysoką cenę względem alternatyw, brak obudowy i brak galwanicznej separacji PoE, co ogranicza zastosowania. Pojawiły się też uwagi, że to przede wszystkim płytka do eksperymentów i uruchamiania oprogramowania, a docelowe urządzenie można później wykonać na własnym PCB lub zamówić w produkcji niskoseryjnej, także z montażem i uchwytem DIN.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA