How to transmit data underwater?

Hey i am new to Arduino, I am trying to figure out a way to transmit and receive data underwater. I did consider attaching a 433Hz RF transmitter to my Arduino however at this point i am looking into hydrophones. I would like the Arduino to communicate with my computer giving orientation, pressure and other readings so that i can view them on my computer. Has anyone had experience with hydrophones or other options for transmitting data underwater? If so your tips and suggestions would be greatly appreciated.

The Arduino will be 30 ft from the surface. However this distance will increase as a result of the transmitter not being directly below the receiver. So i plan to transmit through at least 100 ft of water.

Thanks!

Alternatively, I am considering a Bluetooth card to broadcast. Thing is i need a signal that can reach up to 100ft at least.

I wouldn't use the 433Hz RF Transmitter to communicate that far. I have used it before and the range is terrible.
I would recommend using Xbees or Bluetooth for a reliable connection. The nice thing about xbees is that you can easily get more range just by replacing the modules. Its already a great thing to learn since just about everyone uses Xbees now a days. I posted an xbee kit on here a little while ago.

Here is the link: Finally a great Xbee Series 2 Wireless Kit! - Products and Services - Arduino Forum

As for Bluetooth, there are tons of options out there! Ebay has 100's of inexpensive choices. If you want a nice high end one, I would recommend the RN-42 like these: Store | Jaycon Systems

Let me know if you have anymore questions, as I would be happy to help out!

Jay

I have been using these parts to achieve usable transmission of data over about 80 metres.
http://www.robotshop.com/433mhz-high-sensitivity-transmitter-receiver-pair-rxa33.html

I am, so far, using simple 1/4 wave whip antennas, although I have designed and built a folded dipole and 5 element yagi for experimenting.

I am using VirtualWire as a data transmission protocol. This is important, as it is designed to match the capabilities of the radios.

I am using a very low bit-rate -- 1,000 baud. I am not 100% sure I need to go this slow, but my application is not sensitive to how fast I can transfer data.

It works pretty reliably and it's cheap.

I'm with you gardner. Simple 433 MHz modules, 17cm antenna (piece of wirewrap wire), virtualwire.

I assume the 433MHz High Sensitivity Transmitter / Receiver Pair is one way communication? If so i assume the same would apply to the RF transmitter i mentioned. I am needing a setup so that i can communicate with the Arduino and the Arduino with the computer.

An additional requirement is for the Signal to be able to travel through water since the setup will be underwater to a max depth of 30ft.

Gotta love this expanding scope.
What other unstated requirements do you have?

Basically i need to communicate with the Arduino from at least 100ft with obstructions such as water. I will prob have more requirement once i figure out the functions and capabilities of RF T&R's. At this point i am learning T&R Jargon and Specs.

Can you connect to a floating buoy via wire and then wireless from there?
What data rate do you hope to achieve?
What's the power capability of the under water device?
Do you need 2 way comm's, or just from underwater to 'land'?

bigolbug:
at least 100ft with obstructions such as water.

You should put some thought into what, exactly, the requirements are here. It will matter a lot.

30 m of water -- eg: transmitting from under a lake -- is simply not feasible for any sort of radio you can easily obtain, be it bluetooth, Xbee, 802.11, 433Mhz, 315Mhz, 900Mhz -- all of them will fail.

If the obstructions will be rainy weather, trees and maybe buildings, you may find that the 433Mhz jobbers give you the range you need. At $10 per pair, your best bet is to get some and experiment.

You do not mention how much bandwidth you need -- how many messages/sec or bytes per minute do you need? and any latency requirements you may have. These will tend to narrow the field as to what will or won't be feasible.

CrossRoads,
-Connecting to a buoy would be an option although i would rather not if at all possible.
-I am not sure exactly how to calculate data rates? The arduino will be transmitting data from at least 4 sensors: 2 pressure sensors, an accelerometer, and a Gas sensor. The Arduino could transmit every few seconds to reduce the data rate. What kind of data rate would that produce?
-The Arduino will be connected to a car battery so 12v.
-Yes i would like a 2 way comm

Gardner,
The device will be 30 ft from the surface. However this distance will increase as a result of the transmitter not being directly below the receiver. Before i buy a RF T&R, which RF T&R would be the best bet: bluetooth, Xbee, 802.11, 433Mhz, 315Mhz, 900Mhz? i assume the one with the smallest wave length?

How do i calculate bandwidth needed? I can send messages every 5 seconds or so. The arduino will be transmitting data from at least 4 sensors: 2 pressure sensors, an accelerometer, and a Gas sensor. how would i calculate the number of byte i would need to send?

Datarate - how many bytes of data do you want send?
I am not familiar with underwater 2-way comm's.

Sound carries well.
4 sensors - 8 bytes from each every time?
So 32 bytes/second - pretty slow.
start-8 data bits - stop -1 space
so 11 bits/byte * 32 bytes/sec = 352 bits/second.

That's low frequency audio, should be able to pick out sound on/off with that.

Use a Hydrophone to pick it up.

RF? I don't know.

What you actually need here is an XBee (or a pair of them). I did this as an experiment and here's the write-up:

http://ianlangelectronic.webeden.co.uk/#/xbee-arduino/4561510629

It starts off using them as a simple RX/TX pair and goes on to discuss them as a pair of transceivers, which is what you require. If you aren't familiar with XBee, then here's a huge (but still not complete) article:

http://ianlangelectronic.webeden.co.uk/#/xbee/4561496734

XBee is not a cheap alternative but it will give you a good, reliable and long-ranging means of communications. You may need two Arduino boards too unless you use an XBee explorer to take the data from the PC.

bigolbug:
Hey i am new to Arduino, I am considering attaching a 433Hz RF transmitter to my Arduino. I would like the Arduino to communicate with my computer giving orientation, pressure and other readings so that i can view them on my computer. Has anyone had experience with this application? If so post your tips or suggestions. Thanks!

Where are you getting a 433Hz transmitter? The antenna size for such a low frequency would probably be large.

CrossRoads,
So since the minimum i have to transmit 352 bits/second i can use a lower frequency to transmit? Have you every used a hydrophone to pick up radio Frequencies (RF)? I searched for them on Ebay however there are very few options.

Ian_Lang,
Have you every used an Xbee to transmit underwater?
What does RX/TX stand for?

How about a couple of these http://www.maplin.co.uk/underwater-ultrasonic-transducer-591678.

Maybe you can find some old modems with acoustic couplers.

You want to go underwater? :fearful:Sorry, I didn't get that bit, I thought you wanted to go over water.
RX is receive and TX is transmit.
Underwater is problematic. Radio waves do not travel well at all; bad enough going over water. Submarines have a certain depth that they have to get up to transmit and receive flash traffic; most of the time they're cut off so much that even the navies in which they are a part can't be entirely certain where they are. If you want to collect data from underwater, you may find that you will need an omnidirectional aerial sticking up above the water to transmit wirelessly. Have you considered a beach station and connecting to your underwater parts by cable?
I'm afraid the only reliable technology for transmitting and receiving underwater is sonic, and even then modulation is a problem.

Ian_Lang:
I'm afraid the only reliable technology for transmitting and receiving underwater is sonic, and even then modulation is a problem.

There's always ELF (Extremely low frequency - Wikipedia) - unfortunately, the transmitter requirements are kinda...large...thus, you can only communicate -to- the underwater device, but can't receive...

Ian_Lang:
I'm afraid the only reliable technology for transmitting and receiving underwater is sonic, and even then modulation is a problem.

I agree with Ian, sonic is the only option if an antenna on the surface is not possible.

The underwater ultrasonic transducers I linked to have a centre frequency of 200khHz and a bandwidth of 25KHz. They are directional, so you would need to keep them pointing to each other, or else use more than one on the mobile unit. The bit rate needed is only about 352bps according to Crossroads, so I think simple frequency modulation would be easiest. Keep the bit rate low to minimise multipath problems due to reflected sound. On the transmit side, you could use counter/timer 1 to generate an interrupt at the required bit rate, and counter/timer 2 to generate a frequency switched between about 190KHz and 210KHz. Then use a mosfet driver chip and series inductor to drive the transducer. On the receiving side, use a phase locked loop and comparator to demodulate the received signal. You can get phase locked loops in single chips, e.g. NE565 (obsolete, but still available via eBay), or 74HC4046A.