Go Down

Topic: Sensor Interfacing: Soil Moisture Sensor using SDI-12 (Read 6 times) previous topic - next topic


Aug 22, 2012, 11:20 am Last Edit: Aug 27, 2012, 06:29 pm by medium_999 Reason: 1

I have read the relevant topics about SDI-12 integration and it would seem a SDI-12 to RS232 converter is needed.

I have been given an interfacing guide from the manufacturer for this device.

Below are snippets from this including commands. However i can only assume these will all chance once in RS232??

I'm trying to identify the next steps for development of this system using Arduino as i am new to the platform.

Thanks in advance



Welcome to this forum.

We like to see more information.
What is the device ? Who is the manufacturer ?
You can copy url links in your message, like this : http://en.wikipedia.org/wiki/SDI-12

If you use a SDI-12 to RS232 converter, you can hook it up to a (old) computer with RS232 port. If you want that to connect to the Arduino, you have to use yet another converter.

The picture you have uploaded is just about the serial protocol with start-bit, stop-bit and parity. A serial port (and also the Arduino) has that already in hardware.
But if the SDI-12 bus is running at 12V, you can't just connect it to the RX and TX of the Arduino.

Here is information about it : http://whirlyworldblog.blogspot.nl/2011/01/sdi-12-to-arduino.html


Thanks for your reply!

Quote from: Krodal
if the SDI-12 bus is running at 12V, you can't just connect it to the RX and TX of the Arduino

I didn't think it was possible to directly interface it directly also becasue the TX and RX are seperate, where as with the sensor there is only 1 data wire?

The sensor is made by a company called Decagon, here it is - http://bit.ly/ObuMPU

The SDI-12 -> RS232 i am looking at is http://bit.ly/T7wDWe

The RS232 -> Arduino converter i am looking at is http://bit.ly/QBgjuP


The MAX3232 is the 3V version of the MAX232. So if your Arduino is running at 5V, I think the MAX232 is a better choice. I don't know if the MAX3232 is 5V tolerant for the digital signals.
A MAX232 version is also cheaper, only 3 or 4 AUD.

If you must use that sensor, using SDI-12 -> RS232 converter with RS232 -> Arduino converter will work. But many sensor can be connected directly to the Arduino.
Like this one: http://www.cheapvegetablegardener.com/2009/08/how-to-use-vegetronix-soil-moisture.html
Or this one: http://www.dfrobot.com/index.php?route=product/product&product_id=599#.UDiS6yOYNko
Many people build their own moisture sensor.
They all seem to measure the resistance between two pins. I think the GS3 sensor is more sophisticated than that. It measures also the electrical conductivity, but (as far as I understand) it uses 70MHz to measure the moisture.

Your GS3 sensor is also capable of TTL level (3.6V) serial communication. So it can be connected directly to the Arduino without SDI-12. But if you need many sensors and meters of wires between them, the SDI-12 is ment for that.


Hi Krodal,

Those are some really good points. The reason I've selected this sensor is because it is designed for the greenhouse environment which is the application.

The other main reason is it measures EC, Temp and Slab Moisture where all those peaces of information are very interesting to me in terms of further control.

There will just be a single sensor per arduino so the purpose of SDI-12 is not really being fufulled in this situation (they designed these sensors primerialiy for data loggers).

When i look at my Arduino Mega 2560 i notice there is a seperate TX and RX line (however the sensor with 1 data line). How would you suggest connecting the sensor the bord?

I belive it needs some kind of excitation signal?

Go Up