element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum ESP32 support Ethernet and Wi-Fi
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 6 replies
  • Subscribers 385 subscribers
  • Views 5863 views
  • Users 0 members are here
  • esp32
  • wifi
  • ethernet
Related

ESP32 support Ethernet and Wi-Fi

KKaushik
KKaushik over 2 years ago

I'm trying to connect ESP32 to the internet either via Ethernet connection or Wi-Fi, but priority to Wi-FI.

Below is the code for ethernet running alone, I can work with Wifi in the same way.

/*
 Web client with enc28j60 and EthernetENC
 
 This sketch connects to a test website (httpbin.org)
 and try to do a GET request, the output is printed
 on Serial
 
 by Renzo Mischianti <www.mischianti.org>
 
 https://www.mischianti.org
 
 */
 
#include <SPI.h>
#include <EthernetENC.h>
 
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
//char server[] = "www.google.com";    // name address for Google (using DNS)
char server[] = "httpbin.org";    // name address for Google (using DNS)
 
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDa, 0xAf, 0xfE, 0xEa, 0xFE, 0xED };
 
// Set the static IP address to use if the DHCP fails to assign
#define MYIPADDR 192,168,1,30
#define MYIPMASK 255,255,255,0
#define MYDNS 192,168,1,1
#define MYGW 192,168,1,1
 
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
 
// Variables to measure the speed
unsigned long beginMicros, endMicros;
unsigned long byteCount = 0;
bool printWebData = true;  // set to false for better speed measurement
 
void setup() {
    Serial.begin(115200);
    delay(1000);
    Serial.println("Begin Ethernet");
 
    // You can use Ethernet.init(pin) to configure the CS pin
    //Ethernet.init(10);  // Most Arduino shields
    Ethernet.init(5);   // MKR ETH Shield
    //Ethernet.init(0);   // Teensy 2.0
    //Ethernet.init(20);  // Teensy++ 2.0
    //Ethernet.init(15);  // ESP8266 with Adafruit FeatherWing Ethernet
    //Ethernet.init(33);  // ESP32 with Adafruit FeatherWing Ethernet
 
    if (Ethernet.begin(mac, 20000)) { // Dynamic IP setup
        Serial.println("DHCP OK!");
    }
    else
    {
        Serial.println("Failed to configure Ethernet using DHCP");
        // Check for Ethernet hardware present
        if (Ethernet.hardwareStatus() == EthernetNoHardware) {
          Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
          while (true) {
            delay(1); // do nothing, no point running without Ethernet hardware
          }
        }
        if (Ethernet.linkStatus() == LinkOFF) {
          Serial.println("Ethernet cable is not connected.");
        }
 
          IPAddress ip(MYIPADDR);
          IPAddress dns(MYDNS);
          IPAddress gw(MYGW);
          IPAddress sn(MYIPMASK);
          Ethernet.begin(mac, ip, dns, gw, sn);
          Serial.println("STATIC OK!");
    }
    delay(5000);
 
 
    Serial.print("Local IP : ");
    Serial.println(Ethernet.localIP());
    Serial.print("Subnet Mask : ");
    Serial.println(Ethernet.subnetMask());
    Serial.print("Gateway IP : ");
    Serial.println(Ethernet.gatewayIP());
    Serial.print("DNS Server : ");
    Serial.println(Ethernet.dnsServerIP());
 
   Serial.println("Ethernet Successfully Initialized");
  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("Connected!");
    // Make a HTTP request:
    client.println("GET /get HTTP/1.1");
    client.println("Host: httpbin.org");
    client.println("Connection: close");
    client.println();
  } else {
    // if you didn't get a connection to the server:
    Serial.println("connection failed");
  }
  beginMicros = micros();
}
 
void loop() {
  // if there are incoming bytes available
  // from the server, read them and print them:
  int len = client.available();
  if (len > 0) {
    byte buffer[80];
    if (len > 80) len = 80;
    client.read(buffer, len);
    if (printWebData) {
      Serial.write(buffer, len); // show in the serial monitor (slows some boards)
    }
    byteCount = byteCount + len;
  }
 
  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    endMicros = micros();
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    Serial.print("Received ");
    Serial.print(byteCount);
    Serial.print(" bytes in ");
    float seconds = (float)(endMicros - beginMicros) / 1000000.0;
    Serial.print(seconds, 4);
    float rate = (float)byteCount / seconds / 1000.0;
    Serial.print(", rate = ");
    Serial.print(rate);
    Serial.print(" kbytes/second");
    Serial.println();
 
    // do nothing forevermore:
    while (true) {
      if(client.connected())
        Serial.println("COnnected");
      delay(100);
    }
  }
}

When I tried to merge the code, Its not working successfully

Below code, once it disconnects with WiFi. It doesn't re connect to ethernet. Even when Lan Connected and there is internet.

#include <EthernetENC.h>
#include <SPI.h>
#include <WiFi.h>

#define SS_ETH 5
byte mac[] = { 0xDA, 0xAF, 0xfE, 0xEA, 0xFE, 0xED };

char server[] = "httpbin.org";

EthernetClient ethclient;
WiFiClient wifiClient;

// Variables to measure the speed
unsigned long beginMicros, endMicros;
unsigned long byteCount = 0;
bool printWebData = true;

void setup() {
  Serial.begin(115200);

  // Initialize Ethernet
  Ethernet.init(SS_ETH);
  Ethernet.begin(mac, 20000);

  Serial.print("Local IP (Ethernet): ");
  Serial.println(Ethernet.localIP());
  Serial.print("Subnet Mask: ");
  Serial.println(Ethernet.subnetMask());
  Serial.print("Gateway IP: ");
  Serial.println(Ethernet.gatewayIP());
  Serial.print("DNS Server: ");
  Serial.println(Ethernet.dnsServerIP());

  // Initialize Wi-Fi
  WiFi.begin("ALMIGHT1", "1234567890");
}

int checkConnection() {
  // Check if Ethernet is available
  if (Ethernet.linkStatus() == LinkON) {
    // Use Ethernet connection
    if (!ethclient.connected()) {
      Serial.println("Connecting via Ethernet...");
      if (ethclient.connect(server, 80)) {
        Serial.println("Connected!");
        // Make an HTTP request:
        ethclient.println("GET /get HTTP/1.1");
        ethclient.println("Host: httpbin.org");
        ethclient.println("Connection: close");
        ethclient.println();
        delay(5000);
        return 1;
      } else {
        // If you didn't get a connection to the server:
        Serial.println("Connection failed");
      }
      beginMicros = micros();
    }
  } else {
    // Use Wi-Fi connection
    if (WiFi.status() != WL_CONNECTED) {
      Serial.println("Connecting via Wi-Fi...");
      WiFi.begin();
    }
    if (WiFi.status() == WL_CONNECTED) {
      Serial.print("Connected to Wi-Fi. Local IP: ");
      Serial.println(WiFi.localIP());
      // Additional Wi-Fi initialization if needed
    }
  }
  return 0;
}

void loop() {
  int i = checkConnection();

  if (i) {
    int len = ethclient.available();
    if (len > 0) {
      byte buffer[80];
      if (len > 80) len = 80;
      ethclient.read(buffer, len);
      if (printWebData) {
        Serial.write(buffer, len);  // Show in the serial monitor (slows some boards)
      }
      byteCount += len;
    }
  

    if (!ethclient.connected()) {
      endMicros = micros();
      Serial.println();
      Serial.println("Ethernet disconnected.");
      ethclient.stop();
      Serial.print("Received ");
      Serial.print(byteCount);
      Serial.print(" bytes in ");
      float seconds = (float)(endMicros - beginMicros) / 1000000.0;
      Serial.print(seconds, 4);
      float rate = (float)byteCount / seconds / 1000.0;
      Serial.print(", rate = ");
      Serial.print(rate);
      Serial.print(" kbytes/second");
      Serial.println();
    }
  } else {
    if (WiFi.status() != WL_CONNECTED) {
      Serial.println("Wi-Fi disconnected.");
    }
  }

  // Other code logic

  delay(1000);
}

Code stuck at

Wi-Fi disconnected.
Wi-Fi disconnected.
Wi-Fi disconnected.
Wi-Fi disconnected.
Wi-Fi disconnected.
Wi-Fi disconnected.
Wi-Fi disconnected.
Wi-Fi disconnected.

  • Sign in to reply
  • Cancel

Top Replies

  • shabaz
    shabaz over 2 years ago in reply to shabaz +1
    If the above theory is correct, then an option may be to simply add this after line 50: ethclient . stop (); You may have to change your logic, if you don't want that HTTP GET to occur repeatedly…
Parents
  • shabaz
    0 shabaz over 2 years ago

    Hi,

    You've got some unclear logic going on (probably a good idea to document the functions and return values with comments).

    Anyway, the checkConnection() function only ever returns 1 if you have a network connection via Ethernet it seems? and will never return 1 under any other circumstance. Is that intentional?

    In your loop() function,  on line 77, you check if the return value is 1, and then proceed on line 90 to check if the Ethernet is unplugged, which is unlikely to occur since you just checked on line 77 that it was connected. Therefore I'm not sure what your intent there was. If you meant  to do something different then you need to change that.

    In any case, I suspect that's not the core problem. There may be a problem in the stack, that unplugging the Ethernet didn't cause the TCP connection to disconnect. The keepalive is long (maybe 50 minutes? I can't recall*). As a result, perhaps line 45 i.e. if (!ethclient.connected()) may be returning false, i.e.the code thinks it is still connected. You'd need to investigate with print debug statements in that area, and also perhaps trying to disconnect the connection explicitly if the LinkStatus indicates the cable is unplugged.

    All the above is guesswork, since I have not tried such a scenario.

    * EDIT: a simple test would be to simply walk away for an hour or so, and see if the "Wi-Fi disconnected" messages stop,and the Ethernet works again.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • shabaz
    0 shabaz over 2 years ago

    Hi,

    You've got some unclear logic going on (probably a good idea to document the functions and return values with comments).

    Anyway, the checkConnection() function only ever returns 1 if you have a network connection via Ethernet it seems? and will never return 1 under any other circumstance. Is that intentional?

    In your loop() function,  on line 77, you check if the return value is 1, and then proceed on line 90 to check if the Ethernet is unplugged, which is unlikely to occur since you just checked on line 77 that it was connected. Therefore I'm not sure what your intent there was. If you meant  to do something different then you need to change that.

    In any case, I suspect that's not the core problem. There may be a problem in the stack, that unplugging the Ethernet didn't cause the TCP connection to disconnect. The keepalive is long (maybe 50 minutes? I can't recall*). As a result, perhaps line 45 i.e. if (!ethclient.connected()) may be returning false, i.e.the code thinks it is still connected. You'd need to investigate with print debug statements in that area, and also perhaps trying to disconnect the connection explicitly if the LinkStatus indicates the cable is unplugged.

    All the above is guesswork, since I have not tried such a scenario.

    * EDIT: a simple test would be to simply walk away for an hour or so, and see if the "Wi-Fi disconnected" messages stop,and the Ethernet works again.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • shabaz
    0 shabaz over 2 years ago in reply to shabaz

    If the above theory is correct, then an option may be to simply add this after line 50:

    ethclient.stop();

    You may have to change your logic, if you don't want that HTTP GET to occur repeatedly. It's up to you to decide if this is an appropriate solution or not, because it depends on logic as mentioned, plus on how frequently you wish to send messages.  It's not a lot of overhead if you're not sending many messages, and may prevent some weird scenarios, but you need to think about it and design accordingly,

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • KKaushik
    0 KKaushik over 2 years ago in reply to shabaz

    Thanks for the suggestion I added some more debug lines to see whats the error were.
    Like I mentioned earlier is, what I'm trying to achieve is:
    1. ESP32 checks for successful Ethernet connection, if it available connects to it. (Don't even turn on Wifi, if Wifi was on turn it off)
    2. If Ethenet not available, turn off ethernet and connects to Wifi SSID and pass, reads from ROM (ROM part I'll add later).
    3. While checking connection next time, It check again for ethernet 1st. Then moves to Wifi checking.

    Note : don't want to use Disconnect ethernet function in Checkconnection function, as I want to use same in my main code.

    So Below code is working fine except 2 issues:
    1. It takes a bit longer to connects to Wifi (5-6 sec) and disconnects to Wifi(8-9 sec). usually I see ESP32  disconnects immediately. Let me know if I'm wrong.
    Turned on Hotspot at 13:04:18.456, it seems okay and reasonable while connecting

    13:04:18.456 -> ..........Wi-Fi not Connected
    13:04:19.357 -> No Internet Connected.
    13:04:20.373 -> Connecting via Wi-Fi...
    13:04:20.467 -> ..........Wi-Fi not Connected
    13:04:21.368 -> No Internet Connected.
    13:04:22.361 -> Connecting via Wi-Fi...
    13:04:22.454 -> ..........Wi-Fi not Connected
    13:04:23.371 -> No Internet Connected.
    13:04:24.389 -> Connecting via Wi-Fi...
    13:04:24.468 -> ..........Wi-Fi not Connected
    13:04:25.370 -> No Internet Connected.
    13:04:26.369 -> Wi-Fi Connected.

    Turned OFF Hotspot at: but why does it lt takes 7 sec to show Wifi Disconnected?
    13:06:02.377 -> Wi-Fi Connected.
    13:06:03.379 -> Wi-Fi Connected.
    13:06:04.375 -> Wi-Fi Connected.
    13:06:05.367 -> Wi-Fi Connected.
    13:06:06.384 -> Wi-Fi Connected.
    13:06:07.346 -> Wi-Fi Connected.
    13:06:08.375 -> Wi-Fi Connected.
    13:06:09.381 -> Wi-Fi Connected.
    13:06:10.391 -> Connecting via Wi-Fi...


    2. When connected to Ethernet, it doesn't read any data from Server. 
    Ethernet LINKON
    Connecting via Ethernet...
    Connected!
    Checking if data Available
    
    Received 0 bytes in 0.0005, rate = 0.00 kbytes/second
    Ethernet LINKON
    Connecting via Ethernet...
    Connected!
    Checking if data Available
    
    Received 0 bytes in 0.0002, rate = 0.00 kbytes/second


    Also if you could you also please let me know is there any use of cofig Ethernet Port with 

    1. #define MYIPADDR 192,168,1,30
    2. #define MYIPMASK 255,255,255,0
    3. #define MYDNS 192,168,1,1
    4. #define MYGW 192,168,1,1

    Thanks for your support.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • KKaushik
    0 KKaushik over 2 years ago in reply to KKaushik

    Also it does acting strange sometimes. As doesn't connects to Wifi at all. After switching from ethernet or Turning on/off the Hotspot.

    13:24:07.960 -> Connecting via Wi-Fi...
    13:24:08.085 -> ..........Wi-Fi not Connected
    13:24:08.973 -> No Internet Connected.
    13:24:10.127 -> Connecting via Wi-Fi...
    13:24:10.218 -> ..........Wi-Fi not Connected
    13:24:11.119 -> No Internet Connected.
    13:24:12.133 -> Connecting via Wi-Fi...
    13:24:12.225 -> ..........Wi-Fi not Connected
    13:24:13.139 -> No Internet Connected.
    13:24:14.132 -> Connecting via Wi-Fi...
    13:24:14.224 -> ..........Wi-Fi not Connected
    13:24:15.140 -> No Internet Connected.
    13:24:16.269 -> Connecting via Wi-Fi...
    13:24:16.361 -> ..........Wi-Fi not Connected
    13:24:17.276 -> No Internet Connected.
    13:24:18.417 -> Connecting via Wi-Fi...
    13:24:18.509 -> ..........Wi-Fi not Connected
    13:24:19.411 -> No Internet Connected.
    13:24:20.540 -> Connecting via Wi-Fi...
    13:24:20.641 -> ..........Wi-Fi not Connected
    13:24:21.545 -> No Internet Connected.
    13:24:22.685 -> Connecting via Wi-Fi...
    13:24:22.778 -> ..........Wi-Fi not Connected
    13:24:23.685 -> No Internet Connected.
    13:24:24.838 -> Connecting via Wi-Fi...
    13:24:24.931 -> ..........Wi-Fi not Connected

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • shabaz
    0 shabaz over 2 years ago in reply to KKaushik

    You mention "So Below code is working fine except 2 issues" but I think you forgot to supply the code. Can you supply the latest code that your debug output refers to?

    Also, just curious how come you're doing such a scheme. Why does Ethernet take priority over WiFi? The code might be clearer if it simply performs the communication on whatever connection is available. Perhaps if it was battery-powered there may be a desire to avoid WiFi if Ethernet is available, but it seems to me that if it is tethered by a cable anyway (Ethernet) then does that mean the device has a power cable connection too.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • KKaushik
    0 KKaushik over 2 years ago in reply to shabaz

    Here is the complete code for the above 2 issues.

    #include <EthernetENC.h>
    #include <SPI.h>
    #include <WiFi.h>
    
    #define SS_ETH 5
    byte mac[] = { 0xDA, 0xAF, 0xfE, 0xEA, 0xFE, 0xED };
    
    char server[] = "httpbin.org";
    
    EthernetClient ethclient;
    WiFiClient wifiClient;
    
    // Variables to measure the speed
    unsigned long beginMicros, endMicros;
    unsigned long byteCount = 0;
    bool printWebData = true;
    
    void setup() {
      Serial.begin(115200);
    
      // Initialize Ethernet
      Ethernet.init(SS_ETH);
      Ethernet.begin(mac, 10000);
    
      Serial.print("Local IP (Ethernet): ");
      Serial.println(Ethernet.localIP());
      Serial.print("Subnet Mask: ");
      Serial.println(Ethernet.subnetMask());
      Serial.print("Gateway IP: ");
      Serial.println(Ethernet.gatewayIP());
      Serial.print("DNS Server: ");
      Serial.println(Ethernet.dnsServerIP());
    
      //WiFi.begin("ALMIGHT1", "1234567890");
    }
    
    int checkConnection() {
      // Check if Ethernet is available
      if(ethclient.connected() && (Ethernet.linkStatus() == LinkON))
        return 1;
      if (Ethernet.linkStatus() == LinkON) {
        // Use Ethernet connection
        Serial.println("Ethernet LINKON");
        if (!ethclient.connected()) {
          Serial.println("Connecting via Ethernet...");
            beginMicros = micros();
            WiFi.disconnect();
            //delay(5000);
            return 1;
        }
      }
      else{
        Serial.println("Not Successfull Ethernet Connection");
      }
    
     if (WiFi.status() == WL_CONNECTED)
        return 0;
      // Use Wi-Fi connection
      WiFi.begin("ALMIGHT1", "1234567890");
      Serial.println("Connecting via Wi-Fi...");
      for (int i = 0; i < 10; i++) {
        if ((WiFi.status() == WL_CONNECTED))
          break;
        delay(100);
        Serial.print(".");
      }
    
      if (WiFi.status() == WL_CONNECTED) {
        Serial.print("Connected to Wi-Fi. Local IP: ");
        Serial.println(WiFi.localIP());
        // Additional Wi-Fi initialization if needed
      }
      else{
        Serial.println("Wi-Fi not Connected");
      }
    
      return 0;
    }
    
    void loop() {
      int i = checkConnection();
    
      if (i) {
        if (ethclient.connect(server, 80)) {
            Serial.println("Connected!");
            // Make an HTTP request:
            ethclient.println("GET /get HTTP/1.1");
            ethclient.println("Host: httpbin.org");
            ethclient.println("Connection: close");
            ethclient.println();
        }
        
        int len = ethclient.available();
        Serial.println("Checking if data Available");
        if (len > 0) {
          Serial.println("Data Available");
          byte buffer[80];
          if (len > 80) len = 80;
          ethclient.read(buffer, len);
          if (printWebData) {
            Serial.write(buffer, len);  // Show in the serial monitor (slows some boards)
          }
          byteCount += len;
        }
        endMicros = micros();
        Serial.println();
    
        Serial.print("Received ");
        Serial.print(byteCount);
        Serial.print(" bytes in ");
        float seconds = (float)(endMicros - beginMicros) / 1000000.0;
        Serial.print(seconds, 4);
        float rate = (float)byteCount / seconds / 1000.0;
        Serial.print(", rate = ");
        Serial.print(rate);
        Serial.print(" kbytes/second");
        Serial.println();
        //ethclient.stop();
      } 
      
      else {
        if (WiFi.status() == WL_CONNECTED) {
          Serial.println("Wi-Fi Connected.");
        }
        else
         Serial.println("No Internet Connected.");
      }
    
      // Other code logic
    
      delay(1000);
    }
    


    There is no specific reason, it is just that ethernet speed could be better than a WiFi connection. It is powered with a 12V power adapter at the moment.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube