(See the README.md file in the upper level 'examples' directory for more information about examples.)
This example demonstrates basic usage of
Ethernet driver together with
tcpip_adapter. The work flow of the example could be as follows:
- Install Ethernet driver
- Send DHCP requests and wait for a DHCP lease
- If get IP address successfully, then you will be able to ping the device
If you have a new Ethernet application to go (for example, connect to IoT cloud via Ethernet), try this as a basic template, then add your own code.
How to use example
To run this example, it's recommended that you have an official ESP32 Ethernet development board - ESP32-Ethernet-Kit. This example should also work for 3rd party ESP32 board as long as it's integrated with a supported Ethernet PHY chip. Up until now, ESP-IDF supports up to four Ethernet PHY:
RTL8201, additional PHY drivers should be implemented by users themselves.
esp_eth component can drive third-party Ethernet module which integrates MAC and PHY and provides common communication interface (e.g. SPI, USB, etc). This example will take the DM9051 as an example, illustrating how to install the Ethernet driver in the same manner.
See common pin assignments for Ethernet examples from upper level.
Configure the project
See common configurations for Ethernet examples from upper level.
Build, Flash, and Run
Build the project and flash it to the board, then run monitor tool to view serial output:
idf.py -p PORT build flash monitor
(Replace PORT with the name of the serial port to use.)
(To exit the serial monitor, type
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
I (394) eth_example: Ethernet Started I (3934) eth_example: Ethernet Link Up I (3934) eth_example: Ethernet HW Addr 30:ae:a4:c6:87:5b I (5864) tcpip_adapter: eth ip: 192.168.2.151, mask: 255.255.255.0, gw: 192.168.2.2 I (5864) eth_example: Ethernet Got IP Address I (5864) eth_example: ~~~~~~~~~~~ I (5864) eth_example: ETHIP:192.168.2.151 I (5874) eth_example: ETHMASK:255.255.255.0 I (5874) eth_example: ETHGW:192.168.2.2 I (5884) eth_example: ~~~~~~~~~~~
Now you can ping your ESP32 in the terminal by entering
ping 192.168.2.151 (it depends on the actual IP address you get).
See common troubleshooting for Ethernet examples from upper level.
(For any technical queries, please open an issue on GitHub. We will get back to you as soon as possible.)