mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-31 06:01:39 +01:00 
			
		
		
		
	If you develop on windows and need cr/lf files, see this:
    https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_formatting_and_whitespace
    Git can handle this by auto-converting CRLF line endings into LF
    when you add a file to the index, and vice versa when it checks out
    code onto your filesystem. You can turn on this functionality with
    the core.autocrlf setting. If you're on a Windows machine, set it
    to true - this converts LF endings into CRLF when you check out code:
    $ git config --global core.autocrlf true
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|     This sketch shows the Ethernet event usage
 | |
| 
 | |
| */
 | |
| 
 | |
| #include <ETH.h>
 | |
| 
 | |
| static bool eth_connected = false;
 | |
| 
 | |
| void WiFiEvent(WiFiEvent_t event)
 | |
| {
 | |
|   switch (event) {
 | |
|     case SYSTEM_EVENT_ETH_START:
 | |
|       Serial.println("ETH Started");
 | |
|       //set eth hostname here
 | |
|       ETH.setHostname("esp32-ethernet");
 | |
|       break;
 | |
|     case SYSTEM_EVENT_ETH_CONNECTED:
 | |
|       Serial.println("ETH Connected");
 | |
|       break;
 | |
|     case SYSTEM_EVENT_ETH_GOT_IP:
 | |
|       Serial.print("ETH MAC: ");
 | |
|       Serial.print(ETH.macAddress());
 | |
|       Serial.print(", IPv4: ");
 | |
|       Serial.print(ETH.localIP());
 | |
|       if (ETH.fullDuplex()) {
 | |
|         Serial.print(", FULL_DUPLEX");
 | |
|       }
 | |
|       Serial.print(", ");
 | |
|       Serial.print(ETH.linkSpeed());
 | |
|       Serial.println("Mbps");
 | |
|       eth_connected = true;
 | |
|       break;
 | |
|     case SYSTEM_EVENT_ETH_DISCONNECTED:
 | |
|       Serial.println("ETH Disconnected");
 | |
|       eth_connected = false;
 | |
|       break;
 | |
|     case SYSTEM_EVENT_ETH_STOP:
 | |
|       Serial.println("ETH Stopped");
 | |
|       eth_connected = false;
 | |
|       break;
 | |
|     default:
 | |
|       break;
 | |
|   }
 | |
| }
 | |
| 
 | |
| void testClient(const char * host, uint16_t port)
 | |
| {
 | |
|   Serial.print("\nconnecting to ");
 | |
|   Serial.println(host);
 | |
| 
 | |
|   WiFiClient client;
 | |
|   if (!client.connect(host, port)) {
 | |
|     Serial.println("connection failed");
 | |
|     return;
 | |
|   }
 | |
|   client.printf("GET / HTTP/1.1\r\nHost: %s\r\n\r\n", host);
 | |
|   while (client.connected() && !client.available());
 | |
|   while (client.available()) {
 | |
|     Serial.write(client.read());
 | |
|   }
 | |
| 
 | |
|   Serial.println("closing connection\n");
 | |
|   client.stop();
 | |
| }
 | |
| 
 | |
| void setup()
 | |
| {
 | |
|   Serial.begin(115200);
 | |
|   WiFi.onEvent(WiFiEvent);
 | |
|   ETH.begin();
 | |
| }
 | |
| 
 | |
| 
 | |
| void loop()
 | |
| {
 | |
|   if (eth_connected) {
 | |
|     testClient("google.com", 80);
 | |
|   }
 | |
|   delay(10000);
 | |
| }
 |