HOW TO: Make Stevens Hydraprobe soil temperature and moisture sensor (SDI-12)
work with CR10X datalogger
Created: Chirag Shukla
Status: Original author
Date: 06/30/2009
Audience: General/Novice
Revision History: 0.0 (Initial
Draft)
Purpose: Stevens
Water Monitoring System manufactures soil monitoring sensor called
the Hydraprobe II that support SDI-12. These sensors measure soil temperature,
soil moisture, soil salinity and conductivity and are used with variety
of
dataloggers
by several organizations that study climate
and
weather.
CR10X and
CR1000 dataloggers made by Campbell
Scientific are
used on weather stations managed by South Dakota
State
Climate Office
for weather and climate monitoring. Hydraprobe II is also used with
the dataloggers in production setting. The biggest advantage of using
SDI-12 hydraprobes is that a multiplexer is no longer needed. Hydraprobe
analog has 7 wires and required a multiplexer. Hydraprobe II has 3 wires
and does not need a multiplexer. Hydraprobe analog reported raw voltages,
generally. Using P205 instruction in CR10X/CR1000, meaningful results
could be deduced. Hydraprobe II reports meaningful data directly using
P105 SDI-12 instruction in CR10X/CR1000.
Usage: This "How To" is free to use and distribute
with proper citation/credits and without altering this original document.
If
alterations need to be made, please make the updated version freely and
publicly available. Add
your
name, date of revision,
and
revision history/number on the top of the original author's header before
distributing the updated document. Also make available citiation of orginal
document so that
new
users can
review
the
updates
made to this document. Any documentation derived from this document should
be made available to general public at no cost to them (free)
Note: Use instructions
at your own risk. The author will not be liable for any losses or damages
resulting from this documentation
Keywords: Campbell Scientific, CR10X, CR-10X, CR1000,
CR-1000, Stevens Water, hydraprobe, hydraprobe II, SDI-12, datalogger,
soil temperature, soil moisture
|
Instruments and materials:
- CR10X datalogger [ Purchased from Campbell
Scientific ]
- PS-100 12v/7Ahr battery [ Purchased from Campbell Scientific ]
- SC-12 cable [ Purchased from Campbell Scientific
]
- Hydraprobe II (SDI-12) [Purchased from Stevens Water Monitoring
System]
- Loggernet or PC208 or PC200W [PC200W
can be downloaded from Campbell's site for free]
- SCWin software [Download from Campbell's site for free]
|
Preliminary reading:
- CR10X
manual, CR10X overview or CR1000 manual
- Hydraprobe manual
- Hydraprobe and CR10X connection document
|
Pre-installation steps:
Case: CR10X was used for testing in the field with several sensors
including 5 hydraprobes (analog). Analog hydraprobes had 7 wires and
required the use of a multiplexer in production settings. The new Hydraprobe
II supports SDI-12 communication and has only 3 wires. Connecting the
new hydraprobes requires fewer channels and reports meaningful data
relatively easily. Below are the pre-installation steps.
- Read the hydraprobe and CR10 connection document to familiarize
yourself with the steps
- CR10X, in production settings, will access each hydraprobe using
a unique address. Therefore, each hydraprobe should have a unique
address. By default, hydraprobe's address is zero
- Use SCWin to create a program for CR10X containing an SDI instruction.
Ensure that the SDI-12 command is aM!. Save the
program as SDI. SCWin will automatically create a file called SDI.DLD
- Prepare your software (Loggernet, in my case) and connect to CR10X
- Upload the SDI.DLD program
- Disconnect and power down CR10X
- Hydraprobe has 3 wires: Blue, black and red
- Connect red wire to 12v, blue to C8 and black to G
- Power up the datalogger and connect
- Visit the datalogger's terminal window
- Press Enter a couple times to see a * prompt
- Following are the commands to type along with explanation. The
command to type is in bold. Hit Enter after typing
the 8X command.
Reply from the command is typed in blue italics.
*
*
* 8X Entering SDI-12
(This allows the control to be passed over
to port C8, assuming that is where the blue wire is connected. If
the blue wire is connected to C7, type 7X instead)
?! 0
(This ?! command asks the hydraprobe for
its current address. The address returned is 0, to the right of the
command)
0A5! Exiting SDI-12
(This command translates to "Change address of the probe from
0 to 5". To change an address to, say, 1, type 0A1! instead)
*
* 8X Entering SDI-12
5M! 50029
(The 5M! command outputs three items: 5 - address
of the probe, 002 - seconds to return data, 9 - # of parameters returned.
This indicates that sensor with address 5 will return 9 parameters
in 2 seconds. If the address of the probe is 1, type 1M! instead.
If the address of the probe is 2 and if we type 5M!, automatically
SDI-12 mode will exit and return us to * prompt. Typing 8X will bring
us back to SDI-12 prompt)
5XM! 5HJFGOKMLN
(The 5XM! command outputs the parameters the probe
is scheduled to report. In this case, the sensor 5 will output parameters
titled H, J, F, G, O, K, M, L and N. The meaning of each parameter
alphabet is included in the table below)
5XM=FHIJ! Exiting SDI-12
(The 5XM=<parameter-alphabets>! command will
reset the parameters hydraprobe will measure. In the command above,
sensor with address 5 is asked to measure F, H, I and J parameters
where F is soil temperature (C), H is soil moisture (wfv), I is soil
salinity (gNaCl/liter) and J is soil conductivity (S/meter). Those
are the 4 parameters used in this example)
*
* 8X Entering SDI-12
?! 5
5M! 50024
5XM! 5FHIJ
! Exiting SDI-12
*
*
(The above set of commands test if our settings were stored correctly.
First we enter the SDI-12 mode. Using ?!, we determine the address
of the probe. Using 5M!, we check the number of items returned by probe
5 and the time in seconds it would take. In the example above, 4 parameters
would be returned in 002 seconds from probe 5. The parameters can be
known by typing 5XM!, which provides us FHIJ as the parameters that
probe 5 will return. Use the table below to learn what each parameter
alphabet means.)
| Alphabet |
Description |
Units |
| A |
Voltage 1 |
Volts |
| B |
Voltage 2 |
Volts |
| C |
Voltage 3 |
Volts |
| D |
Voltage 4 |
Volts |
| E |
Voltage 5 |
Volts |
| F |
Soil temperature |
Celsius |
| G |
Soil temperature |
Fahrenheit |
| H |
Soil moisture |
wfv |
| I |
Soil salinity |
g NaCl/liter |
| J |
Soil Conductivity (temp. corrected) |
Siemens/meter |
| K |
Real dielectric constant |
|
| L |
Real dielectric constant (temperature corrected) |
|
| M |
Imaginary dielectric constant |
|
| N |
Imaginary dielectric constant (temperature corrected) |
|
| O |
Soil conductivity |
Siemens/meter |
| P |
Diode temperature |
Celsius |
| Q |
Soil Water Conductivity (temperature corrected) |
Siemens/meter |
| R |
ADC Reading 1 |
|
| S |
ADC Reading 2 |
|
| T |
ADC Reading 3 |
|
| U |
ADC Reading 4 |
|
| V |
ADC Reading 5 |
|
|
Connections:
Case: CR10X and SDI-12 hydraprobes are fairly easy to wire. The blue
wires of all hydraprobes go to a control port. The red wires of all
hydraprobes go to 12v. To conserve power, red wires should be moved
to SW12v along with creating a jumper between a control port and SW12v-CTRL.
All black wires from hydraprobes should go to ground on CR10X. This
way, only Ground, 2 control ports, SW12v and SW12v-CTRL are used.
- Ensure that the battery is good. Test the battery under load to make
sure battery is not a problem source
- Ensure that the solar panel is wired correctly with the charging
regulator/battery
- Hydraprobe has 3 wires. Connect as below
| Channel |
Wire color |
| G |
Black |
| T1 |
Blue |
| T2 |
Red |
T1 is one terminal strip where all the blue wires are attached
T2 is another terminal strip where all the red wires are attached
- Connect hydraprobe #2's wires
| Channel |
Wire color |
| G |
Black |
| T1 |
Blue |
| T2 |
Red |
and so on...
- Jump a wire from C6 to SW12v-CTRL on CR10X
- Red wires from all hydraprobes will go to a terminal strip (marked
as T2 in wiring tables above). Short the terminal strip to ensure that
power going to the terminal strip also powers up all channels of the
terminal strip.
- Blue wires from all hydraprobes will go to a terminal strip (marked
as T1 in wiring tables above). Short the terminal strip to ensure that
all blue leads are accessible
- Connect terminal strip T2 and SW12v with a wire
- Connect terminal strip T1 and C8 with a wire
- Logic: At every X minutes,
* Activate port C6 to allow power to the probes
* Provide excitation with delay
* Take measurements (aM!)
from each sensor
* Deactivate port C6
Here's a sample code:
;==========================================================
; SDI-12 HYDRAPROBES
; each probe has 3 important wires. red-12v, blue-c8,
; black-g
; Connect all red wires to terminal strip
; Connect all blue wires to terminal strip
; Connect a wire from blue's terminal strip to C8
; Connect a wire from red's terminal strip to SW12V
; Connect a wire from C6 to SW12V-CTRL
; Turn ON C6 every few minutes, take SDI-12 measurements
;
; SDI-12 hydraprobes have all been given an ID of 1 to 5
; beforehand. Each probe will also be configured to measure
; only 4 variables: Soil Temp(C), Soil Moisture (water frac
; by volume), Soil Salinity (g NaCl/liter) and Soil
; Conductivity (Siemens/meter).Access each probe and record
; the data
;==========================================================
; every 14th minute in a 15 minute interval, access the
; soil moisture sensors
; i.e. 0:14, 0:29, 0:44, 0:59
28: If time is (P92)
1: 14 Minutes (Seconds --) into a
2: 15 Interval (same units as above)
3: 30 Then Do
; turn C6 ON and power up the sensors
29: Do (P86)
1: 46 Set Port 6 High
; we are not using EX3, so just provide excitation there
; we are, technically, not even providing any excitation
; we are just delaying measurement by 5 second. power up
; the sensors and wait 5 seconds before taking measurement
30: Excitation with Delay (P22)
1: 3 Ex Channel
2: 0000 Delay W/Ex (0.01 sec units)
3: 500 Delay After Ex (0.01 sec units)
4: 0000 mV Excitation
; take measurements
31: SDI-12 Recorder (P105)
1: 1 SDI-12 Address
2: 0 Start Measurement (aM!)
3: 8 Port
4: 23 Loc [ ST1 ]
5: 1 Multiplier
6: 0 Offset
32: SDI-12 Recorder (P105)
1: 2 SDI-12 Address
2: 0 Start Measurement (aM!)
3: 8 Port
4: 27 Loc [ ST2 ]
5: 1 Multiplier
6: 0 Offset
33: SDI-12 Recorder (P105)
1: 3 SDI-12 Address
2: 0 Start Measurement (aM!)
3: 8 Port
4: 31 Loc [ ST3 ]
5: 1 Multiplier
6: 0 Offset
34: SDI-12 Recorder (P105)
1: 4 SDI-12 Address
2: 0 Start Measurement (aM!)
3: 8 Port
4: 35 Loc [ ST4 ]
5: 1 Multiplier
6: 0 Offset
35: SDI-12 Recorder (P105)
1: 5 SDI-12 Address
2: 0 Start Measurement (aM!)
3: 8 Port
4: 39 Loc [ ST5 ]
5: 1 Multiplier
6: 0 Offset
; turn C6 OFF and power down the sensors
36: Do (P86)
1: 56 Set Port 6 Low
37: End (P95)
Each probe supplies 4 parameters (or more if the probes are configured
so). I have named the locations in the program as ST1, SM1, SS1, SC1 for
soil temperature, moisture, salinity and conductivity from sensor #1. Data
for sensor 1 gets stored in ST1 to SC1. ST1 will hold soil temperature
in Celsius. SM1 will hold soil moisture in water fraction by volume. SS1
holds salinity in grams of NaCl per liter and SC1 holds soil conductivity
in Seimens per meter. |
Acknowledgements:
- Mr. Doug from Campbell Scientific for suggesting to upload a program
containing SDI-12 instruction before accessing the sensor through
Loggernet terminal
|
Disclaimer:
The views and opinions expressed in this page are strictly those of the
author. The contents of this page have not been reviewed or approved by
either the State Climate Office or the University. |