ETH_TLK110.ino 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*
  2. This sketch shows the Ethernet event usage
  3. */
  4. #include <ETH.h>
  5. #define ETH_ADDR 31
  6. #define ETH_POWER_PIN 17
  7. #define ETH_MDC_PIN 23
  8. #define ETH_MDIO_PIN 18
  9. #define ETH_TYPE ETH_PHY_TLK110
  10. static bool eth_connected = false;
  11. void WiFiEvent(WiFiEvent_t event)
  12. {
  13. switch (event) {
  14. case ARDUINO_EVENT_ETH_START:
  15. Serial.println("ETH Started");
  16. //set eth hostname here
  17. ETH.setHostname("esp32-ethernet");
  18. break;
  19. case ARDUINO_EVENT_ETH_CONNECTED:
  20. Serial.println("ETH Connected");
  21. break;
  22. case ARDUINO_EVENT_ETH_GOT_IP:
  23. Serial.print("ETH MAC: ");
  24. Serial.print(ETH.macAddress());
  25. Serial.print(", IPv4: ");
  26. Serial.print(ETH.localIP());
  27. if (ETH.fullDuplex()) {
  28. Serial.print(", FULL_DUPLEX");
  29. }
  30. Serial.print(", ");
  31. Serial.print(ETH.linkSpeed());
  32. Serial.println("Mbps");
  33. eth_connected = true;
  34. break;
  35. case ARDUINO_EVENT_ETH_DISCONNECTED:
  36. Serial.println("ETH Disconnected");
  37. eth_connected = false;
  38. break;
  39. case ARDUINO_EVENT_ETH_STOP:
  40. Serial.println("ETH Stopped");
  41. eth_connected = false;
  42. break;
  43. default:
  44. break;
  45. }
  46. }
  47. void testClient(const char * host, uint16_t port)
  48. {
  49. Serial.print("\nconnecting to ");
  50. Serial.println(host);
  51. WiFiClient client;
  52. if (!client.connect(host, port)) {
  53. Serial.println("connection failed");
  54. return;
  55. }
  56. client.printf("GET / HTTP/1.1\r\nHost: %s\r\n\r\n", host);
  57. while (client.connected() && !client.available());
  58. while (client.available()) {
  59. Serial.write(client.read());
  60. }
  61. Serial.println("closing connection\n");
  62. client.stop();
  63. }
  64. void setup()
  65. {
  66. Serial.begin(115200);
  67. WiFi.onEvent(WiFiEvent);
  68. ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE);
  69. }
  70. void loop()
  71. {
  72. if (eth_connected) {
  73. testClient("google.com", 80);
  74. }
  75. delay(10000);
  76. }