differential analogue sensor to arduino

Hi,
1st apologizes if the question is stupid, but i'm kinda newbie in this "not" R&D sensors field

I've soil moisture sensor that i suppose it is analogue, it says that it connects to data loggers, i wondering if i can make it works on arduino mega

the sensor called SM150T

and here is the datasheet in page 18 it explains other data loggers connection, could it work with Arduino?
Thanks

The quick answer is yes it could be used with an Arduino, but it would need a lot of work to reverse engineer the software to get the same results.

A moisture detector is normally just two wires that measures the resistance of the soil. Here we seem to have an over egged multiple sensor system. Measuring temperature and it claims to measure the dielectric constant of the soil.
I would look up those patents it claims to have, use the US one as those are all on line to see what it thinks it is doing.

As to page 18 and onwards:-
You would need to connect it to two analogue pins of an Arduino as well as the power and ground.

The temperature sensor would require a pull up or pull down resistor, cannot tell which from that sheet. The sensor wire should go straight into the analogue pin. But then there is a lot of work to convert the readings into something sensible.

Grumpy_Mike:
The quick answer is yes it could be used with an Arduino, but it would need a lot of work to reverse engineer the software to get the same results.

A moisture detector is normally just two wires that measures the resistance of the soil. Here we seem to have an over egged multiple sensor system. Measuring temperature and it claims to measure the dielectric constant of the soil.
I would look up those patents it claims to have, use the US one as those are all on line to see what it thinks it is doing.

As to page 18 and onwards:-
You would need to connect it to two analogue pins of an Arduino as well as the power and ground.

The temperature sensor would require a pull up or pull down resistor, cannot tell which from that sheet. The sensor wire should go straight into the analogue pin. But then there is a lot of work to convert the readings into something sensible.

Thanks for your response,

i tried something, i connected the 2 wires of the sensor 1 High to A0 and the Low to gnd of the arduino

i received readings based on datasheet its max voltage is 1.5v so i used this code

//const float referenceVolts = 5.0; 
const int analogPin = 0;         // battery is connected to analog pin 0

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  pinMode(analogPin, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  
  int val = analogRead(analogPin); // read the value from the sensor 
  //float volts = (val / 1023.0) * referenceVolts; // calculate the ratio
  float volts = 0.0048 * val;
  Serial.print("volts : " );
  Serial.println(volts);
  delay(1000);
}

so now i receive the voltage value (i think that's the case i'm improvising really.

am i missing something?

also i have no idea how to use the equation in datasheet to convert the voltage to meaningful reading i cant understand it. So i'll look into it

so now i receive the voltage value

No you are receiving a number, it is not the voltage. You have the voltage conversion commented out in the line above. The line you have used is a simplified approximation.

float volts = (val / 1023.0) * referenceVolts; // calculate the ratio

In fact this calculates the voltage. You need to replace the variable referenceVolts with 5.0 for a normal Arduino or to me more accurate with the voltage you measure on the Ref pin of your Arduino.

Note your device has two sensor in it, a temperature and some sort of voltage output.

Grumpy_Mike:
No you are receiving a number, it is not the voltage. You have the voltage conversion commented out in the line above. The line you have used is a simplified approximation.

float volts = (val / 1023.0) * referenceVolts; // calculate the ratio

In fact this calculates the voltage. You need to replace the variable referenceVolts with 5.0 for a normal Arduino or to me more accurate with the voltage you measure on the Ref pin of your Arduino.

Note your device has two sensor in it, a temperature and some sort of voltage output.

yup i knew that it have temperature,
but i'm struggle to measure it, as it is calculated as in the datasheet with resistance not voltage,

any idea how to do it ?

as it is calculated as in the datasheet with resistance not voltage,

The analogue inputs only measure voltages, so you need to convert the resistance into a voltage by passing a small current through it. You normally do this by adding a pull up resistor to the sensor's output.

The simplest way to find the value to use is to measure the resistance yourself and choose a standard resistor closest to the resistance you measure.

The problem with this is that current through the thermistor can itself produce heating in the sensor and give a false reading. A simple way round this would be to have this pull up resistor connected to an output pin and set the pin high just before the measurement and put it back low after. Measure the output pin voltage when it is high and use this voltage in your calculations rather than assume it is 5V.

Alternatively you can get special thermistor or thermocouple chips that can measure the resistance and transfer it into the Arduino.