Submarine Project (Ethernet Connectivity Troubles)

Hello!
My group and I are doing a project where we are designing a submersible vehicle and need to communicate with our arduino when it is about 200 feet deep in water. We figured that ethernet cable would be the best way to relay information across such a distance and still keep it watertight. We have have tried to run our arduino uno with an ethernet shield but cannot get our computer to recognize our board. We need the MAC address of the shield and do not know how to find it.
Also, we just wanted to be sure: you can communicate with an arduino via ethernet just like* a usb, correct? (We do not want to connect to the internet.) Thanks in advance for your help!!

*We know that we'll have to power the arduino using a separate battery.

Get a USB-to-CAT5 converter and use the CAT5 cable to carry those signals. Don't use Ethernet, although this type of cable is commonly called "Ethernet cable."

If you are plugging any Ethernet device into a computer without any switch or hub, you may need a "crossover cable" although most computers seem to be able to do the crossover function automatically. You can think of it as plugging the TX from your Arduino into the RX of a receiving device. A standard "straight" Ethernet cable connects TX to TX.

Also, I feel I should add that we have tried converting the usb output from a regular arduino to ethernet and communicating with our controller that way as well, but the computer still does not recognize the board.

The MAC address should be on a sticker or on the box it came in. If you can't find the MAC anywhere or don't have the packaging, you can always create one. Being that it won't be online, you can pick any MAC address you wan't using the Ethernet.begin() function to specify one.

Ethernet.begin(mac); 
Ethernet.begin(mac, ip); 
Ethernet.begin(mac, ip, dns); 
Ethernet.begin(mac, ip, dns, gateway); 
Ethernet.begin(mac, ip, dns, gateway, subnet);

Using a standard ethernet cable will work perfectly fine at that distance and won't require any sort of coverter. The ethernet shield was designed for exactly this use. Connect an arduino to a computer or any network.

What kind of data will you be sending. Ethernet shields are commonly used to communicate with a server to send and receive data. I used one a while ago to send data to a website hosted on a local laptop.

Maybe fiber optic would be better.
Or not. Looking at digikey, parts are pretty expensive, vs say a simple Ethernet module

Divinity82:
What kind of data will you be sending. Ethernet shields are commonly used to communicate with a server to send and receive data. I used one a while ago to send data to a website hosted on a local laptop.

We're just trying to send data from a couple of sensors connected to the arduino to our computer. Since our experiment will be outside, we are looking to not use the internet to transfer data.

I would definitely go with MorganS on this one. A USB extender (via ethernet cable) would be far, far easier to deal with. I'm not quite sure about maximum length though. I've definitely seen 50 meters working.

We have have tried to run our arduino uno with an ethernet shield but cannot get our computer to recognize our board. We need the MAC address of the shield and do not know how to find it.

What ethernet shield are you using? If it is a w5100 based shield, you just assign it a mac address in your arduino code. If you are making a direct connection to a pc, you may need to make special provisions on the pc for the connection. below is some simple server test code you can try. connect your arduino to a router and connect to the arduino from the pc thru the router. Do some simple testing with the ethernet cable before purchasing USB adapters and such.

//zoomkat 10-6-13
//simple button GET with iframe code
//open serial monitor to see what the arduino receives
//use the ' instead of " in html ilnes 
//address will look like http://192.168.1.102:84/ when submited
//for use with W5100 based ethernet shields

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //ethernet shield mac address
byte ip[] = { 192, 168, 1, 102 }; // arduino IP in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(84); //server port

String readString; 

//////////////////////

void setup(){

  pinMode(4, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  server.begin();

  //enable serial data print 
  Serial.begin(9600); 
  Serial.println("servertest1"); // so I can keep track of what is loaded
}

void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string 
          readString += c; 
          //Serial.print(c);
        } 

        //if HTTP request has ended
        if (c == '\n') {

          ///////////////
          Serial.println(readString); //print to serial monitor for debuging 

          //now output HTML data header
             if(readString.indexOf('?') >=0) { //don't send new page
               client.println("HTTP/1.1 204 Zoomkat\r\n\r\n");
             }
             else {
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();

          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Arduino GET test page</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");

          client.println("<H1>Zoomkat's simple Arduino button</H1>");
          
          client.println("<a href='/?on1' target='inlineframe'>ON</a>"); 
          client.println("<a href='/?off' target='inlineframe'>OFF</a>"); 

          client.println("<IFRAME name=inlineframe style='display:none'>");          
          client.println("</IFRAME>");

          client.println("</BODY>");
          client.println("</HTML>");
             }

          delay(1);
          //stopping client
          client.stop();

          ///////////////////// control arduino pin
          if(readString.indexOf("on1") >0)//checks for on
          {
            digitalWrite(4, HIGH);    // set pin 4 high
            Serial.println("Led On");
          }
          if(readString.indexOf("off") >0)//checks for off
          {
            digitalWrite(4, LOW);    // set pin 4 low
            Serial.println("Led Off");
          }
          //clearing string for next read
          readString="";

        }
      }
    }
  }
}